3.2.3 Callback khi giao dịch hoàn tiền được thực hiện
Thông tin chung
- API do Đối tác cung cấp cho hệ thống MB Payment Hub gọi để thông báo khi một giao dịch được thực hiện.
Lưu ý
API này chỉ sử dụng cho khách hàng đăng ký sử dụng tính năng thanh toán.
Đặc tả
Endpoint
Do đối tác tự định nghĩa và gửi lại cho hệ thống MB Payment Hub. API cần được public ra internet.
Method: POST
Header
Content-Type: application/json
Lưu ý
API có sử dụng checksum để thẩm tra lại các trường quan trọng trong bản tin không bị thay đổi
Thông tin về checksum
Đối với yêu cầu hoàn tiền, checksum có cấu trúc là:
merchantCode+id+transactionId+amount+status
Trong đó:
merchantCode
: Mã đối tácid
: ID giao dịchtransactionId
: Mã loại giao dịchamount
: Số tiền thực hiện giao dịchstatus
: Trạng thái giao dịch
Ví dụ
Chuỗi dữ liệu tương ứng cần mã hóa là: MICAJX014TUYI1121B2601TYEADT100000SUCCESS
Băm chuỗi dữ liệu bằng thuật toán
HmacSha256
với khóa bí mật của đối tác để tạo ra chuỗi nhị phân sau đó mã hóa chuỗi nhị phân bằng thuật toánBase64
Ví dụ
Đối với
CALLBACK_CHECKSUM_SECRET=uLK65GkdfJNGmsRymgxhLm6jnYS6eVvU
, kết quả sẽ là:elhZg3hVP1np4K99R5YjHKUaMkIfEwfNI41tlBF0q3s=
Thử Nghiệm
Click để thử nghiệm !
Dữ liệu truyền lên
- Hệ thống MB Payment Hub sẽ thực hiện gọi API khi giao dịch hoàn tiền được thanh toán thành công và sẽ truyền các thông sau vào request body:
Tham số(URL) | Mô tả |
---|---|
id | BẮT BUỘC Kiểu String, tối đa 30 ký tự. ID của giao dịch hoàn tiền |
transactionId | BẮT BUỘC Kiểu String, tối đa 30 ký tự. ID của giao dịch thanh toán |
amount | BẮT BUỘC Kiểu Number. Số tiền hoàn |
description | BẮT BUỘC Kiểu String, tối đa 200 ký tự. Nội dung giao dịch hoàn tiền |
createdTime | BẮT BUỘC Kiểu Date. Thời điểm tạo yêu cầu hoàn tiền Theo định dạng yyyy-MM-dd’T’HH:mm:ss (ISO 8601) |
refundedTime | Kiêu Date. Thời điểm thực hiện hoàn tiền Theo định dạng yyyy-MM-dd’T’HH:mm:ss (ISO 8601) |
status | BẮT BUỘC Kiểu String, tối đa 45 ký tự. Trạng thái của đăng ký bao gồm:PROCESSING : Đang xử lýSUCCEEDED : Thành côngFAILED : Thất bại |
errorCode | Kiểu String, tối đa 100 ký tự. Mã lỗi trong trường hợp hoàn tiền thất bại bao gồm: customer-account-invalid : Tài khoản/thẻ của khách hàng không hợp lệinvalid-refund-amount : Số tiền hoàn không hợp lệaccount-balance-insufficient : Tài khoản chuyên chi của đối tác không đủ số dư để hoàn tiềnrefund-period-expired : Thời hạn hoàn tiền của giao dịch đã hếtinvalid-transaction-status : Trạng thái giao dịch không cho phép hoàn tiềnunknown : Lỗi không xác định. Vui lòng liên hệ với MB để được hỗ trợ |
checksum | BẮT BUỘC, Kiểu String. Chuỗi mã hóa tạo ra dựa trên các tham số dưới đây:merchantCode+id+transactionId+amount+status Trong đó merchantCode : Mã đối tácid : ID giao dịchtransactionId : ID của giao dịch thanh toánamount : Số tiền hoàn lạistatus : Trạng thái giao dịch hoàn tiền |
Dữ liệu trả về
- Hệ thống chỉ cần trả lại
HttpStatus
200 khi request được thực hiện thành công.