Skip to main content

Xử lý kết quả thanh toán thẻ

Khi việc xử lý thanh toán hoàn tất, Zengi sẽ thông báo cho đối tác ngay cả khi giao dịch này có thành công hay không. Các giao dịch mà Zengi sẽ thông báo đến đối tác gồm có:

  • Các lệnh giao dịch như Sale, Void, PreAuth, PreAuth-Complete và Settlement.
  • Ngoại trừ các lệnh hệ thống như: Logon, Reversal và Batch Upload.

IPN - Instant Payment Notification

Hệ thống của Zengi sử dụng callbackUrl được đối tác cung cấp theo thứ tự ưu tiên như sau để gửi HTTP POST request với cấu trúc bên dưới đến hệ thống đối tác.

Thứ tự ưu tiên của callbackUrl

  • Ưu tiên 1: dùng callbackUrl được đối tác cung cấp trong mỗi lệnh giao dịch.
  • Ưu tiên 2: dùng callbackUrl được đối tác cung cấp khi đăng kí tài khoản.

Cấu trúc IPN

NoTên fieldLoại dữ liệuÝ nghĩa
1idstringID của giao dịch
2billIdstringMã Bill được sinh ra từ phía Merchant của đối tác
3reqIDstringMã request được sinh ra từ phía đối tác khi khởi tạo giao dịch và gửi sang Zengi
4refIDstringMã tham chiếu được Acquirer bank trả về khi thực hiện giao dịch thành công đối với giao dịch Sale, PreAuth, PreAuth-Complete và Settlement
5approveCodestringMã chuẩn chị, chỉ có giá trị đối với giao dịch Sale, preAuth, preAuth-Complete
6deviceIdstringSố serial_number của máy
7amountstringSố tiền giao dịch
8statusstringTrạng thái giao dịch
9transactionTypestringLoại giao dịch. Nhận các giá trị: SALE, VOID, SETTLEMENT
10paymentTypestringLoại giao dịch. Mặc định nhận giá trị là "card"
11cardSchemestringVISA, JCB, MASTER, AMEX, UPI
12tidstringterminalId
13midstringmerchantId
14emvDatajson objectDữ liệu EMV kết quả thanh toán thẻ
15bathcNostringSố lô của giao dịch
16settlementListarray objectDanh sách giao dịch đã Settlement thành công. Chỉ áp dụng cho Settlement Callback.
17reqIDstringlà mã UUID 4 do đối tác sinh và gửi cho Zengi qua các api giao dịch
18refNostringlà mã giao dịch do các Acquirer gửi Zengi sau khi thực hiện giao dịch thành công.

Ví dụ:

{
"id": " ..",
"billID":"...",
"reqID":" ...",
"refID":"...",
"approveCode":"...",
"deviceId":"...",
"amount":"...",
"status":"...",
"transactionType":"...",
"paymentType":"card",
"cardScheme":"VISA",
"tid":"...",
"mid":"...",
"serialNumber":"...",
"emvData":{...},
"settlementList":[{
"reqID":"...",
"refNo":"..."
}]
}

EMV Data:

NoTên fieldLoại dữ liệuÝ nghĩa
1aidstringID của app thực hiện giao dịch thẻ
2appNamestringTên app thực hiện giao dịch thẻ
3approveCodestringMã chuẩn chi
4batchNostringsố lô
5cardHolderstringTên chủ thẻ
6cardNumberstringSố thẻ được cắt cụt
7cardTypestringCardType: 1 - International (Visa, AMEX, JCB), 2 - Domestic (Napas), 3 - Mastercard
8currencystringLoại tiền giao dịch
9expDatestringNgày hết hạn thẻ
10invoiceNostringSố hóa đơn
11isoResponseCodestringKết quả giao dịch, 00 - Thành công, kết quả khác 00 là lỗi.
12merchantAddressstringĐịa chỉ của Merchant
13merchantIdstringMerchant ID
14merchantTransIdstringMã giao dịch của Merchant
15refNostringMã tham chiếu
16swipeTypestringHình thức giao dịch, CL - contact, CLS - Contactless
17tcstringMã TC của giao dịch thẻ
18terminalIdstringterminalId
19totalAmountstringGiá trị giao dịch
20traceNostringsố trace
21transDateTimestringThời gian giao dịch, có dạng yyyymmddhhmmss

Ví dụ:

{   "id": " ..",
"billID":"...",
...................
"emvData":{
"aid":"A0000000031010",
"appName":"STB VISA CARD",
"approveCode":"759497",
"batchNo":"000019",
"cardHolder":"/",
"cardNumber":"423238******4712",
"cardType":"1",
"currency":"VND",
"expDate":"",
"invoiceNo":"000059",
"isoResponseCode":"00",
"merchantAddress":"117-119 LY CHINH THANG 117-119 LY CHINH THANG",
"merchantId":"111111111111111",
"merchantName":"Zengi",
"merchantTransId":"20241210095518",
"refNo":"419029268510",
"swipeType":"CLS",
"tc":"16212A24C734483D",
"terminalId":"11111111",
"totalAmount":"1000",
"traceNo":"000191",
"transDateTime":"20241210095532"
}

}

Các biến thường dùng trong xử lý thông tin giao dịch thẻ

AID thông dụng:

AID (Application Identifier)VendorTênDiễn giảiLoại
A0000000031010Visa InternationalVISA Debit/Credit (Classic)Standard/Gold VISA credit cardEMV
A00000000401Mastercard InternationalMasterCard Credit/Debit (Global)Standard MasterCardEMV
A0000000651010JCB CO., LTD.JCB J Smart CreditJapan Credit BureauEMV
A000000333010101China Unionpay Co. LtdUnionPay DebitUnionPay DebitEMV
A000000333010102China Unionpay Co. LtdUnionPay CreditUnionPay CreditEMV
A0000000250000American ExpressAmerican ExpressAmerican Express (Credit/Debit)EMV

SwipeType: Các mã dành miêu tả thao tác thanh toán thẻ

Diễn giải
FFallback: Giao dịch được thực hiện khi chip thẻ bị hỏng
CChip: Giao dịch được thực hiện bằng cách đọc thẻ chip
CTLContactless: Giao dịch được thực hiện bằng NFC
MManual: Giao dịch được thực hiện bằng cách nhập thông tin thẻ trực tiếp trên máy
SSwipe: Giao dịch được thực hiện bằng thẻ từ