Hướng dẫn thanh toán qr pay Informational

Sơ đồ hoạt động

Diễn giải sơ đồ

  • Bước 1: Người dùng đăng nhập app MoMo, chọn MÃ THANH TOÁN (Payment Code) để tạo mã thanh toán (paymentCode).
  • Bước 2: Thu ngân quét Barcode (hoặc QR code) trên màn hình của người dùng để lấy paymentCode. Thông tin sẽ được gửi đến server POS của nhà đối tác.
  • Bước 3: POS Server đóng gói và gửi thông tin giao dịch đã nhận được đến server MoMo để cấp quyền.
  • Bước 4: Server nhà MoMo xử lý yêu cầu và trả kết quả cấp quyền về server POS. Nếu thất bại (không thể cấp quyền), giao dịch kết thúc ở đây. Nếu thành công, Server nhà MoMo sẽ gọi ipnUrl nếu có cấu hình (API được gọi bởi đối tác theo định dạng của MoMo, xem chi tiết để thông báo trạng thái đơn hàng của đối tác.
  • Bước 5: Server POS nhận kết quả trả về từ server của MoMo, xử lý và gửi yêu cầu phản hồi đến Server của MoMo để xác nhận giao dịch (capture hoặc cancel) phụ thuộc vào kết quả xử lý.
  • Bước 6: Server của MoMo xử lý yêu cầu confirm và trả kết quả về server POS.

Xử lý thanh toán

Mô tả dữ liệu mà hệ thống POS gửi thông qua server MoMo để xin cấp quyền.

Thời gian timeout nhỏ nhất khi gọi API này nên là 30s để đảm bảo nhận phản hồi từ server của MoMo.

HTTP Request

POST /v2/gateway/api/pos

ParameterTypeRequiredDescriptionpartnerCodeStringsubPartnerCodeStringĐịnh danh duy nhất của tài khoản M4B của bạnstoreIdStringMã cửa hàngstoreNameStringTên cửa hàngorderIdString Regex: ^0-9a-zA-Z*$`amountLongSố tiền cần thanh toán Nhỏ nhất: 1.000 VND Lớn nhất: 5.000.000 VND Currency: `VND.requestIdString(50)Định danh duy nhất cho mỗi yêu cầu, Đối tác sử dụng requestId cho xử lý idempotencypaymentCodeStringPayment code được tạo từ app MoMo mà được scanned bởi thu ngân sử dụng public Key và thuật toán RSA EncryptionorderInfoStringThông tin hóa đơnorderGroupIdLongđược cung cấp bởi MoMo để sắp xếp các nhóm của các hóa đơn cho các hoạt động vận hành sau đó. Liên hệ MoMo để có thể sử dụng field này.autoCaptureBooleanNếu giá trị false, giao dịch sẽ không tự động capture. Mặc định là `paymentCode`1ipnUrlStringAPI của đối tác. Được MoMo sử dụng để gửi kết quả thanh toán theo phương thức (server-to-server)extraDataStringGiá trị mặc định là rỗng`paymentCode`2 Encode base64 theo định dạng Json: `paymentCode`3 Ví dụ với dữ liệu: `paymentCode`4thì data `paymentCode`5: `paymentCode`6itemsListDanh 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ẩmuserInfoObjectThông tin người dùngrequestTimeLongThời gian đối tác gửi yêu cầu đến MoMo. Định dạng: `paymentCode`7 Ví dụ: `paymentCode`8langStringNgôn ngữ của `paymentCode`9 được trả về (`ipnUrl`0 or `ipnUrl`1)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: `ipnUrl`2 `ipnUrl`3 `ipnUrl`4

Chi tiết nội dung của `ipnUrl`5

AttributeTypeRequiredDescriptionidStringSKU numbernameStringTên sản phẩmdescriptionStringMiêu tả sản phẩmcategoryStringPhân loại ngành hàng của sản phẩmimageUrlStringLink hình ảnh của sản phẩmmanufacturerStringTên nhà sản xuấtpriceLongĐơn giácurrencyString`VND`quantityIntegerSố lượng của sản phẩm. Cần là một số lớn hơn `ipnUrl`7unitStringĐơn vị đo lường của sản phẩm nàytotalPriceLongTổng giá = `ipnUrl`8 x `ipnUrl`9taxAmountLongTổng thuế

Chi tiết nội dung của `capture`0

AttributeTypeRequiredDescriptionnameStringTên của người dùngphoneNumberStringSố điện thoại của người dùngemailStringEmail của người dùng

HTTP Response

AttributeTypeRequiredDescriptionpartnerCodeStringorderIdString Regex: ^0-9a-zA-Z*$`requestIdStringĐịnh danh của mỗi yêu cầuamountLongSố tiền cần thanh toán Nhỏ nhất: 1.000 VND Lớn nhất: 5.000.000 VND Currency: `VND.transIdLongresponseTimeLongThời gian phản hồi kết quả giao dịch đến đối tác. Định dạng: `paymentCode`7resultCodeIntegerTrạng thái giao dịchmessageStringMô tả kết quả giao dịch, ngôn ngữ dựa trên `capture`4

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

Xem thêm thông tin tại .

Mô tả tham chiếu

Mô tả tham số được xử dụng trong nội dung body của `capture`5.

AttributeTypeRequiredDescriptionpartnerCodeStringorderIdStringrequestIdStringPartner's `capture`6amountLongSố tiền cần thanh toánorderInfoStringThông tin hóa đơnpartnerUserIdStringĐịnh danh duy nhất của MoMo cho mỗi tài khoản ví MoMo.orderTypeString`capture`7transIdLongresultCodeIntegerTrạng thái giao dịch của hóa đơn Result CodemessageStringMô tả kết quả, ngôn ngữ dựa trên `capture`4payTypeStringMặc định: `capture`9responseTimeLongThời gian phản hồi kết quả giao dịch đến đối tác Định dạng: `paymentCode`7extraDataStringExtra Data. Default: `paymentCode`2signatureStringChữ 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: `ipnUrl`2 `cancel`3 `cancel`4 `cancel`5 `cancel`6

Xem thêm

  • Kiểm tra trạng thái giao dịch
  • Reverse và hoàn tiền
  • Xác nhận giao dịch