Ví Trả Sau
Thanh toán bằng ví trả sau MoMo dành cho đối tác sử dụng các kênh bán hàng sau:
- Website trên máy tính
- Website trên di động
- Ứng dụng di động
- Thiết bị không hỗ trợ internet
Hướng dẫn bên dưới cho bạn biết cách tích hợp phù hợp với từng nền tảng và cách hoạt động của API.
Luồng Xử Lý
Cấu Hình API
Lấy phương thức thanh toán
Merchant server cần gọi tới API payWithVTS
của MoMo để lấy các phương thức thanh toán và áp dụng cho từng nền tảng của mình.
requestType
: Định danh loại request
POST /v2/gateway/api/create
Attribute | Type | Required | Description |
---|---|---|---|
partnerCode | String | Thông tin tích hợp | |
subPartnerCode | String | Định danh duy nhất của tài khoản M4B của bạn | |
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 để xử lý idempotency | |
amount | Long | Số tiền cần thanh toán Nhỏ Nhất: 1.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 | |
orderGroupId | Long | orderGroupId được MoMo cung cấp để phân nhóm đơn hàng cho các hoạt động vận hành sau này. Vui lòng liên hệ với MoMo để biết chi tiết cách sử dụ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 | payWithVTS | |
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= | |
items | List | Danh sách các sản phẩm hiển thị trên trang thanh toán. Tối đa: 50 loại sản phẩm | |
userInfo | Object | Thông tin người dùng | |
autoCapture | Boolean | Nếu giá trị false , giao dịch sẽ không tự động capture . Mặc định là true | |
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 |
Chi tiết nội dung của items
Attribute | Type | Required | Description |
---|---|---|---|
id | String | SKU number | |
name | String | Tên sản phẩm | |
description | String | Miêu tả sản phẩm | |
category | String | Phân loại ngành hàng của sản phẩm | |
imageUrl | String | Link hình ảnh của sản phẩm | |
manufacturer | String | Tên nhà sản xuất | |
price | Long | Đơn giá | |
currency | String | VND | |
quantity | Integer | Số lượng của sản phẩm. Cần là một số lớn hơn 0 | |
unit | String | Đơn vị đo lường của sản phẩm này | |
totalPrice | Long | Tổng giá = Đơn giá x Số lượng | |
taxAmount | Long | Tổng thuế |
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 |
Điều hướng thông tin (redirectUrl)
WebLink
: Link để mở website.
AppLink
: Link để mở mobile application.
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": "payWithVTS",
"ipnUrl": "https://momo.vn",
"redirectUrl": "https://momo.vn",
"orderId": "MM1540456472575",
"amount": 150000,
"lang": "vi",
"orderInfo": "SDK team.",
"requestId": "MM1540456472575",
"extraData": "eyJ1c2VybmFtZSI6ICJtb21vIn0=",
"signature": "fd37abbee777e13eaa0d0690d184e4d7e2fb43977281ab0e20701721f07a0e07"
"items": {
"id": "204727",
"name": "YOMOST Bac Ha&Viet Quat 170ml",
"description": "YOMOST Sua Chua Uong Bac Ha&Viet Quat 170ml/1 Hop",
"category": "beverage",
"imageUrl":"https://momo.vn/uploads/product1.jpg",
"manufacturer":"Vinamilk",
"price": 11000,
"quantity": 5,
"unit":"hộp",
"totalPrice": 55000,
"taxAmount":"200"
}
{
"id": "204782",
"name": "YOMOST Dau Tay 170ml",
"description": "YOMOST Sua Chua Uong Dau Tay 170ml/1 Hop",
"category": "beverage",
"imageUrl":"https://momo.vn/uploads/product2.jpg",
"manufacturer":"Vinamilk",
"price": 11000,
"quantity": 3,
"unit":"hộp",
"price": 33000,
"taxAmount":"200"
}
"userInfo": {
"name": "Nguyen Van A",
"phoneNumber": "0999888999",
"email": "email_add@domain.com",
}
}
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 số tiền yêu cầu ban đầu | |
responseTime | Long | Thờ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 | |
deeplink | String | URL để mở ứng dụng trực tiếp MoMo (Khách hàng phải cài đặt ứng dụng MoMo trước) và trang xác nhận thanh toán. | |
qrCodeUrl | String | Dữ liệu để tạo mã QR nếu bạn muốn khách hàng quét mã QR trực tiếp trên trang mua hàng hoặc in mã lên hoá đơn. Note : Đây không phải URL chứa hình ảnh của mã QR, bạn cần sử dụng thư viện ngoài để tạo mã QR. | |
deeplinkMiniApp | String | URL mở màn hình xác nhận thanh toán của ứng dụng MoMo. Áp dụng khi đối tác sử dụng mini app nhúng vào trong ứng dụng MoMo. |
Trên môi trường production: Bạn cần phải xin quyền để sử dụng những trường qrCodeUrl
, deeplink
,deeplinkMiniApp
.
Mẫu Response
{
"partnerCode": "MOMO",
"requestId": "MM1540456472575",
"orderId": "MM1540456472575",
"amount": 150000,
"responseTime": 145256987,
"message": "Thành công",
"resultCode": 0,
"payUrl": "https://test-payment.momo.vn/v2/gateway/pay?t=TU9NT1NKSTEyMDE5MDgyM3wxNjEzNTMyMDk3OTIyOjAxMjM0NTY3Nzg=",
"deeplink": "momo://?action=payWithAppToken&amount=150000&fee=0&requestType=payment&orderLabel=M%C3%A3+%C4%91%C6%A1n+h%C3%A0ng&orderId=MM1540456472575&requestId=MM1540456472575&merchantnamelabel=Nh%C3%A0+cung+c%E1%BA%A5p&description=SDK+team.&partnerCode=MOMO&merchantcode=MOMO&language=vi&merchantname=MoMo+Payment&packageId=&extras=&extraData=email=abc@gmail.com&deeplinkCallback=https%3A%2F%2Ftest-payment.momo.vn%2Fgw_payment%2Fm2%3Fid%3DM7EWVy&callbackUrl=https%3A%2F%2Ftest-payment.momo.vn%2Fgw_payment%2Fm2%3Fid%3DM7EWVy&urlSubmitToken=https%3A%2F%2Ftest-payment.momo.vn%2Fgw_payment%2Fpayment_with_app%3FpartnerCode%3DMOMO%26accessKey%3DF8BBA842ECF85%26requestId%3DMM1540456472575%26orderId%3DMM1540456472575%26orderInfo%3DSDK%2Bteam.%26amount%3D150000%26signature%3Ddf2a347519abb91e9c1bd1bee80e675f4108cb6dbcac531979e805857293d486%26requestType%3DpayWithVTS%26payType%3Dapp-in-app&appScheme=",
"qrCodeUrl": "https://test-payment.momo.vn/gw_payment/s/zoVKZd"
}
Thanh toán
Bạn cần cài đặt ứng dụng MoMo Test và sử dụng MoMo TEST Account để thực hiện giao dịch.
Hướng dẫn thanh toán: Đăng nhập ứng dụng MoMo > Màn hình chính > Quét mã.
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 | 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 | Mã giao dịch của MoMo | |
resultCode | Integer | Trạng thái giao dịch của đơn hàng Mã Kết Quả | |
message | String | Mô tả lỗi ngôn ngữ dựa trên lang | |
payType | String | Hình thức thanh toán: webApp , app ,qr hoặc miniapp | |
responseTime | Long | Thời gian trả kết quả thanh toán về đối tác Định dạng:: timestamp | |
extraData | String | Thông tin thêm | |
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 |