Nhảy tới nội dung
Phiên bản: Lastest

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

Lưu ý
  • 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.

{
"Content-Type": "applicaton/json"
}

Request params

Phương thức: POST

Tham sốKiểu dữ liệuMô tả
dataStringThông tin giao dịch ở dạng base64encode & json_encode
signatureStringChữ ký kiểm tra dữ liệu

signature = HMAC_SHA256(data, secretKey)

timeStringThời gian phản hồi

Giải mã dữ liệu

  1. Đối tác sử dụng hàm Base64Decode để giải mã giữ liệu ở dạng string
  2. Sử dụng hàm JSON_Decode để giải mã giữ liệu lần 2 ở dạng json
Tham sốYêu cầuKiểu dữ liệuMô tả
eventRequiredString

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

dataRequiredObjectData
data.paymentMethodRefIdRequiredStringMã định danh cho payment method được cung cấp bởi partner
data.paymentMethodIdRequiredStringPayment Method ID
data.customerIdRequiredStringCustomer ID được khởi tạo trong API Create customer
data.countryRequiredStringMã quốc gia của GD
data.currencyRequiredStringĐơn vị tiền tệ
data.paymentMethodRequiredString

Phương thức thanh toán

- CC_SUBS: thanh toán với thẻ quốc tế

data.reusabilityRequiredString

Khả năng sử dụng lại

- MULTIPLE_USE: sử dụng nhiều lần

data.cardOptionalObjectThông tin, thuộc tính thẻ
data.card.propertiesOptionalObjectThuộc tính
data.card.properties.skipThreeDSecureOptionalString

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.successReturnUrlOptionalStringĐường dẫn điều hướng về sau khi xác thực thành công
data.card.properties.failureReturnUrlOptionalStringĐường dẫn điều hướng về sau khi xác thực thất bại
data.card.cardInfoOptionalObjectThông tin thẻ
data.card.cardInfo.cardNumberOptionalStringSố thẻ
data.card.cardInfo.cardMonthOptionalStringTháng hết hạn của thẻ, bao gồm cả số 0 ở đầu (VD: 03)
data.card.cardInfo.cardYearOptionalStringNăm hết hạn của thẻ (VD: 2024)
data.card.cardInfo.cardHolderNameOptionalStringTên chủ thẻ
data.ewalletOptionalObjectThông tin, thuộc tính ví điện tử
data.ewallet.serviceCodeOptionalStringMã Ví
data.ewallet.propertiesOptionalObjectThuộc tính
data.ewallet.properties.successReturnUrlOptionalStringĐường dẫn điều hướng về sau khi xác thực thành công
data.ewallet.properties.pendingReturnUrlOptionalStringĐường dẫn điều hướng về sau khi xác thực đang xử lý
data.ewallet.properties.failureReturnUrlOptionalStringĐường dẫn điều hướng về sau khi xác thực thất bại
data.ewallet.accountOptionalObjectThông tin tài khoản ví
data.ewallet.account.accountNumberOptionalStringSố tài khoản
data.ewallet.account.nameOptionalStringTên tài khoản
data.billingOptionalObjectThông tin thanh toán
data.billing.countryOptionalStringMã quốc gia
data.billing.cityOptionalStringThành phố
data.billing.provinceStateOptionalStringKhu vực, quận huyện
data.billing.addressOptionalStringĐịa chỉ
data.billing.zipcodeOptionalStringMã zip
data.statusRequiredString

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.actionsOptionalArrayNế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.*.urlOptionalStringURL thực hiên action
data.actions.*.actionOptionalString

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.*.methodOptionalString

Method thực hiện action

- GET

- POST

data.createdAtRequiredStringThời gian tạo Payment method (ISO 8601)
data.updatedAtRequiredStringThờ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