UNPKG

@warriorteam/redai-zalo-sdk

Version:

Comprehensive TypeScript/JavaScript SDK for Zalo APIs - Official Account v3.0, ZNS with Full Type Safety, Consultation Service, Broadcast Service, Group Messaging with List APIs, Social APIs, Enhanced Article Management, Promotion Service v3.0 with Multip

268 lines 7.37 kB
/** * Purchase API types for Zalo Official Account * * API để tạo đơn hàng mua sản phẩm/dịch vụ OA * Yêu cầu: Ứng dụng cần được cấp quyền quản lý "Mua sản phẩm dịch vụ OA" */ /** * Beneficiary types - Đối tượng thụ hưởng */ export type BeneficiaryType = "OA" | "APP"; /** * Request để tạo đơn hàng với product_id */ export interface CreateOrderWithProductRequest { /** * Đối tượng được thụ hưởng khi mua đơn hàng * - OA: Official Account * - APP: Application * Lưu ý: Mỗi sản phẩm sẽ quy định đối tượng khả dụng riêng */ beneficiary: BeneficiaryType; /** * ID của sản phẩm muốn mua * Chỉ sử dụng product_id HOẶC redeem_code, không được dùng cả hai */ product_id: number; /** * Mã giảm giá (tùy chọn) * VD: Giảm 100K, Giảm 10%, ... */ voucher_code?: string; } /** * Request để tạo đơn hàng với redeem_code */ export interface CreateOrderWithRedeemRequest { /** * Đối tượng được thụ hưởng khi mua đơn hàng */ beneficiary: BeneficiaryType; /** * Mã quà tặng * Chỉ sử dụng product_id HOẶC redeem_code, không được dùng cả hai */ redeem_code: string; /** * Mã giảm giá (tùy chọn) */ voucher_code?: string; } /** * Union type cho request tạo đơn hàng */ export type CreateOrderRequest = CreateOrderWithProductRequest | CreateOrderWithRedeemRequest; /** * Response data khi tạo đơn hàng thành công */ export interface OrderData { /** * ID đơn hàng * Lưu ý: Order chỉ được tạo từ 00:01 đến 23h54 */ order_id: string; /** * Loại đối tượng thụ hưởng */ beneficiary_type: BeneficiaryType; /** * ID của OA (nếu beneficiary_type = OA) hoặc ID của App (nếu beneficiary_type = APP) */ beneficiary_id: number; /** * ID sản phẩm */ product_id: number; /** * Tên sản phẩm */ product_name: string; /** * Tài khoản ZCA thanh toán đơn hàng */ zca_id: number; /** * Voucher code đã được sử dụng (nếu có) */ voucher_code?: string; /** * Mã quà tặng (nếu có) */ redeem_code?: string; /** * Giá trị của voucher_code * VD: Giảm 10% hay Giảm 100K, ... */ discount?: number; /** * Giá tiền của đơn hàng (chưa áp dụng mã giảm giá) */ amount: number; /** * Giá tiền chính thức sau khi đã sử dụng mã giảm giá */ final_amount: number; /** * Thời điểm tạo đơn hàng, tính bằng millisecond */ created_time: number; /** * OTT - One Time Token * Mã xác thực dùng để xác nhận thanh toán đơn hàng * Sử dụng tại API xác nhận thanh toán đơn hàng * OTT sẽ có hiệu lực trong vòng 5 phút kể từ khi Order được khởi tạo */ verified_token: string; } /** * Response khi tạo đơn hàng thành công */ export interface CreateOrderResponse { error: 0; message: "Success"; data: OrderData; } /** * Helper type để kiểm tra request type */ export declare function isProductOrderRequest(request: CreateOrderRequest): request is CreateOrderWithProductRequest; /** * Helper type để kiểm tra request type */ export declare function isRedeemOrderRequest(request: CreateOrderRequest): request is CreateOrderWithRedeemRequest; /** * Validation errors cho Purchase API */ export interface PurchaseValidationError { field: string; message: string; } /** * Request để xác nhận thanh toán đơn hàng */ export interface ConfirmOrderRequest { /** * ID đơn hàng * Lấy từ response của API tạo đơn hàng */ order_id: string; /** * OTT - One Time Token * Mã xác thực dùng để xác nhận thanh toán đơn hàng * Lấy từ response của API tạo đơn hàng * OTT sẽ có hiệu lực trong vòng 5 phút kể từ khi Order được khởi tạo */ verified_token: string; } /** * Response data khi xác nhận thanh toán đơn hàng thành công * Lưu ý: Response không có verified_token như khi tạo đơn hàng */ export interface ConfirmedOrderData { /** * ID đơn hàng */ order_id: string; /** * Loại đối tượng thụ hưởng */ beneficiary_type: BeneficiaryType; /** * ID của OA (nếu beneficiary_type = OA) hoặc ID của App (nếu beneficiary_type = APP) */ beneficiary_id: number; /** * ID sản phẩm */ product_id: number; /** * Tên sản phẩm */ product_name: string; /** * Tài khoản ZCA thanh toán đơn hàng */ zca_id: number; /** * Voucher code đã được sử dụng (nếu có) */ voucher_code?: string; /** * Mã quà tặng (nếu có) */ redeem_code?: string; /** * Giá trị của voucher_code * VD: Giảm 10% hay Giảm 100K, ... */ discount?: number; /** * Giá tiền của đơn hàng (chưa áp dụng mã giảm giá) */ amount: number; /** * Giá tiền chính thức sau khi đã sử dụng mã giảm giá */ final_amount: number; /** * Thời điểm tạo đơn hàng, tính bằng millisecond */ created_time: number; } /** * Response khi xác nhận thanh toán đơn hàng thành công */ export interface ConfirmOrderResponse { error: 0; message: "Success"; data: ConfirmedOrderData; } /** * Danh sách sản phẩm OA có sẵn */ export declare const OA_PRODUCTS: { readonly OA_ADVANCED_6M: 866836109767958100; readonly OA_ADVANCED_12M: 1302963828004138500; readonly OA_PREMIUM_6M: 757295129578622300; readonly OA_PREMIUM_12M: 3071996459978069000; readonly GMF_10_MEMBERS: 739448264820568800; readonly GMF_50_MEMBERS: 2405469629611791400; readonly GMF_100_MEMBERS: 2275350247265190700; readonly GMF_1000_MEMBERS: 3678557233392100000; readonly TRANSACTION_5K: 4609774892111012000; readonly TRANSACTION_50K: 2038298593847789600; readonly TRANSACTION_500K: 2544831667685732000; }; /** * Thông tin chi tiết sản phẩm */ export interface ProductInfo { id: number; name: string; beneficiary: BeneficiaryType[]; category: 'subscription' | 'gmf' | 'quota'; } /** * Danh sách thông tin chi tiết sản phẩm */ export declare const PRODUCT_INFO: Record<number, ProductInfo>; /** * Purchase API error codes */ export declare enum PurchaseErrorCode { INVALID_BENEFICIARY = 1001, INVALID_PRODUCT_ID = 1002, INVALID_REDEEM_CODE = 1003, INVALID_VOUCHER_CODE = 1004, PRODUCT_NOT_AVAILABLE = 1005, INSUFFICIENT_BALANCE = 1006, ORDER_TIME_RESTRICTED = 1007, DUPLICATE_ORDER = 1008, PERMISSION_DENIED = 1009, INVALID_ORDER_ID = 1010, INVALID_VERIFIED_TOKEN = 1011, ORDER_EXPIRED = 1012, ORDER_ALREADY_CONFIRMED = 1013, SYSTEM_ERROR = 9999 } //# sourceMappingURL=purchase.d.ts.map