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

PLan action callback

Sau khi tạo plan và khách thực hiện xác thực thông tin, hệ thống AppotaPay callback kết quả của requires action cho đố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.

Redirect

AppotaPay sẽ gửi kết quả qua API URL của phía đối tác đã gửi lên API qua tham số returnUrl, 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 plan.

Request params

Phương thức: GET

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ả
planRefIdRequiredStringMã tham chiếu của Partner
planIdRequiredStringPlan ID
customerIdRequiredStringCustomer ID
currencyRequiredStringĐơn vị tiền tệ
amountRequiredIntegerSố tiền thanh toán
paymentMethodsRequiredArray

Danh sách payment method

(Chỉ áp dụng với mô hình Merchant hosted)

paymentMethods.*.paymentMethodIdRequiredStringPayment method ID
paymentMethods.*.rankRequiredIntegerThứ tự ưu tiên phương thức thanh toán sẽ được sử dụng trong chu kỳ thanh toán
immediateActionTypeOptionalString

Thực hiện trừ tiền ngay thì tạo thành công plan, null: tiền trừ vào thời điểm anchorDate

- FULL_AMOUNT: thực hiện trừ tiền khi khởi tạo plan thành công

failedCycleActionRequiredString

Hành động khi cycle thực hiện thanh toán thất bại

- STOP: Dừng toàn bộ plan

- RESUME: Bỏ qua cycle thất bại và tiến hành cycle kế tiếp

serviceNameOptionalString

Tên dịch vụ bạn thực hiện thanh toán định kỳ

(Chỉ áp dụng với mô hình Checkout page)

statusRequiredString

Trạng thái của plan:

- PENDING: plan đang khởi tạo, chờ trạng thái cuối từ AppotaPay

- REQUIRES_ACITON: plan cần thực hiện thêm 1 số action để kích hoạt

- ACTIVE: plan đã được kích hoạt để thực hiện thanh toán định kỳ

- INACTIVE: plan đã đóng hoặc khởi tạo thất bại

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

actions.*.methodOptionalString

Method thực hiện action

- GET

- POST

scheduleRequiredObjectCấu hình chu kỳ thanh toán định kỳ
schedule.intervalRequiredStringTần suất thực hiện thanh toán định kỳ
schedule.intervalCountRequiredStringĐơn vị khoảng thời gian giữa 2 chu kỳ liên tiếp
schedule.totalRecurrenceOptionalInteger

Tổng số lần thanh toán định kỳ trong plan

null: không giới hạn

schedule.anchorDateOptionalString

Thời điểm thực hiện thanh toán định kỳ

Default: ngày khởi tạo plan thành công

Giá trị hợp lệ: ngày từ 1-28 (của 1 tháng)

Lưu ý: nếu anchorDate: null và thời điểm khởi tạo plan là ngày 29/30/31 của tháng, anchorDate mặc định sẽ lấy value là ngày 1 của tháng tiếp theo

schedule.retryIntervalOptionalStringTần suất thực hiện thanh toán lại trong 1 cycle nếu thanh toán xảy ra vấn đề
schedule.retryIntervalCountOptionalIntegerĐơn vị khoảng thời gian giữa 2 lần thực hiện thanh toán lại
notificationConfigObjectCấu hình cách thức thanh toán cho dịch vụ thanh toán định kỳ
notificationConfig.[subscription.cycle.retrying]OptionalArray

Kênh thanh toán bạn muốn người dùng nhận khi thanh toán cycle không thành công và người dùng có thể thực hiện thanh toán lại.

Giá trị được chấp nhận ["EMAIL"]

notificationConfig.[subscription.cycle.succeeded]OptionalArray

Kênh thanh toán bạn muốn người dùng nhận khi thanh toán cycle thành công..

Giá trị được chấp nhận ["EMAIL"]

notificationConfig.[subscription.cycle.failed]OptionalArray

Kênh thanh toán bạn muốn người dùng nhận khi cycle thất bại (không thể tiếp tục thanh toán cycle

Giá trị được chấp nhận ["EMAIL"]

notificationConfig.[subscription.plan.activated]OptionalArray

Kênh thanh toán bạn muốn người dùng nhận khi Plan thanh toán định kỳ được khởi tạo và kích hoạt thành công.

Giá trị được chấp nhận ["EMAIL"]

notificationConfig.[subscription.plan.inactivated]Array

Kênh thanh toán bạn muốn người dùng nhận khi Plan thanh toán định kỳ tạm dừng

Giá trị được chấp nhận ["EMAIL"]

createdAtRequiredStringThời gian tạo Plan (ISO 8601)
updatedAtRequiredStringThời gian cập nhật (ISO 8601)