Payment method callback
Sau khi tạo payment method, hệ thống AppotaPay callback kết quả cho hệ thống của đối tác
- Sử dụng tham số
signature
để kiểm tra tính toàn vẹn c ủa dữ liệu nhận được, phía đối tác tạo ra signature từ dữ liệu nhận được từ AppotaPay sau đó so sánh với tham sốsignature
AppotaPay gửi sang.
Web callback
AppotaPay sẽ gửi kết quả qua API URL của phía đối tác gửi AppotaPay để cấu hình, server phía đối tác kiểm tra tính toàn vẹn dữ liệu qua tham số signature
sau đó cập nhật trạng thái của payment method.
Header
{
"Content-Type": "applicaton/json"
}
Request params
Phương thức: POST
Tham số | Kiểu dữ liệu | Mô tả |
---|---|---|
data | String | Thông tin giao dịch ở dạng base64encode & json_encode |
signature | String | Chữ ký kiểm tra dữ liệu signature = |
time | String | Thời gian phản hồi |
Giải mã dữ liệu
- Đối tác sử dụng hàm
Base64Decode
để giải mã giữ liệu ở dạng string - Sử dụng hàm
JSON_Decode
để giải mã giữ liệu lần 2 ở dạng json
Tham số | Yêu cầu | Kiểu dữ liệu | Mô tả |
---|---|---|---|
event | Required | String | Event: - payment_method.activated: khi payment method đã được kích hoạt và có thể sử dụng thanh toán - payment_method.failed: payment method kích hoạt thất bại khi thực hi ện xác thực hoặc uỷ quyền - payment_method.inactivated: payment method không thể sử dụng để thanh toán - payment_method.expired: payment method hết hạn và không thể sử dụng để thanh toán |
data | Required | Object | Data |
data.paymentMethodRefId | Required | String | Mã định danh cho payment method được cung cấp bởi partner |
data.paymentMethodId | Required | String | Payment Method ID |
data.customerId | Required | String | Customer ID được khởi tạo trong API Create customer |
data.country | Required | String | Mã quốc gia của GD |
data.currency | Required | String | Đơn vị tiền tệ |
data.paymentMethod | Required | String | Phương thức thanh toán - CC_SUBS: thanh toán với thẻ quốc tế |
data.reusability | Required | String | Khả năng sử dụng lại - MULTIPLE_USE: sử dụng nhiều lần |
data.card | Optional | Object | Thông tin, thuộc tính thẻ |
data.card.properties | Optional | Object | Thuộc tính |
data.card.properties.skipThreeDSecure | Optional | String | Bỏ qua xác thực 3D secure khi khởi tạo Payment method - YES: Bỏ qua xác thực 3DS - NO: Thực hiện xác thực 3DS |
data.card.properties.successReturnUrl | Optional | String | Đường dẫn điều hướng về sau khi xác thực thành công |
data.card.properties.failureReturnUrl | Optional | String | Đường dẫn điều hướng về sau khi xác thực thất bại |
data.card.cardInfo | Optional | Object | Thông tin thẻ |
data.card.cardInfo.cardNumber | Optional | String | Số thẻ |
data.card.cardInfo.cardMonth | Optional | String | Tháng hết hạn của thẻ, bao gồm cả số 0 ở đầu (VD: 03) |
data.card.cardInfo.cardYear | Optional | String | Năm hết hạn của thẻ (VD: 2024) |
data.card.cardInfo.cardHolderName | Optional | String | Tên chủ thẻ |
data.ewallet | Optional | Object | Thông tin, thuộc tính ví điện tử |
data.ewallet.serviceCode | Optional | String | Mã Ví |
data.ewallet.properties | Optional | Object | Thuộc tính |
data.ewallet.properties.successReturnUrl | Optional | String | Đường dẫn điều hướng về sau khi xác thực thành công |
data.ewallet.properties.pendingReturnUrl | Optional | String | Đường dẫn điều hướng về sau khi xác thực đang xử lý |
data.ewallet.properties.failureReturnUrl | Optional | String | Đường dẫn điều hướng về sau khi xác thực thất bại |
data.ewallet.account | Optional | Object | Thông tin tài khoản ví |
data.ewallet.account.accountNumber | Optional | String | Số tài khoản |
data.ewallet.account.name | Optional | String | Tên tài khoản |
data.billing | Optional | Object | Thông tin thanh toán |
data.billing.country | Optional | String | Mã quốc gia |
data.billing.city | Optional | String | Thành phố |
data.billing.provinceState | Optional | String | Khu vực, quận huyện |
data.billing.address | Optional | String | Địa chỉ |
data.billing.zipcode | Optional | String | Mã zip |
data.status | Required | String | Trạng thái: - PENDING: yêu cầu khởi tạo payment method đã được gửi, AppotaPay đang xử lý để kích hoạt, chờ callback từ AppotaPay để update trạng thái - REQUIRES_ACTION: cần thực hiện thêm action để kích hoạt payment method, các action phổ biến là OTP validation hoặc redirect user đến authentication page - ACTIVE: payment method đã được activate có thể sử dụng cho payment request - INACTIVE: payment method không thể sử dụng để thực hiện giao dịch - EXPIRED: Authorization hết hạn hoặc hết hiệu lực - FAILED: khởi tạo payment method thẻ thất bại |
data.actions | Optional | Array | Nếu status = REQUIRES_ACTION, object có các thông tin cụ thể để thực hiện action tiếp theo cho kích hoạt payment method |
data.actions.*.url | Optional | String | URL thực hiên action |
data.actions.*.action | Optional | String | Loại action - AUTH - thực hiện liên kết thanh toán hoặc thanh toán - RESEND_AUTH - Gửi lại mã uỷ quyền cho khách hàng |
data.actions.*.method | Optional | String | Method thực hiện action - GET - POST |
data.createdAt | Required | String | Thời gian tạo Payment method (ISO 8601) |
data.updatedAt | Required | String | Thời gian cập nhật (ISO 8601) |
Response format
- Đối tác cần phản hồi lại cho AppotaPay xác nhận đã nhận được kết quả
- Phản hồi được coi là thành công khi
HTTP code = 200