Nhảy tới nội dung

Thanh Toán MOD

Luồng Xử Lý

Lựa chọn 1: QR Code dán trên bưu kiện

MOD_parcel

Trước khi vận chuyển

  • Bước 1: Khách hàng (người dùng) xác nhận đơn hàng và chọn thanh toán khi nhận hàng.
  • 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 với mã đơn hàng (orderID) duy nhất, sau đó gửi đến MoMo để yêu cầu tạo QR Code bao gồm thông tin đơn hàng và số tiền.
  • Bước 3: MoMo tạo QR Code, sau đó trả về cho đối tác.
  • Bước 4: Hệ thống đối tác nhận QR Code, gửi thông tin đến người gửi hàng. Người gửi hàng in QR Code và dán lên bưu kiện.

Thanh toán bằng phương thức MOD khi nhận hàng

  • Bước 5: Khi bưu kiện đến được tay khách hàng, tiến hành quét QR Code được dán trên bưu kiện bằng MoMo app hoặc ứng dụng quét QR Code khác trên thiết bị di động.
  • Bước 6: Khách hàng xác nhận thanh toán qua 'màn hình thanh toán an toàn' trên ứng dụng MoMo.
  • Bước 7: Momo xử lý giao dịch, sau đó trả kết quả giao dịch cho đối tác, đồng thời hiển thị kết quả cho khách hàng trên MoMo app.

Đối với lựa chọn này, shipper cần phải kiểm tra kỹ kết quả thanh toán trên ứng dụng MoMo của người dùng để đảm bảo rằng giao dịch đã được thực hiện thành công.

Lựa chọn 2: QR Code hiển thị trên ứng dụng của nhân viên giao hàng

MOD_shipper

Trước khi vận chuyển

  • Bước 1: Khách hàng (người dùng) xác nhận đơn hàng và chọn thanh toán khi nhận hàng.
  • Bước 2: Đối tác xác nhận đơn hàng, sau đó gửi thông tin đơn hàng đến Shipper app.

Thanh toán bằng phương thức MOD khi nhận hàng

  • Bước 3: Shipper gặp khách hàng và gửi yêu cầu QR Code bằng cách chọn phương thức thanh toán MOD.
  • Bước 4: Hệ thống đối tác khởi tạo đơn hàng với thông tin đơn hàng cùng với mã đơn hàng (orderID) duy nhất, sau đó gửi đến MoMo để yêu cầu tạo QR Code bao gồm thông tin đơn hàng và số tiền.
  • Bước 5: Sau khi xác thực thông tin đối tác, MoMo trả về QR Code.
  • Bước 6: Hệ thống đối tác nhận QR Code và xử lý, sau đó trả về cho shipper app.
  • Bước 7: QR Code được hiển thị trên shipper app. Shipper đưa QR Code cho khách hàng để quét.
  • Bước 8: Khách hàng tiến hành quét QR Code bằng MoMo app hoặc ứng dụng quét QR Code khác trên thiết bị di động.
  • Bước 9: Khách hàng xác nhận thanh toán qua 'màn hình thanh toán an toàn' trên ứng dụng MoMo.
  • Bước 10: Momo xử lý giao dịch, sau đó trả kết quả giao dịch cho đối tác, đồng thời hiển thị kết quả cho khách hàng trên MoMo app.
  • Bước 11: Đối tác nhận kết quả giao dịch và xử lý trả về cho shipper app.
  • Bước 12: Hiển thị kết quả giao dịch trên shipper app. Đơn hàng được hoàn tất.

Cấu hình API

HTTP Information

Thiết lập phương thức thanh toán

Trên trang thanh toán của đối tác, sau khi người dùng chọn thanh toán với ví điện tử MoMo, hệ thống đối tác gọi API onDelivery để lấy phương thức thanh toán và sử dụng phương thức phù hợp với nền tảng của họ.

requestType: Định danh loại request

HTTP Request

POST /v2/gateway/api/create

AttributeTypeRequiredDescription
partnerCodeStringThông tin tích hợp
partnerNameStringTên đối tác
storeIdStringMã cửa hàng
requestIdString(50)Định danh duy nhất cho mỗi yêu cầu,
Đối tác sử dụng requestId cho xử lý idempotency control
amountLongSố tiền cần thanh toán
Nhỏ Nhất: 1.000 VND
Tối đa: 20.000.000 VND
Tiền tệ: VND
Kiểu dữ liệu: Long
orderIdStringMã đơn hàng của đối tác
orderInfoStringThông tin đơn hàng
redirectUrlStringMộ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.
Support: AppLink and WebLink
ipnUrlStringAPI của đối tác. Được MoMo sử dụng để gửi kết quả thanh toán theo phương thức IPN
requestTypeStringonDelivery
extraDataStringGiá 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=
autoCaptureBooleanNếu giá trị là false, đối tác cần gọi API confirm để thực hiện capture cho việc thanh toán
langStringNgôn ngữ của message (vi or en)
signatureStringChữ ký dùng để đảm bảo độ tin cậy của thông tin giao dịch. Là 1 chuỗi được mã hóa bằng thuật toán Hmac_SHA256  theo format: một chuỗi gồm key name và giá trị của các field sắp xếp theo thứ tự của key name từ a-z:
accessKey=$accessKey&amount=$amount&extraData=$extraData
&ipnUrl=$ipnUrl&orderId=$orderId&orderInfo=$orderInfo
&partnerCode=$partnerCode&redirectUrl=$redirectUrl
&requestId=$requestId&requestType=$requestType

Thông tin điều hướng (redirectUrl)

WebLink: Đường dẫn liên kết để mở website.

AppLink: Đường dẫn liên kết để 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/..

Mẫu Request

{
"partnerCode": "MOMO",
"partnerName" : "Test",
"storeId" : "MoMoTestStore",
"requestType": "onDelivery",
"ipnUrl": "https://momo.vn",
"redirectUrl": "https://momo.vn",
"orderId": "MM1540456472575",
"amount": 150000,
"lang": "vi",
"orderInfo": "SDK team.",
"requestId": "MM1540456472575",
"extraData": "eyJ1c2VybmFtZSI6ICJtb21vIn0=",
"signature": "fd37abbee777e13eaa0d0690d184e4d7e2fb43977281ab0e20701721f07a0e07"
}

HTTP Response

Danh sách những phương thức thanh toán mà MoMo cung cấp

AttributeTypeRequiredDescription
partnerCodeStringThông tin tích hợp
requestIdStringGiống với yêu cầu ban đầu
orderIdStringMã đơn hàng của đối tác
amountLonggiống với số tiền thanh toán ban đầu
responseTimeLongThời gian trả kết quả thanh toán về đối tác
Định dạng: timestamp
messageStringMô tả lỗi, ngôn ngữ dựa trên lang
resultCodeintResult Code
payUrlStringURL để chuyển từ trang mua hàng của đối tác sang trang thanh toán của MoMo
deeplinkStringURL để 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.
qrCodeUrlStringDữ 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.
deeplinkMiniAppStringURL 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 yêu cầu cho phép 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%3DcaptureWallet%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 Tài khoản MoMo TEST để thực hiện giao dịch.

Hướng dẫn thanh toán: Đăng nhập > Màn hình Home > Quét mã QR.

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

Xem thêm tại Payment Notification.

Khi giao dịch thành công, trang thanh toán của MoMo được điều hướng về trang của đối tác dựa trên field redirectUrl mà đối tác thêm vào ở lệnh onDelivery, và đính kèm thêm 1 số tham số vào URL theo định dạng sau. Lưu ý điều hướng này xảy ra trong app của Nhân viên giao hàng.

Mô tả 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.

AttributeTypeRequiredDescription
partnerCodeStringThông tin tích hợp
orderIdStringMã đơn hàng của đối tác
requestIdStringPartner's requestId
amountLongSố tiền cần thanh toán
partnerUserIdStringĐịnh danh duy nhất của MoMo cho mỗi tài khoản ví MoMo.
orderInfoStringThông tin đơn hàng
orderTypeStringmomo_wallet
transIdLongMã giao dịch của MoMo
resultCodeIntegerTrạng thái giao dịch của đơn hàng Mã Kết Quả
messageStringMô tả lỗi ngôn ngữ dựa trên lang
payTypeStringHình thức thanh toán: web hoặc qr
responseTimeLongThời gian trả kết quả thanh toán về đối tác
Định dạng: timestamp
extraDataStringThông tin thêm. Mặc định: ""
signatureStringChữ 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

Xem thêm