Thanh Toán Thông Thường
Hỗ trợ thêm loại hình thanh toán với thẻ ATM nội địa, cổng thanh toán MoMo giúp khách hàng của bạn có thêm nhiều lựa chọn hơn khi thanh toán, giúp trải nghiệm mua hàng trên website/ứng dụng của bạn càng trở nên tốt hơn.
Luồng Xử Lý
Sơ đồ hoạt động
Diễn giải sơ đồ
- Bước 1: Khách hàng (người dùng) tiến hành thanh toán bằng hình thức thanh toán qua thẻ ATM 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ẻ ATM 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 đối tác, 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ẻ ATM nội địa, 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
POST /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: 10.000 VND Tối đa: 50.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 | |
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 | payWithATM | |
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= | |
lang | String | Ngôn ngữ của message được trả về (vi hoặc en ) | |
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 &ipnUrl=$ipnUrl&orderId=$orderId&orderInfo=$orderInfo &partnerCode=$partnerCode&redirectUrl=$redirectUrl &requestId=$requestId&requestType=$requestType |
Điều hướng thông tin (redirectUrl)
WebLink
: Links để mở website. Example: http(s)://example.com/
AppLink
: Link để mở ứng dụng di động.
Tìm hiểu thêm về AppLink
Android
: https://developer.android.com/training/app-links
IOS
: https://developer.apple.com/documentation/uikit/core_app/..
Mẫu Request
{
"partnerCode": "MOMO",
"partnerName" : "Test",
"storeId" : "MomoTestStore",
"requestType": "payWithATM",
"ipnUrl": "http://www.example.com",
"redirectUrl": "http://www.example.com",
"orderId": "6d0a1b10-b382-11e9-8fda-91fa25841420",
"amount": 30000,
"lang": "vi",
"orderInfo": "pay with MoMo ATM",
"requestId": "6d0a1b11-b382-11e9-8fda-91fa25841420",
"extraData": "email=abc@gmail.com",
"signature": "5344e1f4244173fe0ba2b4c865881aad79b86beff8154b4f74f3b92634ffa711",
}
Attribute | Type | Required | Description |
---|---|---|---|
partnerCode | String | Thông tin tích hợp | |
requestId | String | Giống với yêu cầu ban đầu | |
orderId | String | Mã đơn hàng của đối tác | |
amount | Long | Giống với yêu cầu ban đầu | |
responseTime | Long | hời gian trả kết quả thanh toán về đố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 | URL để chuyển từ trang mua hàng của đối tác sang trang thanh toán của MoMo |
Mẫu Response
{
"partnerCode": "MOMO",
"requestId": "6d0a1b11-b382-11e9-8fda-91fa25841420",
"orderId": "6d0a1b10-b382-11e9-8fda-91fa25841420",
"amount": 30000,
"message": "Success",
"resultCode": 0,
"payUrl": "https://test-payment.momo.vn/v2/gateway/pay?t=TU9NT1NKSTEyMDE5MDgyM3wxNjEyODQwNTMyNDI3OjAxMjM0NTY3Nzg="
}
Thanh toán
Có thẻ dùng thông tin test sau ATM Cards Test để xử lý thanh toán.
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 | Thông tin tích hợp | |
orderId | String | Mã đơn hàng của đối tác | |
requestId | String | Giống với yêu cầu ban đầu | |
amount | Long | Giống với số tiền yêu cầu ban đầu | |
orderInfo | String | Chi tiết hóa đơn | |
orderType | String | momo_wallet | |
transId | Long | transaction ID của MoMo | |
resultCode | Integer | Result Code | |
message | String | Mô tả lỗi, ngônn ngữ dựa trên lang | |
payType | String | Loại hình thanh toán: napas | |
responseTime | Long | Thời gian phản hồi kết quả đến đối tác Định dạng: 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ẻ ATM Nội địa trong danh sách result codes tổng hợp ở đây.