Nhảy tới nội dung

Collection Link

LUỒNG XỬ LÝ

MOD_parcel

Diễn giải sơ đồ

  • Bước 1: Khách hàng kiểm tra đơn hàng sau khi mua sắm tại cửa hàng / trực tuyến
  • Bước 2: Người bán gửi yêu cầu đến MoMo cho Liên kết thanh toán (kèm thông tin xác thực của người bán)
  • Bước 3: MoMo xác thực thông qua hồ sơ người bán và tạo liên kết thanh toán sau đó gửi lại cho người bán.
  • Bước 4: Có 3 trường hợp có thể xảy ra
    • TH 1: Đơn vị bán hàng là kênh bán hàng trực tuyến, sau khi nhận được link hệ thống sẽ tự động chuyển đến trang thanh toán của MoMo
    • TH 2: Đơn vị bán hàng là cửa hàng offline sử dụng máy POS, hệ thống sẽ gửi link qua Email / SMS của người mua, sau đó người mua sẽ mở link để chuyển đến trang thanh toán của MoMo.
    • TH 3: Người bán hàng là đối tác của SaaS (Software as a Service), họ sẽ gửi liên kết trực tiếp thông qua kênh trao đổi của người mua (messenger, zalo,..), sau đó người mua nhấp vào liên kết để đến trang thanh toán của MoMo.
  • Bước 5: Tùy từng thiết bị, MoMo sẽ hiển thị giao diện web di động hoặc web tương ứng.
  • Bước 6: Khách hàng kiểm tra thông tin đơn hàng, sau đó lựa chọn một trong các phương thức thanh toán của MoMo.
  • Bước 7: Tùy thuộc vào phương thức thanh toán đã chọn của khách hàng:
    • Bước 7.1. Chuyển hướng đến trang thanh toán QRC: Hiển thị giao diện tùy theo thiết bị mà khách hàng đang sử dụng. Trong trường hợp thiết bị là máy tính để bàn hoặc máy tính bảng , thông tin thanh toán và hình ảnh QRC sẽ được hiển thị. Trường hợp thiết bị là di động , chỉ hiển thị thông tin thanh toán **, nếu khách hàng đã cài đặt ứng dụng MoMo, hệ thống sẽ nhận diện và chuyển thẳng sang bước tiếp theo.
    • Bước 7.2. Chuyển hướng đến trang thanh toán ATM : Hiển thị thông tin đơn hàng và yêu cầu người dùng nhập thông tin thẻ ATM trước khi thanh toán. Khách hàng kiểm tra thông tin đơn hàng, nhập thông tin thẻ và xác nhận thanh toán. Tùy thuộc vào thiết bị của khách hàng, nó có thể hiển thị giao diện máy tính để bàn hoặc webview.
    • Bước 7.3. Chuyển hướng đến trang thanh toán Visa / Master / JCB : Hiển thị thông tin đơn hàng và yêu cầu người dùng nhập thông tin thẻ quốc tế trước khi thanh toán. Khách hàng kiểm tra thông tin đơn hàng, nhập thông tin thẻ và xác nhận thanh toán. Tùy thuộc vào thiết bị của khách hàng, nó có thể hiển thị giao diện máy tính để bàn hoặc webview.
  • Bước 8: Sau khi quét QRC trên máy tính để bàn hoặc mở trực tiếp từ Di động, khách hàng sẽ được chuyển đến màn hình xác nhận thanh toán an toàn, sau đó nhấp vào 'Xác nhận thanh toán'.
  • Bước 9: Cổng thanh toán của MoMo xử lý thanh toán, sau đó trả kết quả giao dịch thanh toán cho Người bán.

Cấu hình API

Thông tin HTTP

Khởi tạo phương thức thanh toán

Trên trang thanh toán của merchant, sau khi khách hàng chọn phương thức thanh toán của MoMo, server merchant cần gọi API payWithMethod của MoMo để lấy phương thức thanh toán và apply cái thích hợp cho platform của họ.

requestType: Định danh kiểu của 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
amountLongSố 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
Lưu ý: Giao dịch thanh toán thẻ ATM và thẻ Credit cần đặt giá trị tối thiểu là 10.000 VND
orderIdStringMã đơn hàng của đối tác
Regex: ^[0-9a-zA-Z]([-_.]*[0-9a-zA-Z]+)*$
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)
requestTypeStringpayWithMethod
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=
itemsListDanh sách các sản phẩm hiển thị trên trang thanh toán.
Ví dụ: [{"image": "https://momo.vn/uploads/product1.jpg", "name": "Product 1", "quantity": 1, "amount": 20000}, {"image": "https://momo.vn/uploads/product2.jpg", "name": "Product 2", "quantity": 2, "amount": 30000}]
userInfoObjectThông tin người dùng
Ví dụ: {"phoneNumber": "0123456789", "email": "momo@momo.vn", "name": "momo" }
orderExpireTimeIntegerThời gian quá hạn của đơn hàng. Đơn vị: phút
autoCaptureBooleanNếu như thiết lập giá trị là false, Việc thanh toán sẽ không được capture tự động.
Chú ý: autoCapture = 'false' chỉ áp dụng cho phương thức thanh toán thông qua MoMo E-Wallet và cho Credit Card
langStringNgôn ngữ của message được trả về (vi or 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: 1 chuỗi String được sort theo thứ tự alphabet:
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

AttributeTypeRequiredDescription
idStringSKU number
nameStringTên sản phẩm
descriptionStringMiêu tả sản phẩm
categoryStringPhân loại ngành hàng của sản phẩm
imageUrlStringLink hình ảnh của sản phẩm
manufacturerStringTên nhà sản xuất
priceLongĐơn giá
currencyStringVND
quantityIntegerSố lượng của sản phẩm. Cần là một số lớn hơn 0
unitStringĐơn vị đo lường của sản phẩm này
totalPriceLongTổng giá = Đơn giá x Số lượng
taxAmountLongTổng thuế

Mẫu Item

{
"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"
}

Chi tiết nội dung của userInfo

AttributeTypeRequiredDescription
nameStringTên của người dùng
phoneNumberStringSố điện thoại của người dùng
emailStringEmail của người dùng

Mẫu UserInfo

{
"name": "Nguyen Van A",
"phoneNumber": "0999888999",
"email": "email_add@domain.com"
}

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

WebLink: Link để mở website.

AppLink: Link để mở ứng dụng điện thoại.

Tìm hiểu thêm về AppLink

Request mẫu

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

HTTP Response
AttributeTypeRequiredDescription
partnerCodeStringThông tin tích hợp
requestIdStringGiống với request ban đầu
orderIdStringMã đơn hàng của đối tác
Regex: ^[0-9a-zA-Z]([-_.]*[0-9a-zA-Z]+)*$
amountLongGiống với số tiền thanh toán ban đầu
responseTimeLongThời gian phản hồi kết quả thanh toán đến đối tác
Định dạng: timestamp
messageStringMô tả kết quả request, ngôn ngữ được dựa trên lang
resultCodeintResult Code
payUrlStringURL để điều hướng từ trang đối tác đến trang thanh toán MoMo
shortLinkStringURL ngắn đại diện cho payUrl chứa các tham số ở định dạng nhỏ hơn và đơn giản hơn

Response mẫu

{
"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="
"shortLink": "https://test-payment.momo.vn/shortlink/smTZN2oL2s"
}

Thanh toán

Bạn cần cài đặt ứng dụng MoMo Test và sử dụng tài khoản để test MoMo TEST Account để tiến hành thanh toán.

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

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

Xem thêm tại Payment Notification.

Mô tả tham số

Mô tả các tham số được dùng bởi MoMo trong URL redirectUrl và nội dụng body trong ipnUrl.

AttributeTypeRequiredDescription
partnerCodeStringThông tin tích hợp
orderIdStringMã đơn hàng của đối tác
Regex: ^[0-9a-zA-Z]([-_.]*[0-9a-zA-Z]+)*$
requestIdStringrequestId của đối tác
amountLongSố tiền thanh toán
orderInfoStringThông tin đơn hàng
partnerUserIdStringĐịnh danh duy nhất của MoMo cho mỗi tài khoản ví MoMo.
orderTypeStringmomo_wallet
transIdLongMoMo's transaction ID
resultCodeIntegerTransaction status of the order Result Code
messageStringMô tả kết quả, ngôn ngữ dựa trên lang
payTypeStringLoại hình thanh toán: qr, webApp, credit or napas
responseTimeLongThời gian phản hồi kết quả về cho đối tác
Định dạng: timestamp
extraDataStringextraData. Default: ""
signatureStringChữ ký để xác nhận thông tin. Sử dụng thuật toán Hmac_SHA256  với định dạng: Mỗi chuỗi bao gồm các key name được sắp xếp theo thứ tự alphabet:
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