@warriorteam/redai-zalo-sdk 1.29.0 → 1.31.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +140 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/services/consultation.service.d.ts +114 -147
- package/dist/services/consultation.service.d.ts.map +1 -1
- package/dist/services/consultation.service.js +370 -0
- package/dist/services/consultation.service.js.map +1 -1
- package/dist/services/purchase.service.d.ts +209 -0
- package/dist/services/purchase.service.d.ts.map +1 -0
- package/dist/services/purchase.service.js +417 -0
- package/dist/services/purchase.service.js.map +1 -0
- package/dist/types/consultation.d.ts +253 -0
- package/dist/types/consultation.d.ts.map +1 -0
- package/dist/types/consultation.js +13 -0
- package/dist/types/consultation.js.map +1 -0
- package/dist/types/purchase.d.ts +268 -0
- package/dist/types/purchase.d.ts.map +1 -0
- package/dist/types/purchase.js +137 -0
- package/dist/types/purchase.js.map +1 -0
- package/dist/zalo-sdk.d.ts +2 -0
- package/dist/zalo-sdk.d.ts.map +1 -1
- package/dist/zalo-sdk.js +2 -0
- package/dist/zalo-sdk.js.map +1 -1
- package/examples/consultation-template-example.ts +324 -0
- package/package.json +16 -3
|
@@ -0,0 +1,253 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Types cho Consultation Service - Zalo OA API
|
|
3
|
+
*
|
|
4
|
+
* Consultation messages (tin nhắn tư vấn) là loại tin nhắn đặc biệt
|
|
5
|
+
* cho phép OA gửi tin nhắn chủ động đến người dùng trong khung thời gian nhất định
|
|
6
|
+
*
|
|
7
|
+
* API Endpoint: https://openapi.zalo.me/v3.0/oa/message/cs
|
|
8
|
+
* Method: POST
|
|
9
|
+
* Content-Type: application/json
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* Interface cho template action (default_action trong elements)
|
|
13
|
+
*/
|
|
14
|
+
export interface TemplateAction {
|
|
15
|
+
/** Loại action */
|
|
16
|
+
type: "oa.open.url" | "oa.query.show" | "oa.query.hide" | "oa.open.sms" | "oa.open.phone";
|
|
17
|
+
/** URL (cho oa.open.url) */
|
|
18
|
+
url?: string;
|
|
19
|
+
/** Payload string (cho oa.query.show, oa.query.hide) hoặc object (cho oa.open.sms, oa.open.phone) */
|
|
20
|
+
payload?: string | {
|
|
21
|
+
content?: string;
|
|
22
|
+
phone_code?: string;
|
|
23
|
+
} | {
|
|
24
|
+
phone_code?: string;
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Interface cho template element
|
|
29
|
+
*
|
|
30
|
+
* Quy tắc elements:
|
|
31
|
+
* - elements là mảng JSON, tối đa 5 phần tử
|
|
32
|
+
* - title: bắt buộc, ≤ 100 ký tự
|
|
33
|
+
* - subtitle: bắt buộc cho element đầu tiên, tùy chọn cho các element sau, ≤ 500 ký tự
|
|
34
|
+
* - image_url: URL ảnh (tùy chọn)
|
|
35
|
+
* - default_action: hành động khi click vào element (tùy chọn)
|
|
36
|
+
*/
|
|
37
|
+
export interface TemplateElement {
|
|
38
|
+
/** Tiêu đề (bắt buộc, ≤ 100 ký tự) */
|
|
39
|
+
title: string;
|
|
40
|
+
/** Tiêu đề phụ (bắt buộc cho element đầu tiên, tùy chọn cho các element sau, ≤ 500 ký tự) */
|
|
41
|
+
subtitle?: string;
|
|
42
|
+
/** URL ảnh (tùy chọn) */
|
|
43
|
+
image_url?: string;
|
|
44
|
+
/** Hành động khi click vào element (tùy chọn) */
|
|
45
|
+
default_action?: TemplateAction;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Interface cho template button
|
|
49
|
+
*
|
|
50
|
+
* Quy tắc buttons:
|
|
51
|
+
* - buttons là mảng JSON, tối đa 5 phần tử
|
|
52
|
+
* - title: bắt buộc, ≤ 100 ký tự
|
|
53
|
+
* - type: loại action
|
|
54
|
+
* - payload: dữ liệu của action, phụ thuộc vào loại type
|
|
55
|
+
*/
|
|
56
|
+
export interface TemplateButton {
|
|
57
|
+
/** Tiêu đề button (bắt buộc, ≤ 100 ký tự) */
|
|
58
|
+
title: string;
|
|
59
|
+
/** Loại button */
|
|
60
|
+
type: "oa.open.url" | "oa.query.show" | "oa.query.hide" | "oa.open.sms" | "oa.open.phone";
|
|
61
|
+
/** Payload của button, phụ thuộc vào type */
|
|
62
|
+
payload: string | {
|
|
63
|
+
url?: string;
|
|
64
|
+
} | {
|
|
65
|
+
content?: string;
|
|
66
|
+
phone_code?: string;
|
|
67
|
+
} | {
|
|
68
|
+
phone_code?: string;
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Interface cho từng tin nhắn trong chuỗi tin nhắn
|
|
73
|
+
*/
|
|
74
|
+
export interface MessageItem {
|
|
75
|
+
/** Loại tin nhắn */
|
|
76
|
+
type: "text" | "image" | "gif" | "file" | "sticker" | "request_user_info";
|
|
77
|
+
/** Nội dung tin nhắn (cho text message) */
|
|
78
|
+
text?: string;
|
|
79
|
+
/** URL hình ảnh (cho image/gif message) */
|
|
80
|
+
imageUrl?: string;
|
|
81
|
+
/** URL GIF (cho gif message) */
|
|
82
|
+
gifUrl?: string;
|
|
83
|
+
/** Chiều rộng GIF (bắt buộc cho gif) */
|
|
84
|
+
width?: number;
|
|
85
|
+
/** Chiều cao GIF (bắt buộc cho gif) */
|
|
86
|
+
height?: number;
|
|
87
|
+
/** Token file (cho file message) */
|
|
88
|
+
fileToken?: string;
|
|
89
|
+
/** Attachment ID (cho image/sticker message) */
|
|
90
|
+
attachmentId?: string;
|
|
91
|
+
/** Sticker attachment ID (cho sticker message) */
|
|
92
|
+
stickerAttachmentId?: string;
|
|
93
|
+
/** Tiêu đề (cho request_user_info message) */
|
|
94
|
+
title?: string;
|
|
95
|
+
/** Tiêu đề phụ (cho request_user_info message) */
|
|
96
|
+
subtitle?: string;
|
|
97
|
+
/** Delay sau khi gửi tin nhắn này (milliseconds) */
|
|
98
|
+
delay?: number;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Interface cho request gửi chuỗi tin nhắn
|
|
102
|
+
*/
|
|
103
|
+
export interface SendMessageSequenceRequest {
|
|
104
|
+
/** Access token của Official Account */
|
|
105
|
+
accessToken: string;
|
|
106
|
+
/** ID người nhận */
|
|
107
|
+
userId: string;
|
|
108
|
+
/** Danh sách tin nhắn */
|
|
109
|
+
messages: MessageItem[];
|
|
110
|
+
/** Delay mặc định giữa các tin nhắn (milliseconds) - nếu không có delay riêng */
|
|
111
|
+
defaultDelay?: number;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Interface cho response gửi chuỗi tin nhắn
|
|
115
|
+
*/
|
|
116
|
+
export interface SendMessageSequenceResponse {
|
|
117
|
+
/** Tổng số tin nhắn đã gửi thành công */
|
|
118
|
+
successCount: number;
|
|
119
|
+
/** Tổng số tin nhắn thất bại */
|
|
120
|
+
failureCount: number;
|
|
121
|
+
/** Chi tiết kết quả từng tin nhắn */
|
|
122
|
+
results: Array<{
|
|
123
|
+
/** Index của tin nhắn trong danh sách */
|
|
124
|
+
index: number;
|
|
125
|
+
/** Loại tin nhắn */
|
|
126
|
+
type: string;
|
|
127
|
+
/** Trạng thái gửi */
|
|
128
|
+
success: boolean;
|
|
129
|
+
/** Thông tin response nếu thành công */
|
|
130
|
+
response?: any;
|
|
131
|
+
/** Thông tin lỗi nếu thất bại */
|
|
132
|
+
error?: string;
|
|
133
|
+
/** Thời gian gửi */
|
|
134
|
+
timestamp: number;
|
|
135
|
+
}>;
|
|
136
|
+
/** Tổng thời gian thực hiện (milliseconds) */
|
|
137
|
+
totalDuration: number;
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Interface cho request gửi chuỗi tin nhắn tới nhiều users
|
|
141
|
+
*/
|
|
142
|
+
export interface SendMessageSequenceToMultipleUsersRequest {
|
|
143
|
+
/** Access token của Official Account */
|
|
144
|
+
accessToken: string;
|
|
145
|
+
/** Danh sách user IDs */
|
|
146
|
+
userIds: string[];
|
|
147
|
+
/** Danh sách tin nhắn */
|
|
148
|
+
messages: MessageItem[];
|
|
149
|
+
/** Delay mặc định giữa các tin nhắn (milliseconds) */
|
|
150
|
+
defaultDelay?: number;
|
|
151
|
+
/** Delay giữa các user (milliseconds) để tránh rate limit */
|
|
152
|
+
delayBetweenUsers?: number;
|
|
153
|
+
/** Callback function để tracking tiến trình */
|
|
154
|
+
onProgress?: (progress: UserProgressInfo) => void;
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Interface cho thông tin tiến trình từng user
|
|
158
|
+
*/
|
|
159
|
+
export interface UserProgressInfo {
|
|
160
|
+
/** User ID hiện tại */
|
|
161
|
+
userId: string;
|
|
162
|
+
/** Index của user trong danh sách (bắt đầu từ 0) */
|
|
163
|
+
userIndex: number;
|
|
164
|
+
/** Tổng số users */
|
|
165
|
+
totalUsers: number;
|
|
166
|
+
/** Trạng thái: 'started' | 'completed' | 'failed' */
|
|
167
|
+
status: 'started' | 'completed' | 'failed';
|
|
168
|
+
/** Kết quả gửi tin nhắn (nếu đã hoàn thành) */
|
|
169
|
+
result?: SendMessageSequenceResponse;
|
|
170
|
+
/** Thông tin lỗi (nếu thất bại) */
|
|
171
|
+
error?: string;
|
|
172
|
+
/** Thời gian bắt đầu */
|
|
173
|
+
startTime: number;
|
|
174
|
+
/** Thời gian kết thúc (nếu đã hoàn thành) */
|
|
175
|
+
endTime?: number;
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Interface cho response gửi chuỗi tin nhắn tới nhiều users
|
|
179
|
+
*/
|
|
180
|
+
export interface SendMessageSequenceToMultipleUsersResponse {
|
|
181
|
+
/** Tổng số users */
|
|
182
|
+
totalUsers: number;
|
|
183
|
+
/** Số users gửi thành công */
|
|
184
|
+
successfulUsers: number;
|
|
185
|
+
/** Số users gửi thất bại */
|
|
186
|
+
failedUsers: number;
|
|
187
|
+
/** Chi tiết kết quả từng user */
|
|
188
|
+
userResults: Array<{
|
|
189
|
+
/** User ID */
|
|
190
|
+
userId: string;
|
|
191
|
+
/** Index của user trong danh sách */
|
|
192
|
+
userIndex: number;
|
|
193
|
+
/** Trạng thái gửi cho user này */
|
|
194
|
+
success: boolean;
|
|
195
|
+
/** Kết quả chi tiết gửi tin nhắn */
|
|
196
|
+
messageSequenceResult?: SendMessageSequenceResponse;
|
|
197
|
+
/** Thông tin lỗi nếu thất bại */
|
|
198
|
+
error?: string;
|
|
199
|
+
/** Thời gian bắt đầu gửi */
|
|
200
|
+
startTime: number;
|
|
201
|
+
/** Thời gian kết thúc */
|
|
202
|
+
endTime: number;
|
|
203
|
+
/** Thời gian thực hiện (milliseconds) */
|
|
204
|
+
duration: number;
|
|
205
|
+
}>;
|
|
206
|
+
/** Tổng thời gian thực hiện (milliseconds) */
|
|
207
|
+
totalDuration: number;
|
|
208
|
+
/** Thống kê tin nhắn tổng cộng */
|
|
209
|
+
messageStats: {
|
|
210
|
+
/** Tổng số tin nhắn đã gửi thành công */
|
|
211
|
+
totalSuccessfulMessages: number;
|
|
212
|
+
/** Tổng số tin nhắn thất bại */
|
|
213
|
+
totalFailedMessages: number;
|
|
214
|
+
/** Tổng số tin nhắn */
|
|
215
|
+
totalMessages: number;
|
|
216
|
+
};
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Các loại template action types
|
|
220
|
+
*/
|
|
221
|
+
export type TemplateActionType = "oa.open.url" | "oa.query.show" | "oa.query.hide" | "oa.open.sms" | "oa.open.phone";
|
|
222
|
+
/**
|
|
223
|
+
* Các loại template button types (giống với action types)
|
|
224
|
+
*/
|
|
225
|
+
export type TemplateButtonType = TemplateActionType;
|
|
226
|
+
/**
|
|
227
|
+
* Payload cho URL action/button
|
|
228
|
+
*/
|
|
229
|
+
export interface UrlPayload {
|
|
230
|
+
url: string;
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Payload cho SMS action/button
|
|
234
|
+
*/
|
|
235
|
+
export interface SmsPayload {
|
|
236
|
+
phone_code: string;
|
|
237
|
+
content?: string;
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* Payload cho Phone action/button
|
|
241
|
+
*/
|
|
242
|
+
export interface PhonePayload {
|
|
243
|
+
phone_code: string;
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* Union type cho tất cả các loại payload
|
|
247
|
+
*/
|
|
248
|
+
export type ConsultationTemplatePayload = string | UrlPayload | SmsPayload | PhonePayload;
|
|
249
|
+
/**
|
|
250
|
+
* Template types được hỗ trợ
|
|
251
|
+
*/
|
|
252
|
+
export type TemplateType = "request_user_info" | "media" | string;
|
|
253
|
+
//# sourceMappingURL=consultation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"consultation.d.ts","sourceRoot":"","sources":["../../src/types/consultation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Types cho Consultation Service - Zalo OA API
|
|
4
|
+
*
|
|
5
|
+
* Consultation messages (tin nhắn tư vấn) là loại tin nhắn đặc biệt
|
|
6
|
+
* cho phép OA gửi tin nhắn chủ động đến người dùng trong khung thời gian nhất định
|
|
7
|
+
*
|
|
8
|
+
* API Endpoint: https://openapi.zalo.me/v3.0/oa/message/cs
|
|
9
|
+
* Method: POST
|
|
10
|
+
* Content-Type: application/json
|
|
11
|
+
*/
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
//# sourceMappingURL=consultation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"consultation.js","sourceRoot":"","sources":["../../src/types/consultation.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG"}
|
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Purchase API types for Zalo Official Account
|
|
3
|
+
*
|
|
4
|
+
* API để tạo đơn hàng mua sản phẩm/dịch vụ OA
|
|
5
|
+
* 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"
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Beneficiary types - Đối tượng thụ hưởng
|
|
9
|
+
*/
|
|
10
|
+
export type BeneficiaryType = "OA" | "APP";
|
|
11
|
+
/**
|
|
12
|
+
* Request để tạo đơn hàng với product_id
|
|
13
|
+
*/
|
|
14
|
+
export interface CreateOrderWithProductRequest {
|
|
15
|
+
/**
|
|
16
|
+
* Đối tượng được thụ hưởng khi mua đơn hàng
|
|
17
|
+
* - OA: Official Account
|
|
18
|
+
* - APP: Application
|
|
19
|
+
* Lưu ý: Mỗi sản phẩm sẽ quy định đối tượng khả dụng riêng
|
|
20
|
+
*/
|
|
21
|
+
beneficiary: BeneficiaryType;
|
|
22
|
+
/**
|
|
23
|
+
* ID của sản phẩm muốn mua
|
|
24
|
+
* Chỉ sử dụng product_id HOẶC redeem_code, không được dùng cả hai
|
|
25
|
+
*/
|
|
26
|
+
product_id: number;
|
|
27
|
+
/**
|
|
28
|
+
* Mã giảm giá (tùy chọn)
|
|
29
|
+
* VD: Giảm 100K, Giảm 10%, ...
|
|
30
|
+
*/
|
|
31
|
+
voucher_code?: string;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Request để tạo đơn hàng với redeem_code
|
|
35
|
+
*/
|
|
36
|
+
export interface CreateOrderWithRedeemRequest {
|
|
37
|
+
/**
|
|
38
|
+
* Đối tượng được thụ hưởng khi mua đơn hàng
|
|
39
|
+
*/
|
|
40
|
+
beneficiary: BeneficiaryType;
|
|
41
|
+
/**
|
|
42
|
+
* Mã quà tặng
|
|
43
|
+
* Chỉ sử dụng product_id HOẶC redeem_code, không được dùng cả hai
|
|
44
|
+
*/
|
|
45
|
+
redeem_code: string;
|
|
46
|
+
/**
|
|
47
|
+
* Mã giảm giá (tùy chọn)
|
|
48
|
+
*/
|
|
49
|
+
voucher_code?: string;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Union type cho request tạo đơn hàng
|
|
53
|
+
*/
|
|
54
|
+
export type CreateOrderRequest = CreateOrderWithProductRequest | CreateOrderWithRedeemRequest;
|
|
55
|
+
/**
|
|
56
|
+
* Response data khi tạo đơn hàng thành công
|
|
57
|
+
*/
|
|
58
|
+
export interface OrderData {
|
|
59
|
+
/**
|
|
60
|
+
* ID đơn hàng
|
|
61
|
+
* Lưu ý: Order chỉ được tạo từ 00:01 đến 23h54
|
|
62
|
+
*/
|
|
63
|
+
order_id: string;
|
|
64
|
+
/**
|
|
65
|
+
* Loại đối tượng thụ hưởng
|
|
66
|
+
*/
|
|
67
|
+
beneficiary_type: BeneficiaryType;
|
|
68
|
+
/**
|
|
69
|
+
* ID của OA (nếu beneficiary_type = OA) hoặc ID của App (nếu beneficiary_type = APP)
|
|
70
|
+
*/
|
|
71
|
+
beneficiary_id: number;
|
|
72
|
+
/**
|
|
73
|
+
* ID sản phẩm
|
|
74
|
+
*/
|
|
75
|
+
product_id: number;
|
|
76
|
+
/**
|
|
77
|
+
* Tên sản phẩm
|
|
78
|
+
*/
|
|
79
|
+
product_name: string;
|
|
80
|
+
/**
|
|
81
|
+
* Tài khoản ZCA thanh toán đơn hàng
|
|
82
|
+
*/
|
|
83
|
+
zca_id: number;
|
|
84
|
+
/**
|
|
85
|
+
* Voucher code đã được sử dụng (nếu có)
|
|
86
|
+
*/
|
|
87
|
+
voucher_code?: string;
|
|
88
|
+
/**
|
|
89
|
+
* Mã quà tặng (nếu có)
|
|
90
|
+
*/
|
|
91
|
+
redeem_code?: string;
|
|
92
|
+
/**
|
|
93
|
+
* Giá trị của voucher_code
|
|
94
|
+
* VD: Giảm 10% hay Giảm 100K, ...
|
|
95
|
+
*/
|
|
96
|
+
discount?: number;
|
|
97
|
+
/**
|
|
98
|
+
* Giá tiền của đơn hàng (chưa áp dụng mã giảm giá)
|
|
99
|
+
*/
|
|
100
|
+
amount: number;
|
|
101
|
+
/**
|
|
102
|
+
* Giá tiền chính thức sau khi đã sử dụng mã giảm giá
|
|
103
|
+
*/
|
|
104
|
+
final_amount: number;
|
|
105
|
+
/**
|
|
106
|
+
* Thời điểm tạo đơn hàng, tính bằng millisecond
|
|
107
|
+
*/
|
|
108
|
+
created_time: number;
|
|
109
|
+
/**
|
|
110
|
+
* OTT - One Time Token
|
|
111
|
+
* Mã xác thực dùng để xác nhận thanh toán đơn hàng
|
|
112
|
+
* Sử dụng tại API xác nhận thanh toán đơn hàng
|
|
113
|
+
* OTT sẽ có hiệu lực trong vòng 5 phút kể từ khi Order được khởi tạo
|
|
114
|
+
*/
|
|
115
|
+
verified_token: string;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Response khi tạo đơn hàng thành công
|
|
119
|
+
*/
|
|
120
|
+
export interface CreateOrderResponse {
|
|
121
|
+
error: 0;
|
|
122
|
+
message: "Success";
|
|
123
|
+
data: OrderData;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Helper type để kiểm tra request type
|
|
127
|
+
*/
|
|
128
|
+
export declare function isProductOrderRequest(request: CreateOrderRequest): request is CreateOrderWithProductRequest;
|
|
129
|
+
/**
|
|
130
|
+
* Helper type để kiểm tra request type
|
|
131
|
+
*/
|
|
132
|
+
export declare function isRedeemOrderRequest(request: CreateOrderRequest): request is CreateOrderWithRedeemRequest;
|
|
133
|
+
/**
|
|
134
|
+
* Validation errors cho Purchase API
|
|
135
|
+
*/
|
|
136
|
+
export interface PurchaseValidationError {
|
|
137
|
+
field: string;
|
|
138
|
+
message: string;
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Request để xác nhận thanh toán đơn hàng
|
|
142
|
+
*/
|
|
143
|
+
export interface ConfirmOrderRequest {
|
|
144
|
+
/**
|
|
145
|
+
* ID đơn hàng
|
|
146
|
+
* Lấy từ response của API tạo đơn hàng
|
|
147
|
+
*/
|
|
148
|
+
order_id: string;
|
|
149
|
+
/**
|
|
150
|
+
* OTT - One Time Token
|
|
151
|
+
* Mã xác thực dùng để xác nhận thanh toán đơn hàng
|
|
152
|
+
* Lấy từ response của API tạo đơn hàng
|
|
153
|
+
* OTT sẽ có hiệu lực trong vòng 5 phút kể từ khi Order được khởi tạo
|
|
154
|
+
*/
|
|
155
|
+
verified_token: string;
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Response data khi xác nhận thanh toán đơn hàng thành công
|
|
159
|
+
* Lưu ý: Response không có verified_token như khi tạo đơn hàng
|
|
160
|
+
*/
|
|
161
|
+
export interface ConfirmedOrderData {
|
|
162
|
+
/**
|
|
163
|
+
* ID đơn hàng
|
|
164
|
+
*/
|
|
165
|
+
order_id: string;
|
|
166
|
+
/**
|
|
167
|
+
* Loại đối tượng thụ hưởng
|
|
168
|
+
*/
|
|
169
|
+
beneficiary_type: BeneficiaryType;
|
|
170
|
+
/**
|
|
171
|
+
* ID của OA (nếu beneficiary_type = OA) hoặc ID của App (nếu beneficiary_type = APP)
|
|
172
|
+
*/
|
|
173
|
+
beneficiary_id: number;
|
|
174
|
+
/**
|
|
175
|
+
* ID sản phẩm
|
|
176
|
+
*/
|
|
177
|
+
product_id: number;
|
|
178
|
+
/**
|
|
179
|
+
* Tên sản phẩm
|
|
180
|
+
*/
|
|
181
|
+
product_name: string;
|
|
182
|
+
/**
|
|
183
|
+
* Tài khoản ZCA thanh toán đơn hàng
|
|
184
|
+
*/
|
|
185
|
+
zca_id: number;
|
|
186
|
+
/**
|
|
187
|
+
* Voucher code đã được sử dụng (nếu có)
|
|
188
|
+
*/
|
|
189
|
+
voucher_code?: string;
|
|
190
|
+
/**
|
|
191
|
+
* Mã quà tặng (nếu có)
|
|
192
|
+
*/
|
|
193
|
+
redeem_code?: string;
|
|
194
|
+
/**
|
|
195
|
+
* Giá trị của voucher_code
|
|
196
|
+
* VD: Giảm 10% hay Giảm 100K, ...
|
|
197
|
+
*/
|
|
198
|
+
discount?: number;
|
|
199
|
+
/**
|
|
200
|
+
* Giá tiền của đơn hàng (chưa áp dụng mã giảm giá)
|
|
201
|
+
*/
|
|
202
|
+
amount: number;
|
|
203
|
+
/**
|
|
204
|
+
* Giá tiền chính thức sau khi đã sử dụng mã giảm giá
|
|
205
|
+
*/
|
|
206
|
+
final_amount: number;
|
|
207
|
+
/**
|
|
208
|
+
* Thời điểm tạo đơn hàng, tính bằng millisecond
|
|
209
|
+
*/
|
|
210
|
+
created_time: number;
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* Response khi xác nhận thanh toán đơn hàng thành công
|
|
214
|
+
*/
|
|
215
|
+
export interface ConfirmOrderResponse {
|
|
216
|
+
error: 0;
|
|
217
|
+
message: "Success";
|
|
218
|
+
data: ConfirmedOrderData;
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* Danh sách sản phẩm OA có sẵn
|
|
222
|
+
*/
|
|
223
|
+
export declare const OA_PRODUCTS: {
|
|
224
|
+
readonly OA_ADVANCED_6M: 866836109767958100;
|
|
225
|
+
readonly OA_ADVANCED_12M: 1302963828004138500;
|
|
226
|
+
readonly OA_PREMIUM_6M: 757295129578622300;
|
|
227
|
+
readonly OA_PREMIUM_12M: 3071996459978069000;
|
|
228
|
+
readonly GMF_10_MEMBERS: 739448264820568800;
|
|
229
|
+
readonly GMF_50_MEMBERS: 2405469629611791400;
|
|
230
|
+
readonly GMF_100_MEMBERS: 2275350247265190700;
|
|
231
|
+
readonly GMF_1000_MEMBERS: 3678557233392100000;
|
|
232
|
+
readonly TRANSACTION_5K: 4609774892111012000;
|
|
233
|
+
readonly TRANSACTION_50K: 2038298593847789600;
|
|
234
|
+
readonly TRANSACTION_500K: 2544831667685732000;
|
|
235
|
+
};
|
|
236
|
+
/**
|
|
237
|
+
* Thông tin chi tiết sản phẩm
|
|
238
|
+
*/
|
|
239
|
+
export interface ProductInfo {
|
|
240
|
+
id: number;
|
|
241
|
+
name: string;
|
|
242
|
+
beneficiary: BeneficiaryType[];
|
|
243
|
+
category: 'subscription' | 'gmf' | 'quota';
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* Danh sách thông tin chi tiết sản phẩm
|
|
247
|
+
*/
|
|
248
|
+
export declare const PRODUCT_INFO: Record<number, ProductInfo>;
|
|
249
|
+
/**
|
|
250
|
+
* Purchase API error codes
|
|
251
|
+
*/
|
|
252
|
+
export declare enum PurchaseErrorCode {
|
|
253
|
+
INVALID_BENEFICIARY = 1001,
|
|
254
|
+
INVALID_PRODUCT_ID = 1002,
|
|
255
|
+
INVALID_REDEEM_CODE = 1003,
|
|
256
|
+
INVALID_VOUCHER_CODE = 1004,
|
|
257
|
+
PRODUCT_NOT_AVAILABLE = 1005,
|
|
258
|
+
INSUFFICIENT_BALANCE = 1006,
|
|
259
|
+
ORDER_TIME_RESTRICTED = 1007,
|
|
260
|
+
DUPLICATE_ORDER = 1008,
|
|
261
|
+
PERMISSION_DENIED = 1009,
|
|
262
|
+
INVALID_ORDER_ID = 1010,
|
|
263
|
+
INVALID_VERIFIED_TOKEN = 1011,
|
|
264
|
+
ORDER_EXPIRED = 1012,
|
|
265
|
+
ORDER_ALREADY_CONFIRMED = 1013,
|
|
266
|
+
SYSTEM_ERROR = 9999
|
|
267
|
+
}
|
|
268
|
+
//# sourceMappingURL=purchase.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"purchase.d.ts","sourceRoot":"","sources":["../../src/types/purchase.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,IAAI,GAAG,KAAK,CAAC;AAE3C;;GAEG;AACH,MAAM,WAAW,6BAA6B;IAC5C;;;;;OAKG;IACH,WAAW,EAAE,eAAe,CAAC;IAE7B;;;OAGG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C;;OAEG;IACH,WAAW,EAAE,eAAe,CAAC;IAE7B;;;OAGG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,6BAA6B,GAAG,4BAA4B,CAAC;AAE9F;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB;;;OAGG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,gBAAgB,EAAE,eAAe,CAAC;IAElC;;OAEG;IACH,cAAc,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;;;;OAKG;IACH,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,CAAC,CAAC;IACT,OAAO,EAAE,SAAS,CAAC;IACnB,IAAI,EAAE,SAAS,CAAC;CACjB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,kBAAkB,GAC1B,OAAO,IAAI,6BAA6B,CAE1C;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,kBAAkB,GAC1B,OAAO,IAAI,4BAA4B,CAEzC;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;OAGG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;;;;OAKG;IACH,cAAc,EAAE,MAAM,CAAC;CACxB;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,gBAAgB,EAAE,eAAe,CAAC;IAElC;;OAEG;IACH,cAAc,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,CAAC,CAAC;IACT,OAAO,EAAE,SAAS,CAAC;IACnB,IAAI,EAAE,kBAAkB,CAAC;CAC1B;AAED;;GAEG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;CAiBd,CAAC;AAEX;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,eAAe,EAAE,CAAC;IAC/B,QAAQ,EAAE,cAAc,GAAG,KAAK,GAAG,OAAO,CAAC;CAC5C;AAED;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAwEpD,CAAC;AAEF;;GAEG;AACH,oBAAY,iBAAiB;IAC3B,mBAAmB,OAAO;IAC1B,kBAAkB,OAAO;IACzB,mBAAmB,OAAO;IAC1B,oBAAoB,OAAO;IAC3B,qBAAqB,OAAO;IAC5B,oBAAoB,OAAO;IAC3B,qBAAqB,OAAO;IAC5B,eAAe,OAAO;IACtB,iBAAiB,OAAO;IACxB,gBAAgB,OAAO;IACvB,sBAAsB,OAAO;IAC7B,aAAa,OAAO;IACpB,uBAAuB,OAAO;IAC9B,YAAY,OAAO;CACpB"}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Purchase API types for Zalo Official Account
|
|
4
|
+
*
|
|
5
|
+
* API để tạo đơn hàng mua sản phẩm/dịch vụ OA
|
|
6
|
+
* 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"
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.PurchaseErrorCode = exports.PRODUCT_INFO = exports.OA_PRODUCTS = void 0;
|
|
10
|
+
exports.isProductOrderRequest = isProductOrderRequest;
|
|
11
|
+
exports.isRedeemOrderRequest = isRedeemOrderRequest;
|
|
12
|
+
/**
|
|
13
|
+
* Helper type để kiểm tra request type
|
|
14
|
+
*/
|
|
15
|
+
function isProductOrderRequest(request) {
|
|
16
|
+
return 'product_id' in request;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Helper type để kiểm tra request type
|
|
20
|
+
*/
|
|
21
|
+
function isRedeemOrderRequest(request) {
|
|
22
|
+
return 'redeem_code' in request;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Danh sách sản phẩm OA có sẵn
|
|
26
|
+
*/
|
|
27
|
+
exports.OA_PRODUCTS = {
|
|
28
|
+
// Sản phẩm OA Subscription
|
|
29
|
+
OA_ADVANCED_6M: 866836109767958135,
|
|
30
|
+
OA_ADVANCED_12M: 1302963828004138542,
|
|
31
|
+
OA_PREMIUM_6M: 757295129578622372,
|
|
32
|
+
OA_PREMIUM_12M: 3071996459978068910,
|
|
33
|
+
// Sản phẩm Quota khởi tạo GMF
|
|
34
|
+
GMF_10_MEMBERS: 739448264820568793,
|
|
35
|
+
GMF_50_MEMBERS: 2405469629611791306,
|
|
36
|
+
GMF_100_MEMBERS: 2275350247265190619,
|
|
37
|
+
GMF_1000_MEMBERS: 3678557233392100095,
|
|
38
|
+
// Sản phẩm Gói quota tin nhắn OA
|
|
39
|
+
TRANSACTION_5K: 4609774892111011697,
|
|
40
|
+
TRANSACTION_50K: 2038298593847789538,
|
|
41
|
+
TRANSACTION_500K: 2544831667685731909,
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* Danh sách thông tin chi tiết sản phẩm
|
|
45
|
+
*/
|
|
46
|
+
exports.PRODUCT_INFO = {
|
|
47
|
+
// OA Subscription
|
|
48
|
+
[exports.OA_PRODUCTS.OA_ADVANCED_6M]: {
|
|
49
|
+
id: exports.OA_PRODUCTS.OA_ADVANCED_6M,
|
|
50
|
+
name: "Gói OA Nâng cao 6 tháng",
|
|
51
|
+
beneficiary: ["OA"],
|
|
52
|
+
category: "subscription"
|
|
53
|
+
},
|
|
54
|
+
[exports.OA_PRODUCTS.OA_ADVANCED_12M]: {
|
|
55
|
+
id: exports.OA_PRODUCTS.OA_ADVANCED_12M,
|
|
56
|
+
name: "Gói OA Nâng cao 12 tháng",
|
|
57
|
+
beneficiary: ["OA"],
|
|
58
|
+
category: "subscription"
|
|
59
|
+
},
|
|
60
|
+
[exports.OA_PRODUCTS.OA_PREMIUM_6M]: {
|
|
61
|
+
id: exports.OA_PRODUCTS.OA_PREMIUM_6M,
|
|
62
|
+
name: "Gói OA Premium 6 tháng",
|
|
63
|
+
beneficiary: ["OA"],
|
|
64
|
+
category: "subscription"
|
|
65
|
+
},
|
|
66
|
+
[exports.OA_PRODUCTS.OA_PREMIUM_12M]: {
|
|
67
|
+
id: exports.OA_PRODUCTS.OA_PREMIUM_12M,
|
|
68
|
+
name: "Gói OA Premium 12 tháng",
|
|
69
|
+
beneficiary: ["OA"],
|
|
70
|
+
category: "subscription"
|
|
71
|
+
},
|
|
72
|
+
// GMF Products
|
|
73
|
+
[exports.OA_PRODUCTS.GMF_10_MEMBERS]: {
|
|
74
|
+
id: exports.OA_PRODUCTS.GMF_10_MEMBERS,
|
|
75
|
+
name: "GMF tối đa 10 thành viên",
|
|
76
|
+
beneficiary: ["OA"],
|
|
77
|
+
category: "gmf"
|
|
78
|
+
},
|
|
79
|
+
[exports.OA_PRODUCTS.GMF_50_MEMBERS]: {
|
|
80
|
+
id: exports.OA_PRODUCTS.GMF_50_MEMBERS,
|
|
81
|
+
name: "GMF tối đa 50 thành viên",
|
|
82
|
+
beneficiary: ["OA"],
|
|
83
|
+
category: "gmf"
|
|
84
|
+
},
|
|
85
|
+
[exports.OA_PRODUCTS.GMF_100_MEMBERS]: {
|
|
86
|
+
id: exports.OA_PRODUCTS.GMF_100_MEMBERS,
|
|
87
|
+
name: "GMF tối đa 100 thành viên",
|
|
88
|
+
beneficiary: ["OA"],
|
|
89
|
+
category: "gmf"
|
|
90
|
+
},
|
|
91
|
+
[exports.OA_PRODUCTS.GMF_1000_MEMBERS]: {
|
|
92
|
+
id: exports.OA_PRODUCTS.GMF_1000_MEMBERS,
|
|
93
|
+
name: "GMF tối đa 1000 thành viên",
|
|
94
|
+
beneficiary: ["OA"],
|
|
95
|
+
category: "gmf"
|
|
96
|
+
},
|
|
97
|
+
// Transaction Quota
|
|
98
|
+
[exports.OA_PRODUCTS.TRANSACTION_5K]: {
|
|
99
|
+
id: exports.OA_PRODUCTS.TRANSACTION_5K,
|
|
100
|
+
name: "Gói 5k tin Giao dịch (1 tháng)",
|
|
101
|
+
beneficiary: ["APP", "OA"],
|
|
102
|
+
category: "quota"
|
|
103
|
+
},
|
|
104
|
+
[exports.OA_PRODUCTS.TRANSACTION_50K]: {
|
|
105
|
+
id: exports.OA_PRODUCTS.TRANSACTION_50K,
|
|
106
|
+
name: "Gói 50k tin Giao dịch (1 tháng)",
|
|
107
|
+
beneficiary: ["APP", "OA"],
|
|
108
|
+
category: "quota"
|
|
109
|
+
},
|
|
110
|
+
[exports.OA_PRODUCTS.TRANSACTION_500K]: {
|
|
111
|
+
id: exports.OA_PRODUCTS.TRANSACTION_500K,
|
|
112
|
+
name: "Gói 500k tin Giao dịch (1 tháng)",
|
|
113
|
+
beneficiary: ["APP", "OA"],
|
|
114
|
+
category: "quota"
|
|
115
|
+
},
|
|
116
|
+
};
|
|
117
|
+
/**
|
|
118
|
+
* Purchase API error codes
|
|
119
|
+
*/
|
|
120
|
+
var PurchaseErrorCode;
|
|
121
|
+
(function (PurchaseErrorCode) {
|
|
122
|
+
PurchaseErrorCode[PurchaseErrorCode["INVALID_BENEFICIARY"] = 1001] = "INVALID_BENEFICIARY";
|
|
123
|
+
PurchaseErrorCode[PurchaseErrorCode["INVALID_PRODUCT_ID"] = 1002] = "INVALID_PRODUCT_ID";
|
|
124
|
+
PurchaseErrorCode[PurchaseErrorCode["INVALID_REDEEM_CODE"] = 1003] = "INVALID_REDEEM_CODE";
|
|
125
|
+
PurchaseErrorCode[PurchaseErrorCode["INVALID_VOUCHER_CODE"] = 1004] = "INVALID_VOUCHER_CODE";
|
|
126
|
+
PurchaseErrorCode[PurchaseErrorCode["PRODUCT_NOT_AVAILABLE"] = 1005] = "PRODUCT_NOT_AVAILABLE";
|
|
127
|
+
PurchaseErrorCode[PurchaseErrorCode["INSUFFICIENT_BALANCE"] = 1006] = "INSUFFICIENT_BALANCE";
|
|
128
|
+
PurchaseErrorCode[PurchaseErrorCode["ORDER_TIME_RESTRICTED"] = 1007] = "ORDER_TIME_RESTRICTED";
|
|
129
|
+
PurchaseErrorCode[PurchaseErrorCode["DUPLICATE_ORDER"] = 1008] = "DUPLICATE_ORDER";
|
|
130
|
+
PurchaseErrorCode[PurchaseErrorCode["PERMISSION_DENIED"] = 1009] = "PERMISSION_DENIED";
|
|
131
|
+
PurchaseErrorCode[PurchaseErrorCode["INVALID_ORDER_ID"] = 1010] = "INVALID_ORDER_ID";
|
|
132
|
+
PurchaseErrorCode[PurchaseErrorCode["INVALID_VERIFIED_TOKEN"] = 1011] = "INVALID_VERIFIED_TOKEN";
|
|
133
|
+
PurchaseErrorCode[PurchaseErrorCode["ORDER_EXPIRED"] = 1012] = "ORDER_EXPIRED";
|
|
134
|
+
PurchaseErrorCode[PurchaseErrorCode["ORDER_ALREADY_CONFIRMED"] = 1013] = "ORDER_ALREADY_CONFIRMED";
|
|
135
|
+
PurchaseErrorCode[PurchaseErrorCode["SYSTEM_ERROR"] = 9999] = "SYSTEM_ERROR";
|
|
136
|
+
})(PurchaseErrorCode || (exports.PurchaseErrorCode = PurchaseErrorCode = {}));
|
|
137
|
+
//# sourceMappingURL=purchase.js.map
|