@vobs/payment 0.3.0 → 1.2.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/LICENSE +1 -1
- package/README.md +182 -0
- package/dist/alipay/client.cjs +112 -0
- package/dist/alipay/client.cjs.map +1 -0
- package/dist/alipay/client.d.cts +36 -0
- package/dist/alipay/client.d.ts +36 -0
- package/dist/alipay/client.js +110 -0
- package/dist/alipay/client.js.map +1 -0
- package/dist/alipay/config.cjs +67 -0
- package/dist/alipay/config.cjs.map +1 -0
- package/dist/alipay/config.d.cts +30 -0
- package/dist/alipay/config.d.ts +30 -0
- package/dist/alipay/config.js +65 -0
- package/dist/alipay/config.js.map +1 -0
- package/dist/alipay/index.cjs +592 -0
- package/dist/alipay/index.cjs.map +1 -0
- package/dist/alipay/index.d.cts +12 -0
- package/dist/alipay/index.d.ts +12 -0
- package/dist/alipay/index.js +580 -0
- package/dist/alipay/index.js.map +1 -0
- package/dist/alipay/notify.cjs +70 -0
- package/dist/alipay/notify.cjs.map +1 -0
- package/dist/alipay/notify.d.cts +52 -0
- package/dist/alipay/notify.d.ts +52 -0
- package/dist/alipay/notify.js +68 -0
- package/dist/alipay/notify.js.map +1 -0
- package/dist/alipay/payment.cjs +49 -0
- package/dist/alipay/payment.cjs.map +1 -0
- package/dist/alipay/payment.d.cts +24 -0
- package/dist/alipay/payment.d.ts +24 -0
- package/dist/alipay/payment.js +47 -0
- package/dist/alipay/payment.js.map +1 -0
- package/dist/alipay/plugin.cjs +300 -0
- package/dist/alipay/plugin.cjs.map +1 -0
- package/dist/alipay/plugin.d.cts +43 -0
- package/dist/alipay/plugin.d.ts +43 -0
- package/dist/alipay/plugin.js +296 -0
- package/dist/alipay/plugin.js.map +1 -0
- package/dist/alipay/query.cjs +80 -0
- package/dist/alipay/query.cjs.map +1 -0
- package/dist/alipay/query.d.cts +26 -0
- package/dist/alipay/query.d.ts +26 -0
- package/dist/alipay/query.js +78 -0
- package/dist/alipay/query.js.map +1 -0
- package/dist/alipay/refund.cjs +104 -0
- package/dist/alipay/refund.cjs.map +1 -0
- package/dist/alipay/refund.d.cts +32 -0
- package/dist/alipay/refund.d.ts +32 -0
- package/dist/alipay/refund.js +102 -0
- package/dist/alipay/refund.js.map +1 -0
- package/dist/alipay/response.cjs +38 -0
- package/dist/alipay/response.cjs.map +1 -0
- package/dist/alipay/response.d.cts +19 -0
- package/dist/alipay/response.d.ts +19 -0
- package/dist/alipay/response.js +35 -0
- package/dist/alipay/response.js.map +1 -0
- package/dist/alipay/types.cjs +4 -0
- package/dist/alipay/types.cjs.map +1 -0
- package/dist/alipay/types.d.cts +242 -0
- package/dist/alipay/types.d.ts +242 -0
- package/dist/alipay/types.js +3 -0
- package/dist/alipay/types.js.map +1 -0
- package/dist/alipay/wap.cjs +50 -0
- package/dist/alipay/wap.cjs.map +1 -0
- package/dist/alipay/wap.d.cts +24 -0
- package/dist/alipay/wap.d.ts +24 -0
- package/dist/alipay/wap.js +48 -0
- package/dist/alipay/wap.js.map +1 -0
- package/dist/index-B1aUR7Vt.d.ts +49 -0
- package/dist/index-B8pzZxGq.d.cts +44 -0
- package/dist/index-BWnIrwRi.d.ts +44 -0
- package/dist/index-Dyrkl86r.d.cts +49 -0
- package/dist/index.cjs +1071 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +23 -0
- package/dist/index.d.ts +23 -37
- package/dist/index.js +1052 -37
- package/dist/index.js.map +1 -0
- package/dist/wechat/client.cjs +119 -0
- package/dist/wechat/client.cjs.map +1 -0
- package/dist/wechat/client.d.cts +39 -0
- package/dist/wechat/client.d.ts +39 -0
- package/dist/wechat/client.js +117 -0
- package/dist/wechat/client.js.map +1 -0
- package/dist/wechat/config.cjs +76 -0
- package/dist/wechat/config.cjs.map +1 -0
- package/dist/wechat/config.d.cts +29 -0
- package/dist/wechat/config.d.ts +29 -0
- package/dist/wechat/config.js +74 -0
- package/dist/wechat/config.js.map +1 -0
- package/dist/wechat/index.cjs +612 -0
- package/dist/wechat/index.cjs.map +1 -0
- package/dist/wechat/index.d.cts +10 -0
- package/dist/wechat/index.d.ts +10 -0
- package/dist/wechat/index.js +602 -0
- package/dist/wechat/index.js.map +1 -0
- package/dist/wechat/notify.cjs +73 -0
- package/dist/wechat/notify.cjs.map +1 -0
- package/dist/wechat/notify.d.cts +53 -0
- package/dist/wechat/notify.d.ts +53 -0
- package/dist/wechat/notify.js +71 -0
- package/dist/wechat/notify.js.map +1 -0
- package/dist/wechat/payment.cjs +186 -0
- package/dist/wechat/payment.cjs.map +1 -0
- package/dist/wechat/payment.d.cts +50 -0
- package/dist/wechat/payment.d.ts +50 -0
- package/dist/wechat/payment.js +184 -0
- package/dist/wechat/payment.js.map +1 -0
- package/dist/wechat/plugin.cjs +305 -0
- package/dist/wechat/plugin.cjs.map +1 -0
- package/dist/wechat/plugin.d.cts +40 -0
- package/dist/wechat/plugin.d.ts +40 -0
- package/dist/wechat/plugin.js +301 -0
- package/dist/wechat/plugin.js.map +1 -0
- package/dist/wechat/refund.cjs +112 -0
- package/dist/wechat/refund.cjs.map +1 -0
- package/dist/wechat/refund.d.cts +26 -0
- package/dist/wechat/refund.d.ts +26 -0
- package/dist/wechat/refund.js +110 -0
- package/dist/wechat/refund.js.map +1 -0
- package/dist/wechat/response.cjs +50 -0
- package/dist/wechat/response.cjs.map +1 -0
- package/dist/wechat/response.d.cts +20 -0
- package/dist/wechat/response.d.ts +20 -0
- package/dist/wechat/response.js +46 -0
- package/dist/wechat/response.js.map +1 -0
- package/dist/wechat/types.cjs +4 -0
- package/dist/wechat/types.cjs.map +1 -0
- package/dist/wechat/types.d.cts +200 -0
- package/dist/wechat/types.d.ts +200 -0
- package/dist/wechat/types.js +3 -0
- package/dist/wechat/types.js.map +1 -0
- package/package.json +37 -28
- package/src/alipay/alipay.test.ts +231 -0
- package/src/alipay/client.ts +67 -0
- package/src/alipay/config.ts +72 -0
- package/src/alipay/index.ts +32 -0
- package/src/alipay/notify.ts +92 -0
- package/src/alipay/payment.ts +60 -0
- package/src/alipay/plugin.ts +64 -0
- package/src/alipay/query.ts +52 -0
- package/src/alipay/refund.ts +85 -0
- package/src/alipay/response.ts +40 -0
- package/src/alipay/types.ts +271 -0
- package/src/alipay/wap.ts +55 -0
- package/src/index.ts +78 -0
- package/src/wechat/client.ts +68 -0
- package/src/wechat/config.ts +81 -0
- package/src/wechat/index.ts +30 -0
- package/src/wechat/notify.ts +93 -0
- package/src/wechat/payment.ts +177 -0
- package/src/wechat/plugin.ts +59 -0
- package/src/wechat/refund.ts +80 -0
- package/src/wechat/response.ts +54 -0
- package/src/wechat/types.ts +223 -0
- package/src/wechat/wechat.test.ts +393 -0
- package/dist/alipay-official.d.ts +0 -34
- package/dist/alipay-official.js +0 -206
- package/dist/handlers.d.ts +0 -45
- package/dist/handlers.js +0 -105
- package/dist/jeepay.d.ts +0 -39
- package/dist/jeepay.js +0 -206
- package/dist/lakala.d.ts +0 -41
- package/dist/lakala.js +0 -243
- package/dist/manager.d.ts +0 -67
- package/dist/manager.js +0 -538
- package/dist/mock-driver.d.ts +0 -22
- package/dist/mock-driver.js +0 -59
- package/dist/state-machine.d.ts +0 -41
- package/dist/state-machine.js +0 -60
- package/dist/store.d.ts +0 -33
- package/dist/store.js +0 -76
- package/dist/types.d.ts +0 -168
- package/dist/types.js +0 -11
- package/dist/verify.d.ts +0 -34
- package/dist/verify.js +0 -55
- package/dist/wechat-official.d.ts +0 -40
- package/dist/wechat-official.js +0 -208
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
/** 微信支付 APIv3 交易状态 */
|
|
2
|
+
type WechatTradeState = 'SUCCESS' | 'REFUND' | 'NOTPAY' | 'CLOSED' | 'REVOKED' | 'USERPAYING' | 'PAYERROR';
|
|
3
|
+
/** 微信支付 APIv3 退款状态 */
|
|
4
|
+
type WechatRefundStatus = 'SUCCESS' | 'CLOSED' | 'PROCESSING' | 'ABNORMAL';
|
|
5
|
+
interface WechatPayParams {
|
|
6
|
+
/** 商户订单号(6-32 位,商户侧唯一) */
|
|
7
|
+
outTradeNo: string;
|
|
8
|
+
/** 商品描述 */
|
|
9
|
+
description: string;
|
|
10
|
+
/** 订单金额(单位:分) */
|
|
11
|
+
amount: WechatOrderAmount;
|
|
12
|
+
/** 支付者 openid(jsapi / 小程序支付必填) */
|
|
13
|
+
openid?: string;
|
|
14
|
+
/** 附加数据,回调时原样返回 */
|
|
15
|
+
attach?: string;
|
|
16
|
+
/** 优惠标记 */
|
|
17
|
+
goodsTag?: string;
|
|
18
|
+
/** 订单过期时间(RFC 3339,如 2018-06-08T10:34:56+08:00) */
|
|
19
|
+
timeExpire?: string;
|
|
20
|
+
}
|
|
21
|
+
/** H5 支付参数(额外要求支付者 IP) */
|
|
22
|
+
interface WechatH5PayParams extends WechatPayParams {
|
|
23
|
+
/** 用户客户端 IP */
|
|
24
|
+
payerClientIp: string;
|
|
25
|
+
/** 场景信息 */
|
|
26
|
+
sceneInfo?: {
|
|
27
|
+
payerClientIp?: string;
|
|
28
|
+
deviceType?: string;
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
/** JSAPI / 小程序调起支付所需参数(wx.requestPayment / WeixinJSBridge) */
|
|
32
|
+
interface WechatJsapiPayResult {
|
|
33
|
+
appId: string;
|
|
34
|
+
timeStamp: string;
|
|
35
|
+
nonceStr: string;
|
|
36
|
+
package: string;
|
|
37
|
+
signType: 'RSA';
|
|
38
|
+
paySign: string;
|
|
39
|
+
}
|
|
40
|
+
/** APP 调起支付所需参数(与 JSAPI 同构) */
|
|
41
|
+
interface WechatAppPayResult extends WechatJsapiPayResult {
|
|
42
|
+
}
|
|
43
|
+
/** Native 下单结果:二维码链接 */
|
|
44
|
+
interface WechatNativePayResult {
|
|
45
|
+
codeUrl: string;
|
|
46
|
+
}
|
|
47
|
+
/** H5 下单结果:收银台跳转链接 */
|
|
48
|
+
interface WechatH5PayResult {
|
|
49
|
+
h5Url: string;
|
|
50
|
+
}
|
|
51
|
+
/** 交易查询参数(outTradeNo 与 transactionId 二选一) */
|
|
52
|
+
interface WechatQueryParams {
|
|
53
|
+
outTradeNo?: string;
|
|
54
|
+
transactionId?: string;
|
|
55
|
+
}
|
|
56
|
+
/** 交易查询结果(snake_case 已映射为 camelCase) */
|
|
57
|
+
interface WechatQueryResult {
|
|
58
|
+
appid: string;
|
|
59
|
+
mchid: string;
|
|
60
|
+
outTradeNo: string;
|
|
61
|
+
transactionId: string;
|
|
62
|
+
tradeType?: string;
|
|
63
|
+
tradeState: WechatTradeState;
|
|
64
|
+
tradeStateDesc?: string;
|
|
65
|
+
bankType?: string;
|
|
66
|
+
attach?: string;
|
|
67
|
+
successTime?: string;
|
|
68
|
+
/** 订单总金额(分) */
|
|
69
|
+
total: number;
|
|
70
|
+
/** 用户实付金额(分) */
|
|
71
|
+
payerTotal?: number;
|
|
72
|
+
}
|
|
73
|
+
/** 退款金额 */
|
|
74
|
+
interface WechatRefundParams {
|
|
75
|
+
outTradeNo?: string;
|
|
76
|
+
transactionId?: string;
|
|
77
|
+
/** 商户退款单号(商户侧唯一) */
|
|
78
|
+
outRefundNo: string;
|
|
79
|
+
/** 退款金额(单位:分) */
|
|
80
|
+
amount: WechatRefundAmount;
|
|
81
|
+
/** 退款原因 */
|
|
82
|
+
reason?: string;
|
|
83
|
+
/** 退款结果回调地址 */
|
|
84
|
+
notifyUrl?: string;
|
|
85
|
+
/** 退款资金来源:AVAILABLE(可用余额)| UNSETTLED(待结算资金),默认 AVAILABLE */
|
|
86
|
+
fundsAccount?: 'AVAILABLE' | 'UNSETTLED';
|
|
87
|
+
}
|
|
88
|
+
/** 退款申请结果 */
|
|
89
|
+
interface WechatRefundResult {
|
|
90
|
+
refundId: string;
|
|
91
|
+
outRefundNo: string;
|
|
92
|
+
outTradeNo: string;
|
|
93
|
+
transactionId: string;
|
|
94
|
+
status: WechatRefundStatus;
|
|
95
|
+
/** 退款金额(分) */
|
|
96
|
+
refundAmount: number;
|
|
97
|
+
/** 订单总金额(分) */
|
|
98
|
+
total: number;
|
|
99
|
+
/** 退款入账账户金额(分) */
|
|
100
|
+
userReceivedAmount?: number;
|
|
101
|
+
successTime?: string;
|
|
102
|
+
reason?: string;
|
|
103
|
+
}
|
|
104
|
+
/** 退款查询参数(outRefundNo 与 refundId 二选一) */
|
|
105
|
+
interface WechatRefundQueryParams {
|
|
106
|
+
outRefundNo?: string;
|
|
107
|
+
refundId?: string;
|
|
108
|
+
}
|
|
109
|
+
/** 异步通知报文 resource 字段(AES-256-GCM 加密) */
|
|
110
|
+
interface WechatNotifyResource {
|
|
111
|
+
originalType?: string;
|
|
112
|
+
algorithm?: string;
|
|
113
|
+
ciphertext: string;
|
|
114
|
+
associatedData?: string;
|
|
115
|
+
nonce: string;
|
|
116
|
+
}
|
|
117
|
+
/** 异步通知验签所需的 HTTP 头 */
|
|
118
|
+
interface WechatNotifyHeaders {
|
|
119
|
+
/** Wechatpay-Timestamp */
|
|
120
|
+
timestamp: string;
|
|
121
|
+
/** Wechatpay-Nonce */
|
|
122
|
+
nonce: string;
|
|
123
|
+
/** Wechatpay-Serial(平台证书序列号 / 微信支付公钥 ID) */
|
|
124
|
+
serial: string;
|
|
125
|
+
/** Wechatpay-Signature */
|
|
126
|
+
signature: string;
|
|
127
|
+
}
|
|
128
|
+
/** 解密后的支付成功/状态变更通知 */
|
|
129
|
+
interface WechatNotifyTransaction {
|
|
130
|
+
mchid: string;
|
|
131
|
+
appid: string;
|
|
132
|
+
outTradeNo: string;
|
|
133
|
+
transactionId: string;
|
|
134
|
+
tradeType?: string;
|
|
135
|
+
tradeState: WechatTradeState;
|
|
136
|
+
tradeStateDesc?: string;
|
|
137
|
+
bankType?: string;
|
|
138
|
+
attach?: string;
|
|
139
|
+
successTime?: string;
|
|
140
|
+
amount: {
|
|
141
|
+
total: number;
|
|
142
|
+
payerTotal?: number;
|
|
143
|
+
currency?: string;
|
|
144
|
+
payerCurrency?: string;
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
/** 解密后的退款结果通知 */
|
|
148
|
+
interface WechatNotifyRefund {
|
|
149
|
+
mchid: string;
|
|
150
|
+
outTradeNo: string;
|
|
151
|
+
transactionId: string;
|
|
152
|
+
outRefundNo: string;
|
|
153
|
+
refundId: string;
|
|
154
|
+
refundStatus: WechatRefundStatus;
|
|
155
|
+
successTime?: string;
|
|
156
|
+
amount: {
|
|
157
|
+
total: number;
|
|
158
|
+
refund: number;
|
|
159
|
+
payerTotal?: number;
|
|
160
|
+
userReceivedAmount?: number;
|
|
161
|
+
currency?: string;
|
|
162
|
+
};
|
|
163
|
+
userAccount?: string;
|
|
164
|
+
}
|
|
165
|
+
/** 微信支付客户端配置 */
|
|
166
|
+
interface WechatClientOptions {
|
|
167
|
+
/** 商户号 */
|
|
168
|
+
mchid: string;
|
|
169
|
+
/** 商户 API 证书序列号 */
|
|
170
|
+
serial: string;
|
|
171
|
+
/** 商户 API 私钥(PEM 字符串) */
|
|
172
|
+
privateKey: string;
|
|
173
|
+
/** 平台证书 / 微信支付公钥,{序列号(或公钥ID): PEM} 映射;通知验签按 Wechatpay-Serial 查找 */
|
|
174
|
+
certs: Record<string, string>;
|
|
175
|
+
/** 应用 ID(公众号 / 小程序 / APP),用于下单与调起签名 */
|
|
176
|
+
appid: string;
|
|
177
|
+
/** APIv3 密钥(32 字节,回调解密用) */
|
|
178
|
+
apiv3Key: string;
|
|
179
|
+
/** 异步通知地址(下单时可被 params.notifyUrl 覆盖) */
|
|
180
|
+
notifyUrl?: string;
|
|
181
|
+
/** 请求超时(毫秒) */
|
|
182
|
+
timeout?: number;
|
|
183
|
+
}
|
|
184
|
+
/** 订单金额(单位:分) */
|
|
185
|
+
interface WechatOrderAmount {
|
|
186
|
+
/** 订单总金额(分) */
|
|
187
|
+
total: number;
|
|
188
|
+
/** 币种,默认 CNY */
|
|
189
|
+
currency?: string;
|
|
190
|
+
}
|
|
191
|
+
/** 退款金额(单位:分) */
|
|
192
|
+
interface WechatRefundAmount {
|
|
193
|
+
/** 退款金额(分) */
|
|
194
|
+
refund: number;
|
|
195
|
+
/** 原订单金额(分),分账等场景必填 */
|
|
196
|
+
total?: number;
|
|
197
|
+
currency?: string;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
export type { WechatAppPayResult, WechatClientOptions, WechatH5PayParams, WechatH5PayResult, WechatJsapiPayResult, WechatNativePayResult, WechatNotifyHeaders, WechatNotifyRefund, WechatNotifyResource, WechatNotifyTransaction, WechatOrderAmount, WechatPayParams, WechatQueryParams, WechatQueryResult, WechatRefundAmount, WechatRefundParams, WechatRefundQueryParams, WechatRefundResult, WechatRefundStatus, WechatTradeState };
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
/** 微信支付 APIv3 交易状态 */
|
|
2
|
+
type WechatTradeState = 'SUCCESS' | 'REFUND' | 'NOTPAY' | 'CLOSED' | 'REVOKED' | 'USERPAYING' | 'PAYERROR';
|
|
3
|
+
/** 微信支付 APIv3 退款状态 */
|
|
4
|
+
type WechatRefundStatus = 'SUCCESS' | 'CLOSED' | 'PROCESSING' | 'ABNORMAL';
|
|
5
|
+
interface WechatPayParams {
|
|
6
|
+
/** 商户订单号(6-32 位,商户侧唯一) */
|
|
7
|
+
outTradeNo: string;
|
|
8
|
+
/** 商品描述 */
|
|
9
|
+
description: string;
|
|
10
|
+
/** 订单金额(单位:分) */
|
|
11
|
+
amount: WechatOrderAmount;
|
|
12
|
+
/** 支付者 openid(jsapi / 小程序支付必填) */
|
|
13
|
+
openid?: string;
|
|
14
|
+
/** 附加数据,回调时原样返回 */
|
|
15
|
+
attach?: string;
|
|
16
|
+
/** 优惠标记 */
|
|
17
|
+
goodsTag?: string;
|
|
18
|
+
/** 订单过期时间(RFC 3339,如 2018-06-08T10:34:56+08:00) */
|
|
19
|
+
timeExpire?: string;
|
|
20
|
+
}
|
|
21
|
+
/** H5 支付参数(额外要求支付者 IP) */
|
|
22
|
+
interface WechatH5PayParams extends WechatPayParams {
|
|
23
|
+
/** 用户客户端 IP */
|
|
24
|
+
payerClientIp: string;
|
|
25
|
+
/** 场景信息 */
|
|
26
|
+
sceneInfo?: {
|
|
27
|
+
payerClientIp?: string;
|
|
28
|
+
deviceType?: string;
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
/** JSAPI / 小程序调起支付所需参数(wx.requestPayment / WeixinJSBridge) */
|
|
32
|
+
interface WechatJsapiPayResult {
|
|
33
|
+
appId: string;
|
|
34
|
+
timeStamp: string;
|
|
35
|
+
nonceStr: string;
|
|
36
|
+
package: string;
|
|
37
|
+
signType: 'RSA';
|
|
38
|
+
paySign: string;
|
|
39
|
+
}
|
|
40
|
+
/** APP 调起支付所需参数(与 JSAPI 同构) */
|
|
41
|
+
interface WechatAppPayResult extends WechatJsapiPayResult {
|
|
42
|
+
}
|
|
43
|
+
/** Native 下单结果:二维码链接 */
|
|
44
|
+
interface WechatNativePayResult {
|
|
45
|
+
codeUrl: string;
|
|
46
|
+
}
|
|
47
|
+
/** H5 下单结果:收银台跳转链接 */
|
|
48
|
+
interface WechatH5PayResult {
|
|
49
|
+
h5Url: string;
|
|
50
|
+
}
|
|
51
|
+
/** 交易查询参数(outTradeNo 与 transactionId 二选一) */
|
|
52
|
+
interface WechatQueryParams {
|
|
53
|
+
outTradeNo?: string;
|
|
54
|
+
transactionId?: string;
|
|
55
|
+
}
|
|
56
|
+
/** 交易查询结果(snake_case 已映射为 camelCase) */
|
|
57
|
+
interface WechatQueryResult {
|
|
58
|
+
appid: string;
|
|
59
|
+
mchid: string;
|
|
60
|
+
outTradeNo: string;
|
|
61
|
+
transactionId: string;
|
|
62
|
+
tradeType?: string;
|
|
63
|
+
tradeState: WechatTradeState;
|
|
64
|
+
tradeStateDesc?: string;
|
|
65
|
+
bankType?: string;
|
|
66
|
+
attach?: string;
|
|
67
|
+
successTime?: string;
|
|
68
|
+
/** 订单总金额(分) */
|
|
69
|
+
total: number;
|
|
70
|
+
/** 用户实付金额(分) */
|
|
71
|
+
payerTotal?: number;
|
|
72
|
+
}
|
|
73
|
+
/** 退款金额 */
|
|
74
|
+
interface WechatRefundParams {
|
|
75
|
+
outTradeNo?: string;
|
|
76
|
+
transactionId?: string;
|
|
77
|
+
/** 商户退款单号(商户侧唯一) */
|
|
78
|
+
outRefundNo: string;
|
|
79
|
+
/** 退款金额(单位:分) */
|
|
80
|
+
amount: WechatRefundAmount;
|
|
81
|
+
/** 退款原因 */
|
|
82
|
+
reason?: string;
|
|
83
|
+
/** 退款结果回调地址 */
|
|
84
|
+
notifyUrl?: string;
|
|
85
|
+
/** 退款资金来源:AVAILABLE(可用余额)| UNSETTLED(待结算资金),默认 AVAILABLE */
|
|
86
|
+
fundsAccount?: 'AVAILABLE' | 'UNSETTLED';
|
|
87
|
+
}
|
|
88
|
+
/** 退款申请结果 */
|
|
89
|
+
interface WechatRefundResult {
|
|
90
|
+
refundId: string;
|
|
91
|
+
outRefundNo: string;
|
|
92
|
+
outTradeNo: string;
|
|
93
|
+
transactionId: string;
|
|
94
|
+
status: WechatRefundStatus;
|
|
95
|
+
/** 退款金额(分) */
|
|
96
|
+
refundAmount: number;
|
|
97
|
+
/** 订单总金额(分) */
|
|
98
|
+
total: number;
|
|
99
|
+
/** 退款入账账户金额(分) */
|
|
100
|
+
userReceivedAmount?: number;
|
|
101
|
+
successTime?: string;
|
|
102
|
+
reason?: string;
|
|
103
|
+
}
|
|
104
|
+
/** 退款查询参数(outRefundNo 与 refundId 二选一) */
|
|
105
|
+
interface WechatRefundQueryParams {
|
|
106
|
+
outRefundNo?: string;
|
|
107
|
+
refundId?: string;
|
|
108
|
+
}
|
|
109
|
+
/** 异步通知报文 resource 字段(AES-256-GCM 加密) */
|
|
110
|
+
interface WechatNotifyResource {
|
|
111
|
+
originalType?: string;
|
|
112
|
+
algorithm?: string;
|
|
113
|
+
ciphertext: string;
|
|
114
|
+
associatedData?: string;
|
|
115
|
+
nonce: string;
|
|
116
|
+
}
|
|
117
|
+
/** 异步通知验签所需的 HTTP 头 */
|
|
118
|
+
interface WechatNotifyHeaders {
|
|
119
|
+
/** Wechatpay-Timestamp */
|
|
120
|
+
timestamp: string;
|
|
121
|
+
/** Wechatpay-Nonce */
|
|
122
|
+
nonce: string;
|
|
123
|
+
/** Wechatpay-Serial(平台证书序列号 / 微信支付公钥 ID) */
|
|
124
|
+
serial: string;
|
|
125
|
+
/** Wechatpay-Signature */
|
|
126
|
+
signature: string;
|
|
127
|
+
}
|
|
128
|
+
/** 解密后的支付成功/状态变更通知 */
|
|
129
|
+
interface WechatNotifyTransaction {
|
|
130
|
+
mchid: string;
|
|
131
|
+
appid: string;
|
|
132
|
+
outTradeNo: string;
|
|
133
|
+
transactionId: string;
|
|
134
|
+
tradeType?: string;
|
|
135
|
+
tradeState: WechatTradeState;
|
|
136
|
+
tradeStateDesc?: string;
|
|
137
|
+
bankType?: string;
|
|
138
|
+
attach?: string;
|
|
139
|
+
successTime?: string;
|
|
140
|
+
amount: {
|
|
141
|
+
total: number;
|
|
142
|
+
payerTotal?: number;
|
|
143
|
+
currency?: string;
|
|
144
|
+
payerCurrency?: string;
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
/** 解密后的退款结果通知 */
|
|
148
|
+
interface WechatNotifyRefund {
|
|
149
|
+
mchid: string;
|
|
150
|
+
outTradeNo: string;
|
|
151
|
+
transactionId: string;
|
|
152
|
+
outRefundNo: string;
|
|
153
|
+
refundId: string;
|
|
154
|
+
refundStatus: WechatRefundStatus;
|
|
155
|
+
successTime?: string;
|
|
156
|
+
amount: {
|
|
157
|
+
total: number;
|
|
158
|
+
refund: number;
|
|
159
|
+
payerTotal?: number;
|
|
160
|
+
userReceivedAmount?: number;
|
|
161
|
+
currency?: string;
|
|
162
|
+
};
|
|
163
|
+
userAccount?: string;
|
|
164
|
+
}
|
|
165
|
+
/** 微信支付客户端配置 */
|
|
166
|
+
interface WechatClientOptions {
|
|
167
|
+
/** 商户号 */
|
|
168
|
+
mchid: string;
|
|
169
|
+
/** 商户 API 证书序列号 */
|
|
170
|
+
serial: string;
|
|
171
|
+
/** 商户 API 私钥(PEM 字符串) */
|
|
172
|
+
privateKey: string;
|
|
173
|
+
/** 平台证书 / 微信支付公钥,{序列号(或公钥ID): PEM} 映射;通知验签按 Wechatpay-Serial 查找 */
|
|
174
|
+
certs: Record<string, string>;
|
|
175
|
+
/** 应用 ID(公众号 / 小程序 / APP),用于下单与调起签名 */
|
|
176
|
+
appid: string;
|
|
177
|
+
/** APIv3 密钥(32 字节,回调解密用) */
|
|
178
|
+
apiv3Key: string;
|
|
179
|
+
/** 异步通知地址(下单时可被 params.notifyUrl 覆盖) */
|
|
180
|
+
notifyUrl?: string;
|
|
181
|
+
/** 请求超时(毫秒) */
|
|
182
|
+
timeout?: number;
|
|
183
|
+
}
|
|
184
|
+
/** 订单金额(单位:分) */
|
|
185
|
+
interface WechatOrderAmount {
|
|
186
|
+
/** 订单总金额(分) */
|
|
187
|
+
total: number;
|
|
188
|
+
/** 币种,默认 CNY */
|
|
189
|
+
currency?: string;
|
|
190
|
+
}
|
|
191
|
+
/** 退款金额(单位:分) */
|
|
192
|
+
interface WechatRefundAmount {
|
|
193
|
+
/** 退款金额(分) */
|
|
194
|
+
refund: number;
|
|
195
|
+
/** 原订单金额(分),分账等场景必填 */
|
|
196
|
+
total?: number;
|
|
197
|
+
currency?: string;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
export type { WechatAppPayResult, WechatClientOptions, WechatH5PayParams, WechatH5PayResult, WechatJsapiPayResult, WechatNativePayResult, WechatNotifyHeaders, WechatNotifyRefund, WechatNotifyResource, WechatNotifyTransaction, WechatOrderAmount, WechatPayParams, WechatQueryParams, WechatQueryResult, WechatRefundAmount, WechatRefundParams, WechatRefundQueryParams, WechatRefundResult, WechatRefundStatus, WechatTradeState };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"types.js"}
|
package/package.json
CHANGED
|
@@ -1,41 +1,50 @@
|
|
|
1
1
|
{
|
|
2
|
-
"
|
|
3
|
-
"version": "0.3.0",
|
|
4
|
-
"description": "Payment factory backend SDK for vobs — channel drivers, order state machine, callback verification (signature + replay protection), server-side pricing and amount risk control (Experimental).",
|
|
5
|
-
"type": "module",
|
|
2
|
+
"license": "MIT",
|
|
6
3
|
"publishConfig": {
|
|
7
4
|
"access": "public"
|
|
8
5
|
},
|
|
9
|
-
"license": "MIT",
|
|
10
|
-
"author": "vobsjs",
|
|
11
|
-
"repository": {
|
|
12
|
-
"type": "git",
|
|
13
|
-
"url": "git+https://github.com/vobsjs/vobs.git",
|
|
14
|
-
"directory": "packages/integrations/payment"
|
|
15
|
-
},
|
|
16
6
|
"files": [
|
|
17
|
-
"dist"
|
|
7
|
+
"dist",
|
|
8
|
+
"src",
|
|
9
|
+
"README.md",
|
|
10
|
+
"LICENSE"
|
|
18
11
|
],
|
|
12
|
+
"name": "@vobs/payment",
|
|
13
|
+
"version": "1.2.0",
|
|
14
|
+
"type": "module",
|
|
15
|
+
"main": "./dist/index.cjs",
|
|
16
|
+
"module": "./dist/index.js",
|
|
17
|
+
"types": "./dist/index.d.ts",
|
|
19
18
|
"exports": {
|
|
20
19
|
".": {
|
|
21
20
|
"types": "./dist/index.d.ts",
|
|
22
|
-
"import": "./dist/index.js"
|
|
21
|
+
"import": "./dist/index.js",
|
|
22
|
+
"require": "./dist/index.cjs",
|
|
23
|
+
"default": "./dist/index.js"
|
|
23
24
|
},
|
|
24
|
-
"./
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
25
|
+
"./alipay": {
|
|
26
|
+
"types": "./dist/alipay/index.d.ts",
|
|
27
|
+
"import": "./dist/alipay/index.js",
|
|
28
|
+
"require": "./dist/alipay/index.cjs",
|
|
29
|
+
"default": "./dist/alipay/index.js"
|
|
30
|
+
},
|
|
31
|
+
"./wechat": {
|
|
32
|
+
"types": "./dist/wechat/index.d.ts",
|
|
33
|
+
"import": "./dist/wechat/index.js",
|
|
34
|
+
"require": "./dist/wechat/index.cjs",
|
|
35
|
+
"default": "./dist/wechat/index.js"
|
|
36
|
+
},
|
|
37
|
+
"./source": {
|
|
38
|
+
"types": "./src/index.ts",
|
|
39
|
+
"default": "./src/index.ts"
|
|
40
|
+
},
|
|
41
|
+
"./source/*": "./src/*"
|
|
32
42
|
},
|
|
33
|
-
"
|
|
34
|
-
"
|
|
43
|
+
"dependencies": {
|
|
44
|
+
"@vobs/vobs": "1.2.0"
|
|
35
45
|
},
|
|
36
|
-
"
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
"sideEffects": false
|
|
46
|
+
"peerDependencies": {
|
|
47
|
+
"alipay-sdk": "^4.14.0",
|
|
48
|
+
"wechatpay-axios-plugin": "^0.9.6"
|
|
49
|
+
}
|
|
41
50
|
}
|