Nhảy tới nội dung

Tạo yêu cầu thanh toán.

Parameters

Object object

PropertyTypeRequiredDescription
amountnumbertrueSố tiền cần thanh toán
itemArray<Record<String, String>>trueThông tin các items thanh toán
descstringtrueMô tả giao dịch thanh toán
extradataObjectThông tin mà đối tác cần gửi thêm
Toàn bộ dữ liệu sẽ được Checkout SDK chủ động gửi cho đối tác thanh toán:
  • Đối với ZaloPay: thông qua tham số embedData
  • Đối với MoMo:
    • thông qua tham số extraData
    • Riêng các thông tin như storeName, storeId, orderGroupId, Checkout SDK sẽ gửi trực tiếp qua các trường storeName, storeId, orderGroupId
methodObjecttruePhương thức thanh toán duy nhất mà đối tác muốn hiển thị cho người dùng.
Bao gồm: Quy trình chi tiết tham khảo ở dưới đây.
successfunctionCallback function khi gọi api thành công
failfunctionCallback function khi gọi api thất bại

Return Values

Promise <Object data>

PropertyTypeDescription
orderIdstringMã đơn hàng của yêu cầu thanh toán vừa tạo

Sample Code

import { Payment } from "zmp-sdk";

// tạo yêu cầu thanh toán 50.000VNĐ
Payment.createOrder({
desc: "Thanh toán 50.000",
item: [
{ id: "1", amount: 20000 },
{ id: "2", amount: 30000 },
],
amount: 50000,
extradata: { // toàn bộ extradata sẽ được truyền qua embedData (ZaloPay) hoặc extraData (MoMo)
storeName: "Cửa hàng A", // field này sẽ được truyền trực tiếp qua storeName (MoMo)
storeId: "123", // field này sẽ được truyền trực tiếp qua storeId (MoMo)
orderGroupId: "345" // field này sẽ được truyền trực tiếp qua orderGroupId (MoMo)
myTransactionId: "12345678", // transaction id riêng của hệ thống của bạn
notes: "Đây là giá trị gửi thêm",
},
method: {
id: "ZALOPAY_SANDBOX", // Phương thức thanh toán
isCustom: false, // true: Phương thức thanh toán của Platform, false: Phương thức thanh toán riêng của đối tác
},
success: (data) => {
// Tạo đơn hàng thành công
// Hệ thống tự động chuyển sang trang thanh toán.
const { orderId } = data;
console.log(orderId);
},
fail: (err) => {
// Tạo đơn hàng lỗi
console.log(err);
},
});

// hoặc
const { orderId } = await Payment.createOrder({
desc: "Thanh toán 50.000",
item: [
{ id: "1", amount: 20000 },
{ id: "2", amount: 30000 },
],
amount: 50000,
fail: (err) => {
// Tạo đơn hàng lỗi
console.log(err);
},
});

Quy trình hiển thị phương thức thanh toán cụ thể

Để hiển thị một phương thức thanh toán cụ thể, đối tác cần truyền vào tham số method với id là mã phương thức thanh toán của Platform hoặc mã phương thức thanh toán riêng của đối tác, và isCustom quy định phương thức có phải là phương thức riêng hay không.

Sau đó Checkout SDK sẽ tự động chuyển người dùng sang trang thanh toán và chỉ trả về duy nhất phương thức mà đối tác đã quy định, người dùng không thể lựa chọn phương thức thanh toán khác.

Ví dụ quy trình

force-payment