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

110 lines 4.55 kB
import { ZaloClient } from "../clients/zalo-client"; import { SendMessageResponse, TransactionMessage, MessageRecipient } from "../types/message"; /** * Service xử lý các API tin nhắn giao dịch của Zalo Official Account * * ĐIỀU KIỆN GỬI TIN GIAO DỊCH: * * 1. THỜI GIAN GỬI: * - Chỉ được gửi trong vòng 24 giờ kể từ khi người dùng tương tác cuối cùng với OA * - Tương tác bao gồm: gửi tin nhắn, nhấn button, gọi điện, truy cập website từ OA * * 2. NỘI DUNG TIN NHẮN: * - Phải liên quan trực tiếp đến giao dịch thực tế * - Bao gồm: xác nhận đơn hàng, thông báo thanh toán, cập nhật trạng thái giao hàng * - Không được chứa nội dung quảng cáo, khuyến mãi * * 3. TẦN SUẤT GỬI: * - Tối đa 3 tin nhắn giao dịch/ngày cho mỗi người dùng * - Phải có khoảng cách ít nhất 1 giờ giữa các tin nhắn * * 4. ĐỊNH DẠNG: * - Phải sử dụng template được Zalo phê duyệt trước * - Template phải tuân thủ format chuẩn của tin giao dịch * * 5. NGƯỜI DÙNG: * - Người dùng phải đã follow OA * - Người dùng không được block OA * - Người dùng phải có tương tác gần đây với OA * * 6. OFFICIAL ACCOUNT: * - OA phải được xác minh (verified) * - OA phải có quyền gửi tin giao dịch được Zalo cấp phép * - OA không được vi phạm chính sách của Zalo * * LỖI THƯỜNG GẶP: * - 1004: Người dùng chưa follow OA hoặc đã unfollow * - 1005: Vượt quá thời gian 24 giờ từ lần tương tác cuối * - 1006: Vượt quá giới hạn 3 tin/ngày * - 1007: Template chưa được phê duyệt hoặc không hợp lệ * - 1008: Nội dung tin nhắn vi phạm chính sách */ export declare class TransactionService { private readonly client; private readonly transactionApiUrl; constructor(client: ZaloClient); /** * Gửi tin nhắn giao dịch * @param accessToken Access token của Official Account * @param recipient Thông tin người nhận * @param message Nội dung tin nhắn giao dịch * @returns Thông tin tin nhắn đã gửi */ sendTransactionMessage(accessToken: string, recipient: MessageRecipient, message: TransactionMessage): Promise<SendMessageResponse>; /** * Gửi tin nhắn xác nhận đơn hàng * @param accessToken Access token của Official Account * @param recipient Thông tin người nhận * @param orderInfo Thông tin đơn hàng * @returns Thông tin tin nhắn đã gửi */ sendOrderConfirmation(accessToken: string, recipient: MessageRecipient, orderInfo: { orderId: string; orderDate: string; totalAmount: number; items: Array<{ name: string; quantity: number; price: number; }>; customerInfo: { name: string; phone: string; address: string; }; }): Promise<SendMessageResponse>; /** * Gửi tin nhắn thông báo thanh toán * @param accessToken Access token của Official Account * @param recipient Thông tin người nhận * @param paymentInfo Thông tin thanh toán * @returns Thông tin tin nhắn đã gửi */ sendPaymentNotification(accessToken: string, recipient: MessageRecipient, paymentInfo: { orderId: string; amount: number; paymentMethod: string; paymentDate: string; status: "success" | "failed" | "pending"; }): Promise<SendMessageResponse>; /** * Gửi tin nhắn cập nhật trạng thái giao hàng * @param accessToken Access token của Official Account * @param recipient Thông tin người nhận * @param shippingInfo Thông tin giao hàng * @returns Thông tin tin nhắn đã gửi */ sendShippingUpdate(accessToken: string, recipient: MessageRecipient, shippingInfo: { orderId: string; trackingNumber: string; status: "preparing" | "shipped" | "in_transit" | "delivered"; estimatedDelivery?: string; carrier?: string; }): Promise<SendMessageResponse>; /** * Validate transaction message format * @param message Transaction message to validate */ private validateTransactionMessage; } //# sourceMappingURL=transaction.service.d.ts.map