@downcity/services 0.1.50 → 0.1.55
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 +11 -12
- package/bin/index.d.ts +5 -8
- package/bin/index.d.ts.map +1 -1
- package/bin/index.js +3 -4
- package/bin/index.js.map +1 -1
- package/bin/payment/index.d.ts +17 -9
- package/bin/payment/index.d.ts.map +1 -1
- package/bin/payment/index.js +841 -33
- package/bin/payment/index.js.map +1 -1
- package/bin/payment/redirect.d.ts +39 -0
- package/bin/payment/redirect.d.ts.map +1 -0
- package/bin/payment/redirect.js +41 -0
- package/bin/payment/redirect.js.map +1 -0
- package/bin/payment/schema.d.ts +426 -0
- package/bin/payment/schema.d.ts.map +1 -0
- package/bin/payment/schema.js +41 -0
- package/bin/payment/schema.js.map +1 -0
- package/bin/payment/types.d.ts +300 -91
- package/bin/payment/types.d.ts.map +1 -1
- package/bin/payment/types.js +4 -4
- package/bin/payment-creem/index.d.ts.map +1 -1
- package/bin/payment-creem/index.js +8 -63
- package/bin/payment-creem/index.js.map +1 -1
- package/bin/payment-creem/types.d.ts +0 -19
- package/bin/payment-creem/types.d.ts.map +1 -1
- package/bin/payment-dodo/dodo.d.ts +119 -0
- package/bin/payment-dodo/dodo.d.ts.map +1 -0
- package/bin/payment-dodo/dodo.js +93 -0
- package/bin/payment-dodo/dodo.js.map +1 -0
- package/bin/payment-dodo/index.d.ts +17 -0
- package/bin/payment-dodo/index.d.ts.map +1 -0
- package/bin/payment-dodo/index.js +549 -0
- package/bin/payment-dodo/index.js.map +1 -0
- package/bin/payment-dodo/schema.d.ts +378 -0
- package/bin/payment-dodo/schema.d.ts.map +1 -0
- package/bin/payment-dodo/schema.js +47 -0
- package/bin/payment-dodo/schema.js.map +1 -0
- package/bin/payment-dodo/types.d.ts +261 -0
- package/bin/payment-dodo/types.d.ts.map +1 -0
- package/bin/payment-dodo/types.js +10 -0
- package/bin/payment-dodo/types.js.map +1 -0
- package/bin/payment-stripe/index.d.ts.map +1 -1
- package/bin/payment-stripe/index.js +10 -73
- package/bin/payment-stripe/index.js.map +1 -1
- package/bin/payment-stripe/types.d.ts +0 -24
- package/bin/payment-stripe/types.d.ts.map +1 -1
- package/bin/payment-waffo/index.d.ts +17 -0
- package/bin/payment-waffo/index.d.ts.map +1 -0
- package/bin/payment-waffo/index.js +550 -0
- package/bin/payment-waffo/index.js.map +1 -0
- package/bin/payment-waffo/schema.d.ts +388 -0
- package/bin/payment-waffo/schema.d.ts.map +1 -0
- package/bin/payment-waffo/schema.js +39 -0
- package/bin/payment-waffo/schema.js.map +1 -0
- package/bin/payment-waffo/types.d.ts +289 -0
- package/bin/payment-waffo/types.d.ts.map +1 -0
- package/bin/payment-waffo/types.js +10 -0
- package/bin/payment-waffo/types.js.map +1 -0
- package/bin/payment-waffo/waffo.d.ts +111 -0
- package/bin/payment-waffo/waffo.d.ts.map +1 -0
- package/bin/payment-waffo/waffo.js +84 -0
- package/bin/payment-waffo/waffo.js.map +1 -0
- package/package.json +8 -4
|
@@ -90,14 +90,6 @@ export interface CreemPaymentServiceOptions {
|
|
|
90
90
|
* 未传入时会读取 City env 中的 `CREEM_WEBHOOK_SECRET`。
|
|
91
91
|
*/
|
|
92
92
|
webhook_secret?: string;
|
|
93
|
-
/**
|
|
94
|
-
* 默认支付成功跳转地址。
|
|
95
|
-
*
|
|
96
|
-
* 当 `checkout/create` 未显式传入 `success_url` 时使用。
|
|
97
|
-
* 如果这里也未配置,服务会继续尝试基于 `DOWNCITY_CITY_BASE_URL`
|
|
98
|
-
* 自动生成默认结果页地址。
|
|
99
|
-
*/
|
|
100
|
-
success_url?: string;
|
|
101
93
|
/**
|
|
102
94
|
* 默认结算币种。
|
|
103
95
|
*
|
|
@@ -120,17 +112,6 @@ export interface CreemCreateCheckoutInput extends Record<string, unknown> {
|
|
|
120
112
|
* 对应的 balance topup ID。
|
|
121
113
|
*/
|
|
122
114
|
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
115
|
}
|
|
135
116
|
/**
|
|
136
117
|
* Creem Checkout 创建结果。
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/payment-creem/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;GAEG;AACH,MAAM,WAAW,uBAAwB,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACtE;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,gCAAgC;IAC/C;;OAEG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAE9D;;OAEG;IACH,WAAW,CACT,QAAQ,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE;QACN;;WAEG;QACH,IAAI,CAAC,EAAE,MAAM,CAAC;QAEd;;WAEG;QACH,GAAG,CAAC,EAAE,MAAM,CAAC;QAEb;;WAEG;QACH,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAChC,GACA,OAAO,CAAC,uBAAuB,CAAC,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC;;;;;OAKG;IACH,OAAO,EAAE,gCAAgC,CAAC;IAE1C;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/payment-creem/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;GAEG;AACH,MAAM,WAAW,uBAAwB,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACtE;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,gCAAgC;IAC/C;;OAEG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAC;IAE9D;;OAEG;IACH,WAAW,CACT,QAAQ,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE;QACN;;WAEG;QACH,IAAI,CAAC,EAAE,MAAM,CAAC;QAEd;;WAEG;QACH,GAAG,CAAC,EAAE,MAAM,CAAC;QAEb;;WAEG;QACH,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAChC,GACA,OAAO,CAAC,uBAAuB,CAAC,CAAC;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC;;;;;OAKG;IACH,OAAO,EAAE,gCAAgC,CAAC;IAE1C;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,wBAAyB,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACvE;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,iBAAiB,EAAE,MAAM,CAAC;IAE1B;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,MAAM,EAAE,kBAAkB,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE3E;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEhF;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACjE;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,iBAAiB,EAAE,MAAM,CAAC;IAE1B;;;;OAIG;IACH,cAAc,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,MAAM,EAAE,kBAAkB,CAAC;IAE3B;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,aAAa,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC/D;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,WAAW,EAAE,oBAAoB,CAAC;IAElC;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,+BAA+B;IAC9C;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,KAAK,EAAE,uBAAuB,CAAC;IAE/B;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;CAErB;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAChE;;OAEG;IACH,EAAE,CAAC,EAAE,OAAO,CAAC;IAEb;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IAEf;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB;;OAEG;IACH,IAAI,CAAC,EAAE;QACL;;WAEG;QACH,MAAM,CAAC,EAAE,OAAO,CAAC;KAClB,CAAC;CACH"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dodo Payments SDK 工具函数。
|
|
3
|
+
*
|
|
4
|
+
* 关键说明(中文)
|
|
5
|
+
* - 创建 Checkout 使用官方 `dodopayments` SDK
|
|
6
|
+
* - webhook 验签使用 SDK 自带 standardwebhooks unwrap
|
|
7
|
+
* - 这里集中做字符串归一化和 SDK 响应裁剪
|
|
8
|
+
*/
|
|
9
|
+
import DodoPayments from "dodopayments";
|
|
10
|
+
import type { DodoPaymentEnvironment, DodoPaymentTopupRecord, DodoWebhookEvent } from "./types.js";
|
|
11
|
+
/**
|
|
12
|
+
* Dodo Checkout API 创建参数。
|
|
13
|
+
*/
|
|
14
|
+
export interface DodoCreateCheckoutSessionInput {
|
|
15
|
+
/**
|
|
16
|
+
* 服务内部支付记录 ID。
|
|
17
|
+
*/
|
|
18
|
+
payment_id: string;
|
|
19
|
+
/**
|
|
20
|
+
* 充值单信息。
|
|
21
|
+
*/
|
|
22
|
+
topup: DodoPaymentTopupRecord;
|
|
23
|
+
/**
|
|
24
|
+
* Dodo product_id。
|
|
25
|
+
*/
|
|
26
|
+
product_id: string;
|
|
27
|
+
/**
|
|
28
|
+
* 结算币种。
|
|
29
|
+
*/
|
|
30
|
+
currency: string;
|
|
31
|
+
/**
|
|
32
|
+
* 支付完成跳转地址。
|
|
33
|
+
*/
|
|
34
|
+
return_url: string;
|
|
35
|
+
/**
|
|
36
|
+
* 支付取消跳转地址。
|
|
37
|
+
*/
|
|
38
|
+
cancel_url: string;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Dodo Checkout API 创建结果。
|
|
42
|
+
*/
|
|
43
|
+
export interface DodoCheckoutSessionResult {
|
|
44
|
+
/**
|
|
45
|
+
* Dodo Checkout Session ID。
|
|
46
|
+
*/
|
|
47
|
+
checkout_session_id: string;
|
|
48
|
+
/**
|
|
49
|
+
* Dodo Payment ID。
|
|
50
|
+
*/
|
|
51
|
+
dodo_payment_id: string;
|
|
52
|
+
/**
|
|
53
|
+
* Dodo Checkout 托管页面 URL。
|
|
54
|
+
*/
|
|
55
|
+
checkout_url: string;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* 创建 Dodo SDK client。
|
|
59
|
+
*/
|
|
60
|
+
export declare function createDodoClient(input: {
|
|
61
|
+
/**
|
|
62
|
+
* Dodo API key。
|
|
63
|
+
*/
|
|
64
|
+
api_key: string;
|
|
65
|
+
/**
|
|
66
|
+
* webhook signing key。
|
|
67
|
+
*/
|
|
68
|
+
webhook_key?: string;
|
|
69
|
+
/**
|
|
70
|
+
* SDK 运行环境。
|
|
71
|
+
*/
|
|
72
|
+
environment: DodoPaymentEnvironment;
|
|
73
|
+
/**
|
|
74
|
+
* 可选 API 基础地址。
|
|
75
|
+
*/
|
|
76
|
+
api_base_url?: string;
|
|
77
|
+
}): DodoPayments;
|
|
78
|
+
/**
|
|
79
|
+
* 创建 Dodo Checkout Session。
|
|
80
|
+
*/
|
|
81
|
+
export declare function createDodoCheckoutSession(client: DodoPayments, input: DodoCreateCheckoutSessionInput): Promise<DodoCheckoutSessionResult>;
|
|
82
|
+
/**
|
|
83
|
+
* 解析并可选校验 Dodo webhook。
|
|
84
|
+
*/
|
|
85
|
+
export declare function parseDodoWebhookEvent(input: {
|
|
86
|
+
/**
|
|
87
|
+
* Dodo SDK client。
|
|
88
|
+
*/
|
|
89
|
+
client: DodoPayments;
|
|
90
|
+
/**
|
|
91
|
+
* 原始请求 body。
|
|
92
|
+
*/
|
|
93
|
+
raw: string;
|
|
94
|
+
/**
|
|
95
|
+
* 请求头。
|
|
96
|
+
*/
|
|
97
|
+
headers: Headers;
|
|
98
|
+
/**
|
|
99
|
+
* 是否执行验签。
|
|
100
|
+
*/
|
|
101
|
+
verify: boolean;
|
|
102
|
+
}): DodoWebhookEvent;
|
|
103
|
+
/**
|
|
104
|
+
* 规范化非空字符串。
|
|
105
|
+
*/
|
|
106
|
+
export declare function normalizeRequired(value: unknown, label: string): string;
|
|
107
|
+
/**
|
|
108
|
+
* 规范化可选字符串。
|
|
109
|
+
*/
|
|
110
|
+
export declare function normalizeOptionalText(value: unknown): string;
|
|
111
|
+
/**
|
|
112
|
+
* 规范化 metadata 对象。
|
|
113
|
+
*/
|
|
114
|
+
export declare function readMetadata(value: unknown): Record<string, unknown>;
|
|
115
|
+
/**
|
|
116
|
+
* 规范化 Dodo 运行环境。
|
|
117
|
+
*/
|
|
118
|
+
export declare function normalizeDodoEnvironment(value: unknown): DodoPaymentEnvironment;
|
|
119
|
+
//# sourceMappingURL=dodo.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dodo.d.ts","sourceRoot":"","sources":["../../src/payment-dodo/dodo.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,YAAY,MAAM,cAAc,CAAC;AACxC,OAAO,KAAK,EAAE,sBAAsB,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnG;;GAEG;AACH,MAAM,WAAW,8BAA8B;IAC7C;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,KAAK,EAAE,sBAAsB,CAAC;IAE9B;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC;;OAEG;IACH,mBAAmB,EAAE,MAAM,CAAC;IAE5B;;OAEG;IACH,eAAe,EAAE,MAAM,CAAC;IAExB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE;IACtC;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,WAAW,EAAE,sBAAsB,CAAC;IAEpC;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,GAAG,YAAY,CAOf;AAED;;GAEG;AACH,wBAAsB,yBAAyB,CAC7C,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,8BAA8B,GACpC,OAAO,CAAC,yBAAyB,CAAC,CAwBpC;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE;IAC3C;;OAEG;IACH,MAAM,EAAE,YAAY,CAAC;IAErB;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IAEZ;;OAEG;IACH,OAAO,EAAE,OAAO,CAAC;IAEjB;;OAEG;IACH,MAAM,EAAE,OAAO,CAAC;CACjB,GAAG,gBAAgB,CAKnB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAIvE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAE5D;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAIpE;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,sBAAsB,CAM/E"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dodo Payments SDK 工具函数。
|
|
3
|
+
*
|
|
4
|
+
* 关键说明(中文)
|
|
5
|
+
* - 创建 Checkout 使用官方 `dodopayments` SDK
|
|
6
|
+
* - webhook 验签使用 SDK 自带 standardwebhooks unwrap
|
|
7
|
+
* - 这里集中做字符串归一化和 SDK 响应裁剪
|
|
8
|
+
*/
|
|
9
|
+
import DodoPayments from "dodopayments";
|
|
10
|
+
/**
|
|
11
|
+
* 创建 Dodo SDK client。
|
|
12
|
+
*/
|
|
13
|
+
export function createDodoClient(input) {
|
|
14
|
+
const apiBaseURL = normalizeOptionalText(input.api_base_url);
|
|
15
|
+
return new DodoPayments({
|
|
16
|
+
bearerToken: normalizeRequired(input.api_key, "Dodo API key"),
|
|
17
|
+
webhookKey: normalizeOptionalText(input.webhook_key) || null,
|
|
18
|
+
...(apiBaseURL ? { baseURL: apiBaseURL } : { environment: input.environment }),
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* 创建 Dodo Checkout Session。
|
|
23
|
+
*/
|
|
24
|
+
export async function createDodoCheckoutSession(client, input) {
|
|
25
|
+
const response = await client.checkoutSessions.create({
|
|
26
|
+
product_cart: [{
|
|
27
|
+
product_id: input.product_id,
|
|
28
|
+
quantity: 1,
|
|
29
|
+
amount: input.topup.amount,
|
|
30
|
+
}],
|
|
31
|
+
billing_currency: input.currency.toUpperCase(),
|
|
32
|
+
return_url: input.return_url,
|
|
33
|
+
cancel_url: input.cancel_url,
|
|
34
|
+
metadata: {
|
|
35
|
+
payment_id: input.payment_id,
|
|
36
|
+
topup_id: input.topup.topup_id,
|
|
37
|
+
user_id: input.topup.user_id,
|
|
38
|
+
amount: String(input.topup.amount),
|
|
39
|
+
unit: input.topup.unit,
|
|
40
|
+
},
|
|
41
|
+
});
|
|
42
|
+
return {
|
|
43
|
+
checkout_session_id: normalizeRequired(response.session_id, "Dodo checkout session id"),
|
|
44
|
+
dodo_payment_id: normalizeOptionalText(response.payment_id),
|
|
45
|
+
checkout_url: normalizeRequired(response.checkout_url, "Dodo checkout url"),
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* 解析并可选校验 Dodo webhook。
|
|
50
|
+
*/
|
|
51
|
+
export function parseDodoWebhookEvent(input) {
|
|
52
|
+
const event = input.verify
|
|
53
|
+
? input.client.webhooks.unwrap(input.raw, { headers: Object.fromEntries(input.headers.entries()) })
|
|
54
|
+
: input.client.webhooks.unsafeUnwrap(input.raw);
|
|
55
|
+
return event && typeof event === "object" ? event : {};
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* 规范化非空字符串。
|
|
59
|
+
*/
|
|
60
|
+
export function normalizeRequired(value, label) {
|
|
61
|
+
const normalized = String(value ?? "").trim();
|
|
62
|
+
if (!normalized)
|
|
63
|
+
throw new TypeError(`${label} is required`);
|
|
64
|
+
return normalized;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* 规范化可选字符串。
|
|
68
|
+
*/
|
|
69
|
+
export function normalizeOptionalText(value) {
|
|
70
|
+
return typeof value === "string" ? value.trim() : "";
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* 规范化 metadata 对象。
|
|
74
|
+
*/
|
|
75
|
+
export function readMetadata(value) {
|
|
76
|
+
return value && typeof value === "object" && !Array.isArray(value)
|
|
77
|
+
? value
|
|
78
|
+
: {};
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* 规范化 Dodo 运行环境。
|
|
82
|
+
*/
|
|
83
|
+
export function normalizeDodoEnvironment(value) {
|
|
84
|
+
const normalized = normalizeOptionalText(value);
|
|
85
|
+
if (normalized === "live_mode" || normalized === "test_mode")
|
|
86
|
+
return normalized;
|
|
87
|
+
if (normalized === "live")
|
|
88
|
+
return "live_mode";
|
|
89
|
+
if (normalized === "test")
|
|
90
|
+
return "test_mode";
|
|
91
|
+
return "test_mode";
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=dodo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dodo.js","sourceRoot":"","sources":["../../src/payment-dodo/dodo.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Downcity Dodo Payments 一次性充值服务。
|
|
3
|
+
*
|
|
4
|
+
* 关键说明(中文)
|
|
5
|
+
* - 当前版本只处理 Dodo Checkout 一次性充值
|
|
6
|
+
* - 不处理 entitlement,也不处理 subscription
|
|
7
|
+
* - 支付成功后统一调用 balance.finishTopup() 完成到账
|
|
8
|
+
*/
|
|
9
|
+
import type { ServiceDefinition } from "@downcity/city";
|
|
10
|
+
import type { DodoPaymentServiceOptions } from "./types.js";
|
|
11
|
+
export { dodoEvents, dodoPayments } from "./schema.js";
|
|
12
|
+
export type { DodoCheckoutCreateResult, DodoCreateCheckoutInput, DodoEventRecord, DodoEventSyncStatus, DodoPaymentEnvironment, DodoPaymentRecord, DodoPaymentServiceBalanceBridge, DodoPaymentServiceOptions, DodoPaymentStatus, DodoPaymentTopupRecord, DodoWebhookEvent, } from "./types.js";
|
|
13
|
+
/**
|
|
14
|
+
* 创建 Dodo Payments 一次性充值服务。
|
|
15
|
+
*/
|
|
16
|
+
export declare function dodoPaymentService(options: DodoPaymentServiceOptions): ServiceDefinition;
|
|
17
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/payment-dodo/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAkB,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAYxE,OAAO,KAAK,EAMV,yBAAyB,EAG1B,MAAM,YAAY,CAAC;AAuEpB,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACvD,YAAY,EACV,wBAAwB,EACxB,uBAAuB,EACvB,eAAe,EACf,mBAAmB,EACnB,sBAAsB,EACtB,iBAAiB,EACjB,+BAA+B,EAC/B,yBAAyB,EACzB,iBAAiB,EACjB,sBAAsB,EACtB,gBAAgB,GACjB,MAAM,YAAY,CAAC;AAEpB;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,yBAAyB,GAAG,iBAAiB,CA8NxF"}
|