Tích hợp cổng thanh toán IAP
Lưu ý
Để thực hiện tích hợp cổng thanh toán IAP, đối tác cần phải cài đặt bản zmp-sdk do Mini App Payment cung cấp.
Tạo yêu cầu thanh toán
Tạo yêu cầu mua gói đã đăng ký với store.
Api
createOrderIAP
Parameters
Object object
Property | Type | Required | Description |
---|---|---|---|
productId | string | true | Thông tin productId theo hệ thống Zalo của đối tác |
payType | string | Thông tin loại đăng kí product với store. Nhận 2 giá trị:
| |
method | string | Phương thức thanh toán:
| |
prorationMode | string | Required khi user sử dụng device Google. | Thông tin chuyển gói sản phẩm. Nhận các giá trị:
|
success | function | Callback function khi gọi api thành công | |
fail | function | Callback function khi gọi api thất bại |
Return Values
Promise <Object data>
Property | Type | Description |
---|---|---|
orderId | string | Mã đơn hàng của yêu cầu thanh toán vừa tạo |
Sample Code
import { Payment } from "zmp-sdk/apis";
Payment.createOrderIAP({
productId: "zma-test123456",
payType: "ONETIME",
prorationMode: "DEFERRED",
method: "IAP_SANDBOX",
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.createOrderIAP({
productId: "zma-test123456",
payType: "ONETIME",
prorationMode: "UNKNOW",
method: "IAP_SANDBOX",
fail: (err) => {
// Tạo đơn hàng lỗi
console.log(err);
}
});
Xử lý sự kiện khi hoàn tất/huỷ thanh toán
Khi tạo đơn hàng thành công, một bottom sheet thanh toán sẽ được mở. Đối tác cần xây dựng phương thức lắng nghe sự kiện PaymentCallback khi Người dùng thực hiện thanh toán hoặc đóng bottom sheet này.
import { events, EventName } from "zmp-sdk/apis";
const onPaymentCallback = (...response) => {
console.log("[Payment Callback]: ", response);
// Example: [Payment Callback]: ["null", "action.payment.result", "{"tranx_id":"zax-4a9uu007","sku":"infinite_gas_monthly","result":-3}"]
const { result } = response[2];
// Xử lý sự kiện tiếp theo dựa vào giá trị result
};
useEffect(() => {
events.on(EventName.PaymentCallback, onPaymentCallback);
return () => {
events.off(EventName.PaymentCallback, onPaymentCallback);
};
}, []);
Reuslt Code
Code | Description |
---|---|
0 | Thanh toán thành công, đóng bottom sheet |
-3 | Người dùng huỷ thanh toán, đóng bottom sheet |
!= -3 && != 0 | Giao dịch có lỗi xảy ra, đóng bottom sheet |
Kiểm tra trạng thái thanh toán
Trong trường hợp cần thông tin trạng thái thanh toán, Merchant thực hiện tra cứu đơn hàng theo hướng dẫn tại đây