API 1-Click Payment

a. Tổng quan

- Phương thức gửi nhận: POST JSON

- HTTP Request: POST <BASE_URL> /request-tokenization-payment

b. Data Request (Thông tin gửi sang Alepay)

Sau khi user thực hiện liên kết thẻ thành công, Merchant chỉ cần sử dụng Token mà Alepay trả về khi liên kết thẻ để thực hiện thanh toán cho user đó. Tham số thực hiện thanh toán 1-Click được mô tả dưới đây:

Tên trường

Định dạng

Mô tả

tokenKey

String

Mã token key do alepay cung cấp khi đăng ký tài khoản trên alepay

customerToken

String

Token của end user alepay cung cấp cho merchant khi liên kết thẻ

orderCode

String

Mã đơn hàng

amount

Double

Tổng tiền của đơn hàng (Nếu currency là VND thì gửi lên amount làm tròn đến 1 VND)

currency

String

Loại tiền tệ

orderDescription

String

Mô tả đơn hàng (Không bao gồm các ký tự đặc biệt, sẽ tự động loại bỏ các kí tự đặc biệt ra khỏi mô tả đơn hàng)

returnUrl

String

URL callback khi thành công

cancelUrl

String

URL callback khi thất bại

paymentHours

String

Thời gian thanh toán cho phép

language

String

Ngôn ngữ hiển thị.
- vi: tiếng việt
- en: tiếng anh

signature

String

Chữ ký để kiểm tra thông tin. Xem hướng dẫn tạo Signature.


 

c. Data Response (Thông tin nhận về từ Alepay)

Tùy theo hợp đồng được ký kết giữa Merchant và Alepay, Alepay sẽ cấu hình theo mức bảo mật tương ứng. Alepay cung cấp 2 mức bảo mật khi thanh toán 1-Click, gồm :

- Thanh toán ngay: Giao dịch sẽ được thực hiện ngay khi Merchant gửi yêu cầu thanh toán lên Alepay mà không cần xác nhận từ chủ thẻ.

Tên trường

Định dạng

Mô tả

code

String

Mã lỗi (được mô tả trong Phụ lục 12.a)

message

String

Mô tả lỗi

orderCode

String

Mã đơn hàng

transactionCode

String

Mã giao dịch Alepay

success

String

Trạng thái giao dịch:

- False: Người mua cancel giao dịch.

- True: người mua thực hiện xong quá trình thanh toán.

- Xác thực từ chủ thẻ:

 + Alepay sẽ trả về URL để chủ thẻ xác thực ( bằng OTP hoặc 3D-secure). Sau khi xác thực được yêu cầu thanh toán từ chủ thẻ, Alepay sẽ thực hiện giao dịch thanh toán mà Merchant đã gửi lên trước đó:

Tên trường

Định dạng

Mô tả

code

String

Mã lỗi (được mô tả trong Phụ lục 12.a)

message

String

Mô tả lỗi

transactionCode

String

Mã giao dịch tại Alepay, sử dụng để thực hiện đối soát

checkoutUrl

String

URL để chủ thẻ xác thực thanh toán

 


 + Khi End user kết thúc quá trình xác thực thanh toán trên Alepay, Alepay sẽ callback tới link “returnUrl” mà Merchant đã cung cấp khi gọi API 1-Click Payment. Dưới đây là mô tả các thông số Alepay sẽ truyền về cho Merchant khi thực hiện callback:

  - HTTP Request: GET <MERCHANT_CALLBACK_URL>

  - Response:

Tên trường

Định dạng

Mô tả

errorCode

String

Mã lỗi (được mô tả trong Phụ lục 12.a)

data

String

Mã giao dịch Alepay

cancel

String

Trạng thái giao dịch:
- False: Người mua cancel giao dịch.
- True: người mua thực hiện xong quá trình thanh toán.


Các trường thông tin trên tạo thành 1 chuỗi JSON sử dụng thuật toán RSA và được mã hóa (sử dụng Encrypt key Alepay cung cấp) sau đó encodebase64 và truyền vào tham số trên URL cho trường data.

URL callback về cho Merchant sẽ có dạng: <MERCHANT_CALLBACK_URL>?data=XXXX&checksum=XXXX

d. Demo API

- Data Request:

  {
      "tokenKey": "63vhaCjfe96SZlBH1ma200yUPBraqH",
      "customerToken":"b32bfc69801dbbfa2dd8774c1ce1bf8f",
      "orderCode": "123",
      "amount":1000000,
      "currency":"VND",
      "orderDescription": "test",
      "returnUrl":"https://webhook.site/02818f6d-6899-4886-9221-29ef09b02d61",
      "cancelUrl":"https://webhook.site/02818f6d-6899-4886-9221-29ef09b02d61",
      "paymentHours": 2,
      "language":"vi",
      "signature":"3974a6246ca5f5071df8e4f138ca07619cebca6914af187b230c4a8843c3ea0b"
  }

- Data Response:

 + Trường hợp "Xác thực từ chủ thẻ":

  {
      "code": "000",
      "message": "Thành công",
      "checkoutUrl": "https://alepay-v3-sandbox.nganluong.vn/checkout/vi/v3/token-payment/process/42b13d286b874687aa73dafa34f12485",
      "transactionCode": "ALE00U1K8"
  }

 + Trường hợp "Thanh toán ngay":

  {
      "code": "000",
      "message": "Thành công",
      "orderCode": "123",
      "transactionCode": "ALE00U1KH",
      "success": true
  }