Chuyển đến nội dung chính

startCashier

Lưu ý
Vui lòng liên hệ Đội ngũ Zalopay để được cấp quyền sử dụng tính năng này.

Mô tả

Mở trang thanh toán cho các đơn hàng.
Hỗ trợ thanh toán 1 hoặc nhiều đơn hàng trên

zpa
(Zalopay App) và
zpi
(Zalopay in Zalo App).

Parameters

Tên ParamKiểu dữ liệuBắt buộcMô tả
ordersArray<Order>Danh sách đơn hàng cần thanh toán.
optionsMap<string, string>KhôngDữ liệu tùy chọn để tuỳ biến, điều chỉnh tính năng, cách hoạt động của trang thanh toán.
callback(data: CallbackData) => ()KhôngHàm callback trong quá trình thanh toán
(ví dụ: hủy thanh toán/trang kết quả xuất hiện/đóng trang kết quả...).

Order

type Order = {
order_type: 1;
order: {
app_id: number;
zp_trans_token: string;
};
}

Options

Tên dataKiểu dữ liệu/Giá trịMô tảPhiên bản hỗ trợ
"cashier.auto_checkout_vietqr""true"/"false"Tự động mở màn hình VietQR, nếu nguồn tiền VietQR khả dụng.ZPI ZPA
"rp.redirect_data.type"string
- 0: default value, close Zalopay webview on ZPI/ back to home on ZPA
- 1: only close result page
- 2: close result page & redirect on ZPI/launch deeplink on ZPA to url (must have rp.redirect_data.url)
Hành vi khi nhấn "Đóng" tại trang Kết quả giao dịch.ZPI ZPA
"rp.redirect_data.url"stringURL điều hướng đi khi nhấn "Đóng" tại trang Kết quả giao dịch.
(khi rp.redirect_data.type: 2).
ZPI ZPA
"rp.bottom_action.label"stringTên CTA thứ 2 trên trang Kết quả giao dịch.ZPI
"rp.bottom_action.url"stringURL điều hướng đi khi nhấn nút CTA thứ 2 tại trang Kết quả giao dịch.ZPI

Callback

type CallbackData = {
payment_event: string;
data: EventData;
};

type EventData = EventAppearedClosed | EventCancel | EventComplete;

//callback data of event: 'RESULT_APPEARED', 'RESULT_CLOSED'
type EventAppearedClosed = {
payment_event: 'RESULT_APPEARED'/'RESULT_CLOSED';
data: {
orders: OrderCallback[];
}
};

//callback data of event: 'PAYMENT_CANCEL'
type EventCancel = {
payment_event: 'PAYMENT_CANCEL';
data: {
reason: string;
}
};

//callback data of event: 'PAYMENT_COMPLETED'
type EventComplete = {
payment_event: 'PAYMENT_COMPLETED';
data: {
previous_event: PaymentEvent;
data: { // data of previous event
orders: OrderCallback[];
};
};
};

type OrderCallback = {
app_id: string | number;
app_trans_id: string;
zp_trans_id: string;
status: number; //Failed = 0, Success = 1, Processing = 2,
}

Code mẫu

window.zlpSdk.Payment.startCashier({
orders: [{
order_type: 1,
order: {
app_id: 61,
zp_trans_token: 'ACUntME9BYhsTZZvdop5Il6w',
}
},
{
order_type: 1,
order: {
app_id: 2390,
zp_trans_token: 'ACLS6M-vR4w6dqTnGDrmTWSw',
}
}],
options: {
'rp.bottom_action.label': 'Nạp thêm',
'rp.bottom_action.url': '/topup',

'rp.redirect_data.type': '2',
'rp.redirect_data.url': '/telco-data'
},
callback: (data) => {
// handle callback here
console.log('callback data', data)
}
})