Thanh Toán Thông Thường
Luồng xử lý
Sơ đồ hoạt động
Diễn giải sơ đồ
- Bước 1: Khách hàng tiến hành thanh toán bằng cách chọn phương thức thanh toán bằng thẻ quốc tế của MoMo.
- Bước 2: Hệ thống đối tác khởi tạo đơn hàng với thông tin đơn hàng cùng mã đơn hàng (orderid) duy nhất để yêu cầu phương thức thanh toán phù hợp nhất.
- Bước 3: Sau khi xác thực thông tin đối tác, MoMo trả về URL thanh toán (payUrl).
- Bước 4: Thanh toán bằng payUrl được trả về khi người dùng thực hiện trên website đối tác. Đối tác điều hướng người dùng tới website của MoMo thông qua payUrl lấy được từ Bước 3.
- Bước 5, 6: Khách hàng tiến hành nhập thông tin thẻ thanh toán QT và thanh toán
- Bước 7: MoMo xử lý thanh toán, sau đó trả về kết quả thanh toán giao dịch, đồng thời điều hướng người dùng về lại web/app của đối tác.
- Bước 8: ối tác nhận kết quả thanh toán giao dịch, sau đó hiển thị kết quả cho người dùng biết.
Cấu Hình API
Phương thức thiết lập thanh toán
Tại website của người bán, sau khi người dùng thêm sản phẩm/dịch vụ vào giỏ hàng và lựa chọn thanh toán bằng thẻ quốc tế, hệ thống đối tác sẽ gọi MoMo API để truy xuất URL thanh toán. Sau đó, điều hướng người dùng tới trang thanh toán.
Thông tin API để truy xuất URL thanh toán
HTTP RequestPOST /v2/gateway/api/create
Attribute | Type | Required | Description |
---|---|---|---|
partnerCode | String | Thông tin tích hợp | |
partnerName | String | Tên đối tác | |
storeId | String | Mã cửa hàng | |
requestId | String(50) | Định danh duy nhất cho mỗi yêu cầu, Đối tác sử dụng requestId cho xử lý idempotency | |
amount | Long | Số tiền cần thanh toán Nhỏ Nhất: 1.000 VND Tối đa: 10.000.000 VND Tiền tệ: VND Kiểu dữ liệu: Long | |
orderId | String | Mã đơn hàng của đối tác | |
orderInfo | String | Thông tin đơn hàng | |
userInfo | Object | Thông tin người dùng. Trong đó email là bắt buộc. | |
redirectUrl | String | Một URL của đối tác. URL này được sử dụng để chuyển trang (redirect) từ MoMo về trang mua hàng của đối tác sau khi khách hàng thanh toán. Hỗ trợ: AppLink and WebLink | |
ipnUrl | String | API của đối tác. Được MoMo sử dụng để gửi kết quả thanh toán theo phương thức IPN (server-to-server) | |
requestType | String | payWithCC | |
extraData | String | Giá trị mặc định là rỗng"" Encode base64 theo định dạng Json: {"key": "value"} Ví dụ với dữ liệu: {"username": "momo"} thì data extraData : eyJ1c2VybmFtZSI6ICJtb21vIn0= | |
autoCapture | Boolean | Nếu giá trị false , giao dich sẽ không tự động capture , Mặt định là true . | |
lang | String | Ngôn ngữ của message được trả về (vi hoặc en ) | |
signature | String | HMAC_SHA256accessKey=$accessKey&amount=$amount&extraData= $extraData&ipnUrl=$ipnUrl&orderId=$orderId&orderInfo= $orderInfo&partnerCode=$partnerCode&redirectUrl=$redirectUrl &requestId=$requestId&requestType=$requestType, secretKey) |
Chi tiết nội dung của userInfo
:
Attribute | Type | Required | Description |
---|---|---|---|
name | String | Tên của người dùng | |
phoneNumber | String | Số điện thoại của người dùng | |
String | Email của người dùng |
Redirecting information (redirectUrl)
WebLink:Link để mở website.
AppLink: Link để mở mobile application.
Xem thêm về AppLink
- Android: https://developer.android.com/training/app-links
- IOS: https://developer.apple.com/documentation/uikit/core_app/..
Example request
{
"partnerCode": "MOMO",
"partnerName" : "Test",
"storeId" : "MoMoTestStore",
"requestType": "payWithCC",
"userInfo": {
"email": "email_add@domain.com",
}
"ipnUrl": "http://www.example.com",
"redirectUrl": "http://www.example.com",
"orderId": "6d0a1b10-b382-11e9-8fda-91fa25841420",
"amount": 30000,
"lang": "vi",
"orderInfo": "pay with MoMo Credit card",
"requestId": "6d0a1b11-b382-11e9-8fda-91fa25841420",
"extraData": "eyJlbWFpbCI6ICJleGFtcGxlQGdtYWlsLmNvbSJ9",
"signature": "5344e1f4244173fe0ba2b4c865881aad79b86beff8154b4f74f3b92634ffa711"
}
Attribute | Type | Required | Description |
---|---|---|---|
partnerCode | String | Thông tin tích hợp | |
requestId | String | Giống với request ban đầu | |
orderId | String | Mã đơn hàng của đối tác | |
amount | Long | Giống với số tiền thanh toán ban đầu | |
responseTime | Long | Thời gian phản hồi kết quả thanh toán đến đối tác Định dạng: timestamp | |
message | String | Mô tả lỗi, ngôn ngữ dựa trên lang | |
resultCode | int | Result Code | |
payUrl | String | UURL để chuyển từ trang mua hàng của đối tác sang trang thanh toán của MoMo |
:::
Example response
{
"partnerCode": "MOMO",
"requestId": "6d0a1b11-b382-11e9-8fda-91fa25841420",
"orderId": "6d0a1b10-b382-11e9-8fda-91fa25841420",
"amount": 30000,
"responseTime": 14547523457,
"message": "Success",
"resultCode": 0,
"payUrl": "https://test-payment.momo.vn/v2/gateway/pay?t=TU9NT1NKSTEyMDE5MDgyM3wxNjEyODQwNTMyNDI3OjAxMjM0NTY3Nzg="
}
Xử lý kết quả thanh toán
Tìm hiểu thêm về Payment Notification.
Thông tin tham số
Mô tả các tham số được dùng bởi MoMo trong URL redirectUrl
và nội dung của body ipnUrl
.
Attribute | Type | Required | Description |
---|---|---|---|
partnerCode | String | Integration Information | |
orderId | String | Mã đơn hàng của đối tác | |
requestId | String | requestId của đối tác | |
amount | Long | Số tiền thanh toán | |
orderInfo | String | Thông tin đơn hàng | |
partnerUserId | String | Định danh duy nhất của MoMo cho mỗi tài khoản ví MoMo. | |
orderType | String | momo_wallet | |
transId | Long | transaction ID của MoMo | |
resultCode | Integer | Trạng thaias giao dịch của hóa đơn Result Code | |
message | String | Mô tả lỗi, ngôn ngữ dựa trên lang | |
payType | String | Loại hình thanh toán: credit | |
responseTime | Long | Thời gian phản hồi kết quả thanh toán đến đối tác Format: timestamp | |
extraData | String | Extra Data. Mặc định: "" | |
signature | String | Chữ ký để xác nhận giao dịch. Sử dụng thuật toán Hmac_SHA256 với data theo định dạng được sort từ a-z : accessKey=$accessKey&amount=$amount&extraData=$extraData &message=$message&orderId=$orderId&orderInfo=$orderInfo &orderType=$orderType&partnerCode=$partnerCode&payType= $payType&requestId=$requestId&responseTime= $responseTime&resultCode=$resultCode&transId=$transId |
Result Codes & Messages
Vui lòng tìm kiếm result codes và mô tả tương ứng của luồng Thanh toán Thông thường của Thanh toán thẻ Quốc tế trong danh sách result codes tổng hợp ở đây.