Nhảy tới nội dung

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

Onetime_flow

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

HTTP Information

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

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
amountLongSố 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
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.
Hỗ trợ: 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 (server-to-server)
requestTypeStringpayWithATM
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=
langStringNgôn ngữ của message được trả về (vi hoặc en)
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
&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",
}
HTTP Response
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 yêu cầu ban đầu
responseTimeLonghờ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

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.

AttributeTypeRequiredDescription
partnerCodeStringThông tin tích hợp
orderIdStringMã đơn hàng của đối tác
requestIdStringGiống với yêu cầu ban đầu
amountLongGiống với số tiền yêu cầu ban đầu
orderInfoStringChi tiết hóa đơn
orderTypeStringmomo_wallet
transIdLongtransaction ID của MoMo
resultCodeIntegerResult Code
messageStringMô tả lỗi, ngônn ngữ dựa trên lang
payTypeStringLoại hình thanh toán: napas
responseTimeLongThời gian phản hồi kết quả đến đối tác
Định dạng: timestamp
extraDataStringExtra Data. 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

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.

Xem thêm