@downcity/services 0.1.48 → 0.1.49
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/README.md +13 -1
- package/bin/index.d.ts +4 -2
- package/bin/index.d.ts.map +1 -1
- package/bin/index.js +2 -1
- package/bin/index.js.map +1 -1
- package/bin/payment/index.d.ts +5 -1
- package/bin/payment/index.d.ts.map +1 -1
- package/bin/payment/index.js +23 -0
- package/bin/payment/index.js.map +1 -1
- package/bin/payment/types.d.ts +27 -0
- package/bin/payment/types.d.ts.map +1 -1
- package/bin/payment-creem/creem.d.ts +42 -0
- package/bin/payment-creem/creem.d.ts.map +1 -0
- package/bin/payment-creem/creem.js +129 -0
- package/bin/payment-creem/creem.js.map +1 -0
- package/bin/payment-creem/index.d.ts +17 -0
- package/bin/payment-creem/index.d.ts.map +1 -0
- package/bin/payment-creem/index.js +625 -0
- package/bin/payment-creem/index.js.map +1 -0
- package/bin/payment-creem/schema.d.ts +378 -0
- package/bin/payment-creem/schema.d.ts.map +1 -0
- package/bin/payment-creem/schema.js +47 -0
- package/bin/payment-creem/schema.js.map +1 -0
- package/bin/payment-creem/types.d.ts +316 -0
- package/bin/payment-creem/types.d.ts.map +1 -0
- package/bin/payment-creem/types.js +10 -0
- package/bin/payment-creem/types.js.map +1 -0
- package/package.json +4 -3
|
@@ -0,0 +1,316 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Creem 一次性充值服务对外类型定义。
|
|
3
|
+
*
|
|
4
|
+
* 关键说明(中文)
|
|
5
|
+
* - 当前能力只覆盖 Creem Checkout 一次性充值
|
|
6
|
+
* - 不覆盖 subscription / entitlement
|
|
7
|
+
* - 由于 Creem Checkout 基于 product_id 创建会话,实际充值金额仍以 balance topup 为准
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* 充值单最小只读视图。
|
|
11
|
+
*/
|
|
12
|
+
export interface CreemPaymentTopupRecord extends Record<string, unknown> {
|
|
13
|
+
/**
|
|
14
|
+
* 充值单 ID。
|
|
15
|
+
*/
|
|
16
|
+
topup_id: string;
|
|
17
|
+
/**
|
|
18
|
+
* 充值目标用户 ID。
|
|
19
|
+
*/
|
|
20
|
+
user_id: string;
|
|
21
|
+
/**
|
|
22
|
+
* 充值金额。
|
|
23
|
+
*/
|
|
24
|
+
amount: number;
|
|
25
|
+
/**
|
|
26
|
+
* 余额单位。
|
|
27
|
+
*/
|
|
28
|
+
unit: string;
|
|
29
|
+
/**
|
|
30
|
+
* 充值单状态。
|
|
31
|
+
*/
|
|
32
|
+
status: string;
|
|
33
|
+
/**
|
|
34
|
+
* 充值说明。
|
|
35
|
+
*/
|
|
36
|
+
note: string;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Creem 服务所需的 balance 最小桥接接口。
|
|
40
|
+
*/
|
|
41
|
+
export interface CreemPaymentServiceBalanceBridge {
|
|
42
|
+
/**
|
|
43
|
+
* 读取充值单。
|
|
44
|
+
*/
|
|
45
|
+
readTopup(topup_id: string): Promise<CreemPaymentTopupRecord>;
|
|
46
|
+
/**
|
|
47
|
+
* 完成充值单并真正入账。
|
|
48
|
+
*/
|
|
49
|
+
finishTopup(topup_id: string, extra?: {
|
|
50
|
+
/**
|
|
51
|
+
* 说明文本。
|
|
52
|
+
*/
|
|
53
|
+
note?: string;
|
|
54
|
+
/**
|
|
55
|
+
* 外部引用 ID。
|
|
56
|
+
*/
|
|
57
|
+
ref?: string;
|
|
58
|
+
/**
|
|
59
|
+
* 结构化扩展字段。
|
|
60
|
+
*/
|
|
61
|
+
meta?: Record<string, unknown>;
|
|
62
|
+
}): Promise<CreemPaymentTopupRecord>;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Creem 支付服务配置。
|
|
66
|
+
*/
|
|
67
|
+
export interface CreemPaymentServiceOptions {
|
|
68
|
+
/**
|
|
69
|
+
* 已挂载到 City 的 balance 服务实例。
|
|
70
|
+
*
|
|
71
|
+
* Creem 服务会通过它读取 topup,并在 webhook 支付成功后调用
|
|
72
|
+
* `finishTopup()` 真正完成到账。
|
|
73
|
+
*/
|
|
74
|
+
balance: CreemPaymentServiceBalanceBridge;
|
|
75
|
+
/**
|
|
76
|
+
* Creem API Key。
|
|
77
|
+
*
|
|
78
|
+
* 未传入时会读取 City env 中的 `CREEM_API_KEY`。
|
|
79
|
+
*/
|
|
80
|
+
api_key?: string;
|
|
81
|
+
/**
|
|
82
|
+
* Creem Checkout 使用的 product_id。
|
|
83
|
+
*
|
|
84
|
+
* 未传入时会读取 City env 中的 `CREEM_PRODUCT_ID`。
|
|
85
|
+
*/
|
|
86
|
+
product_id?: string;
|
|
87
|
+
/**
|
|
88
|
+
* Creem webhook 签名密钥。
|
|
89
|
+
*
|
|
90
|
+
* 未传入时会读取 City env 中的 `CREEM_WEBHOOK_SECRET`。
|
|
91
|
+
*/
|
|
92
|
+
webhook_secret?: string;
|
|
93
|
+
/**
|
|
94
|
+
* 默认支付成功跳转地址。
|
|
95
|
+
*
|
|
96
|
+
* 当 `checkout/create` 未显式传入 `success_url` 时使用。
|
|
97
|
+
* 如果这里也未配置,服务会继续尝试基于 `DOWNCITY_CITY_BASE_URL`
|
|
98
|
+
* 自动生成默认结果页地址。
|
|
99
|
+
*/
|
|
100
|
+
success_url?: string;
|
|
101
|
+
/**
|
|
102
|
+
* 默认结算币种。
|
|
103
|
+
*
|
|
104
|
+
* 仅用于支付方式目录展示和本地记录;最终收款币种由 Creem product 决定。
|
|
105
|
+
*/
|
|
106
|
+
currency?: string;
|
|
107
|
+
/**
|
|
108
|
+
* Creem API 基础地址。
|
|
109
|
+
*
|
|
110
|
+
* 默认值为 Creem 官方 `https://api.creem.io/v1`。
|
|
111
|
+
* 测试时可以覆写到伪造服务。
|
|
112
|
+
*/
|
|
113
|
+
api_base_url?: string;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Creem Checkout 创建请求。
|
|
117
|
+
*/
|
|
118
|
+
export interface CreemCreateCheckoutInput extends Record<string, unknown> {
|
|
119
|
+
/**
|
|
120
|
+
* 对应的 balance topup ID。
|
|
121
|
+
*/
|
|
122
|
+
topup_id: string;
|
|
123
|
+
/**
|
|
124
|
+
* 可选支付成功跳转地址。
|
|
125
|
+
*/
|
|
126
|
+
success_url?: string;
|
|
127
|
+
/**
|
|
128
|
+
* 可选支付取消跳转地址。
|
|
129
|
+
*
|
|
130
|
+
* 当前 Creem Checkout API 不消费该字段;这里保留是为了前端在多支付方式
|
|
131
|
+
* checkout 入参里可以复用同一结构。
|
|
132
|
+
*/
|
|
133
|
+
cancel_url?: string;
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Creem Checkout 创建结果。
|
|
137
|
+
*/
|
|
138
|
+
export interface CreemCheckoutCreateResult {
|
|
139
|
+
/**
|
|
140
|
+
* 服务内部支付记录 ID。
|
|
141
|
+
*/
|
|
142
|
+
payment_id: string;
|
|
143
|
+
/**
|
|
144
|
+
* 对应的 balance topup ID。
|
|
145
|
+
*/
|
|
146
|
+
topup_id: string;
|
|
147
|
+
/**
|
|
148
|
+
* Creem Checkout ID。
|
|
149
|
+
*/
|
|
150
|
+
creem_checkout_id: string;
|
|
151
|
+
/**
|
|
152
|
+
* Creem Checkout 托管页面 URL。
|
|
153
|
+
*/
|
|
154
|
+
checkout_url: string;
|
|
155
|
+
/**
|
|
156
|
+
* 当前支付状态。
|
|
157
|
+
*/
|
|
158
|
+
status: CreemPaymentStatus;
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Creem 支付记录状态。
|
|
162
|
+
*/
|
|
163
|
+
export type CreemPaymentStatus = "pending" | "paid" | "expired" | "failed";
|
|
164
|
+
/**
|
|
165
|
+
* Creem webhook 同步状态。
|
|
166
|
+
*/
|
|
167
|
+
export type CreemEventSyncStatus = "pending" | "applied" | "ignored" | "failed";
|
|
168
|
+
/**
|
|
169
|
+
* Creem 支付记录。
|
|
170
|
+
*/
|
|
171
|
+
export interface CreemPaymentRecord extends Record<string, unknown> {
|
|
172
|
+
/**
|
|
173
|
+
* 服务内部支付记录 ID。
|
|
174
|
+
*/
|
|
175
|
+
payment_id: string;
|
|
176
|
+
/**
|
|
177
|
+
* 对应的 balance topup ID。
|
|
178
|
+
*/
|
|
179
|
+
topup_id: string;
|
|
180
|
+
/**
|
|
181
|
+
* 充值目标用户 ID。
|
|
182
|
+
*/
|
|
183
|
+
user_id: string;
|
|
184
|
+
/**
|
|
185
|
+
* Creem Checkout ID。
|
|
186
|
+
*/
|
|
187
|
+
creem_checkout_id: string;
|
|
188
|
+
/**
|
|
189
|
+
* Creem Order ID。
|
|
190
|
+
*
|
|
191
|
+
* 创建 Checkout 时通常为空字符串,待 webhook 补全。
|
|
192
|
+
*/
|
|
193
|
+
creem_order_id: string;
|
|
194
|
+
/**
|
|
195
|
+
* 本次充值金额。
|
|
196
|
+
*/
|
|
197
|
+
amount: number;
|
|
198
|
+
/**
|
|
199
|
+
* 结算币种。
|
|
200
|
+
*/
|
|
201
|
+
currency: string;
|
|
202
|
+
/**
|
|
203
|
+
* 当前支付状态。
|
|
204
|
+
*/
|
|
205
|
+
status: CreemPaymentStatus;
|
|
206
|
+
/**
|
|
207
|
+
* Creem Checkout 托管页面 URL。
|
|
208
|
+
*/
|
|
209
|
+
checkout_url: string;
|
|
210
|
+
/**
|
|
211
|
+
* 扩展字段 JSON 文本。
|
|
212
|
+
*/
|
|
213
|
+
metadata_json: string;
|
|
214
|
+
/**
|
|
215
|
+
* 创建时间。
|
|
216
|
+
*/
|
|
217
|
+
created_at: string;
|
|
218
|
+
/**
|
|
219
|
+
* 更新时间。
|
|
220
|
+
*/
|
|
221
|
+
updated_at: string;
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* Creem webhook 事件记录。
|
|
225
|
+
*/
|
|
226
|
+
export interface CreemEventRecord extends Record<string, unknown> {
|
|
227
|
+
/**
|
|
228
|
+
* Creem webhook 事件 ID。
|
|
229
|
+
*/
|
|
230
|
+
event_id: string;
|
|
231
|
+
/**
|
|
232
|
+
* Creem webhook 事件类型。
|
|
233
|
+
*/
|
|
234
|
+
type: string;
|
|
235
|
+
/**
|
|
236
|
+
* 原始 webhook payload JSON 文本。
|
|
237
|
+
*/
|
|
238
|
+
payload_json: string;
|
|
239
|
+
/**
|
|
240
|
+
* 同步状态。
|
|
241
|
+
*/
|
|
242
|
+
sync_status: CreemEventSyncStatus;
|
|
243
|
+
/**
|
|
244
|
+
* 同步失败信息。
|
|
245
|
+
*/
|
|
246
|
+
sync_error: string;
|
|
247
|
+
/**
|
|
248
|
+
* 创建时间。
|
|
249
|
+
*/
|
|
250
|
+
created_at: string;
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* Creem Checkout API 创建参数。
|
|
254
|
+
*/
|
|
255
|
+
export interface CreemCreateCheckoutSessionInput {
|
|
256
|
+
/**
|
|
257
|
+
* 服务内部支付记录 ID。
|
|
258
|
+
*/
|
|
259
|
+
payment_id: string;
|
|
260
|
+
/**
|
|
261
|
+
* 充值单信息。
|
|
262
|
+
*/
|
|
263
|
+
topup: CreemPaymentTopupRecord;
|
|
264
|
+
/**
|
|
265
|
+
* Creem product_id。
|
|
266
|
+
*/
|
|
267
|
+
product_id: string;
|
|
268
|
+
/**
|
|
269
|
+
* 支付成功跳转地址。
|
|
270
|
+
*/
|
|
271
|
+
success_url: string;
|
|
272
|
+
}
|
|
273
|
+
/**
|
|
274
|
+
* Creem Checkout API 创建结果。
|
|
275
|
+
*/
|
|
276
|
+
export interface CreemCheckoutSessionResult {
|
|
277
|
+
/**
|
|
278
|
+
* Creem Checkout ID。
|
|
279
|
+
*/
|
|
280
|
+
checkout_id: string;
|
|
281
|
+
/**
|
|
282
|
+
* Creem Checkout 托管页面 URL。
|
|
283
|
+
*/
|
|
284
|
+
checkout_url: string;
|
|
285
|
+
}
|
|
286
|
+
/**
|
|
287
|
+
* Creem webhook 事件。
|
|
288
|
+
*/
|
|
289
|
+
export interface CreemWebhookEvent extends Record<string, unknown> {
|
|
290
|
+
/**
|
|
291
|
+
* Creem webhook 事件 ID。
|
|
292
|
+
*/
|
|
293
|
+
id?: unknown;
|
|
294
|
+
/**
|
|
295
|
+
* Creem webhook 事件类型。
|
|
296
|
+
*/
|
|
297
|
+
eventType?: unknown;
|
|
298
|
+
/**
|
|
299
|
+
* 兼容部分测试或代理转发 payload 的事件类型字段。
|
|
300
|
+
*/
|
|
301
|
+
type?: unknown;
|
|
302
|
+
/**
|
|
303
|
+
* Creem webhook 事件对象。
|
|
304
|
+
*/
|
|
305
|
+
object?: unknown;
|
|
306
|
+
/**
|
|
307
|
+
* 兼容 data.object 形式的事件对象。
|
|
308
|
+
*/
|
|
309
|
+
data?: {
|
|
310
|
+
/**
|
|
311
|
+
* 事件主体对象。
|
|
312
|
+
*/
|
|
313
|
+
object?: unknown;
|
|
314
|
+
};
|
|
315
|
+
}
|
|
316
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/payment-creem/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/payment-creem/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@downcity/services",
|
|
3
|
-
"version": "0.1.
|
|
4
|
-
"description": "Downcity public services package for accounts, balance, usage, and
|
|
3
|
+
"version": "0.1.49",
|
|
4
|
+
"description": "Downcity public services package for accounts, balance, usage, Stripe payment, and Creem payment flows.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./bin/index.js",
|
|
7
7
|
"module": "./bin/index.js",
|
|
@@ -33,7 +33,8 @@
|
|
|
33
33
|
"accounts",
|
|
34
34
|
"balance",
|
|
35
35
|
"usage",
|
|
36
|
-
"stripe"
|
|
36
|
+
"stripe",
|
|
37
|
+
"creem"
|
|
37
38
|
],
|
|
38
39
|
"engines": {
|
|
39
40
|
"node": ">=22.13.0"
|