weixin-server-sdk 1.0.2

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.
Files changed (73) hide show
  1. package/dist/Error.d.ts +5 -0
  2. package/dist/Error.d.ts.map +1 -0
  3. package/dist/Error.js +8 -0
  4. package/dist/Error.js.map +1 -0
  5. package/dist/index.d.ts +34 -0
  6. package/dist/index.d.ts.map +1 -0
  7. package/dist/index.js +37 -0
  8. package/dist/index.js.map +1 -0
  9. package/dist/types/global.d.ts +4 -0
  10. package/dist/types/global.d.ts.map +1 -0
  11. package/dist/types/global.js +2 -0
  12. package/dist/types/global.js.map +1 -0
  13. package/dist/utils/callMaybeAsync.d.ts +3 -0
  14. package/dist/utils/callMaybeAsync.d.ts.map +1 -0
  15. package/dist/utils/callMaybeAsync.js +11 -0
  16. package/dist/utils/callMaybeAsync.js.map +1 -0
  17. package/dist/utils/isPromise.d.ts +7 -0
  18. package/dist/utils/isPromise.d.ts.map +1 -0
  19. package/dist/utils/isPromise.js +9 -0
  20. package/dist/utils/isPromise.js.map +1 -0
  21. package/dist//345/205/254/345/205/261/346/226/271/346/263/225/PublicUtils.d.ts +37 -0
  22. package/dist//345/205/254/345/205/261/346/226/271/346/263/225/PublicUtils.d.ts.map +1 -0
  23. package/dist//345/205/254/345/205/261/346/226/271/346/263/225/PublicUtils.js +104 -0
  24. package/dist//345/205/254/345/205/261/346/226/271/346/263/225/PublicUtils.js.map +1 -0
  25. package/dist//345/205/254/345/205/261/346/226/271/346/263/225//346/216/245/345/217/243/350/260/203/347/224/250/345/207/255/350/257/201.d.ts +17 -0
  26. package/dist//345/205/254/345/205/261/346/226/271/346/263/225//346/216/245/345/217/243/350/260/203/347/224/250/345/207/255/350/257/201.d.ts.map +1 -0
  27. package/dist//345/205/254/345/205/261/346/226/271/346/263/225//346/216/245/345/217/243/350/260/203/347/224/250/345/207/255/350/257/201.js +36 -0
  28. package/dist//345/205/254/345/205/261/346/226/271/346/263/225//346/216/245/345/217/243/350/260/203/347/224/250/345/207/255/350/257/201.js.map +1 -0
  29. package/dist//345/205/254/345/205/261/346/226/271/346/263/225//347/255/276/345/220/215/350/256/244/350/257/201.d.ts +11 -0
  30. package/dist//345/205/254/345/205/261/346/226/271/346/263/225//347/255/276/345/220/215/350/256/244/350/257/201.d.ts.map +1 -0
  31. package/dist//345/205/254/345/205/261/346/226/271/346/263/225//347/255/276/345/220/215/350/256/244/350/257/201.js +26 -0
  32. package/dist//345/205/254/345/205/261/346/226/271/346/263/225//347/255/276/345/220/215/350/256/244/350/257/201.js.map +1 -0
  33. package/dist//345/260/217/347/250/213/345/272/217/WXMP.d.ts +11 -0
  34. package/dist//345/260/217/347/250/213/345/272/217/WXMP.d.ts.map +1 -0
  35. package/dist//345/260/217/347/250/213/345/272/217/WXMP.js +14 -0
  36. package/dist//345/260/217/347/250/213/345/272/217/WXMP.js.map +1 -0
  37. package/dist//345/260/217/347/250/213/345/272/217//345/260/217/347/250/213/345/272/217/347/231/273/345/275/225.d.ts +17 -0
  38. package/dist//345/260/217/347/250/213/345/272/217//345/260/217/347/250/213/345/272/217/347/231/273/345/275/225.d.ts.map +1 -0
  39. package/dist//345/260/217/347/250/213/345/272/217//345/260/217/347/250/213/345/272/217/347/231/273/345/275/225.js +30 -0
  40. package/dist//345/260/217/347/250/213/345/272/217//345/260/217/347/250/213/345/272/217/347/231/273/345/275/225.js.map +1 -0
  41. package/dist//345/260/217/347/250/213/345/272/217//345/260/217/347/250/213/345/272/217/347/240/201/344/270/216/345/260/217/347/250/213/345/272/217/351/223/276/346/216/245.d.ts +51 -0
  42. package/dist//345/260/217/347/250/213/345/272/217//345/260/217/347/250/213/345/272/217/347/240/201/344/270/216/345/260/217/347/250/213/345/272/217/351/223/276/346/216/245.d.ts.map +1 -0
  43. package/dist//345/260/217/347/250/213/345/272/217//345/260/217/347/250/213/345/272/217/347/240/201/344/270/216/345/260/217/347/250/213/345/272/217/351/223/276/346/216/245.js +86 -0
  44. package/dist//345/260/217/347/250/213/345/272/217//345/260/217/347/250/213/345/272/217/347/240/201/344/270/216/345/260/217/347/250/213/345/272/217/351/223/276/346/216/245.js.map +1 -0
  45. package/dist//345/260/217/347/250/213/345/272/217//346/211/213/346/234/272/345/217/267.d.ts +22 -0
  46. package/dist//345/260/217/347/250/213/345/272/217//346/211/213/346/234/272/345/217/267.d.ts.map +1 -0
  47. package/dist//345/260/217/347/250/213/345/272/217//346/211/213/346/234/272/345/217/267.js +31 -0
  48. package/dist//345/260/217/347/250/213/345/272/217//346/211/213/346/234/272/345/217/267.js.map +1 -0
  49. package/dist//345/260/217/347/250/213/345/272/217//347/224/250/346/210/267/344/277/241/346/201/257.d.ts +2 -0
  50. package/dist//345/260/217/347/250/213/345/272/217//347/224/250/346/210/267/344/277/241/346/201/257.d.ts.map +1 -0
  51. package/dist//345/260/217/347/250/213/345/272/217//347/224/250/346/210/267/344/277/241/346/201/257.js +4 -0
  52. package/dist//345/260/217/347/250/213/345/272/217//347/224/250/346/210/267/344/277/241/346/201/257.js.map +1 -0
  53. package/dist//345/260/217/347/250/213/345/272/217//347/275/221/347/273/234.d.ts +2 -0
  54. package/dist//345/260/217/347/250/213/345/272/217//347/275/221/347/273/234.d.ts.map +1 -0
  55. package/dist//345/260/217/347/250/213/345/272/217//347/275/221/347/273/234.js +2 -0
  56. package/dist//345/260/217/347/250/213/345/272/217//347/275/221/347/273/234.js.map +1 -0
  57. package/dist//345/276/256/344/277/241/346/224/257/344/273/230/JSAPI.d.ts +120 -0
  58. package/dist//345/276/256/344/277/241/346/224/257/344/273/230/JSAPI.d.ts.map +1 -0
  59. package/dist//345/276/256/344/277/241/346/224/257/344/273/230/JSAPI.js +87 -0
  60. package/dist//345/276/256/344/277/241/346/224/257/344/273/230/JSAPI.js.map +1 -0
  61. package/dist//345/276/256/344/277/241/346/224/257/344/273/230/Pay.d.ts +11 -0
  62. package/dist//345/276/256/344/277/241/346/224/257/344/273/230/Pay.d.ts.map +1 -0
  63. package/dist//345/276/256/344/277/241/346/224/257/344/273/230/Pay.js +13 -0
  64. package/dist//345/276/256/344/277/241/346/224/257/344/273/230/Pay.js.map +1 -0
  65. package/dist//345/276/256/344/277/241/346/224/257/344/273/230//346/224/257/344/273/230/344/272/247/345/223/201/JSAPI.d.ts +382 -0
  66. package/dist//345/276/256/344/277/241/346/224/257/344/273/230//346/224/257/344/273/230/344/272/247/345/223/201/JSAPI.d.ts.map +1 -0
  67. package/dist//345/276/256/344/277/241/346/224/257/344/273/230//346/224/257/344/273/230/344/272/247/345/223/201/JSAPI.js +343 -0
  68. package/dist//345/276/256/344/277/241/346/224/257/344/273/230//346/224/257/344/273/230/344/272/247/345/223/201/JSAPI.js.map +1 -0
  69. package/dist//345/276/256/344/277/241/346/224/257/344/273/230//350/277/220/350/220/245/345/267/245/345/205/267/MerchantTransfer.d.ts +82 -0
  70. package/dist//345/276/256/344/277/241/346/224/257/344/273/230//350/277/220/350/220/245/345/267/245/345/205/267/MerchantTransfer.d.ts.map +1 -0
  71. package/dist//345/276/256/344/277/241/346/224/257/344/273/230//350/277/220/350/220/245/345/267/245/345/205/267/MerchantTransfer.js +132 -0
  72. package/dist//345/276/256/344/277/241/346/224/257/344/273/230//350/277/220/350/220/245/345/267/245/345/205/267/MerchantTransfer.js.map +1 -0
  73. package/package.json +28 -0
@@ -0,0 +1,343 @@
1
+ import { WeixinSDKErr } from "../../Error.js";
2
+ import WeixinSDK from "../../index.js";
3
+ import * as crypto from 'crypto';
4
+ export default class JSAPI {
5
+ weixinSDK;
6
+ constructor(weixinSDK) {
7
+ this.weixinSDK = weixinSDK;
8
+ }
9
+ /**
10
+ * 创建JSAPI支付订单
11
+ * @param wxOrder
12
+ * @returns prepay_id
13
+ */
14
+ async placeOrder(wxOrder) {
15
+ let body = JSON.stringify(wxOrder);
16
+ let authorization = this.weixinSDK.publicUtils.authorization.createAuthorization({
17
+ method: "POST",
18
+ path: "/v3/pay/transactions/jsapi",
19
+ body
20
+ });
21
+ let response = await fetch('https://api.mch.weixin.qq.com/v3/pay/transactions/jsapi', {
22
+ method: 'POST',
23
+ headers: {
24
+ "Authorization": authorization,
25
+ "Accept": 'application/json',
26
+ 'Content-Type': 'application/json',
27
+ },
28
+ body: body
29
+ });
30
+ if (response.ok == false) {
31
+ let { code, message } = await response.json();
32
+ throw new WeixinSDKErr(`code:${code}, message:${message}`);
33
+ }
34
+ else {
35
+ let { prepay_id } = await response.json();
36
+ return prepay_id;
37
+ }
38
+ }
39
+ /**
40
+ * 调起支付
41
+ * @param prepay_id
42
+ * @returns 调起支付方法需要的参数对象
43
+ */
44
+ invokePayment(prepay_id) {
45
+ //返回预支付交易会话标识, requestPayment小程序调起支付方法参数对象
46
+ let nonceStr = crypto.randomBytes(16).toString('hex');
47
+ let currentTime = Date.now() / 1000;
48
+ let signStr = `${this.weixinSDK.config.WXMP_APPID}\n${currentTime}\n${nonceStr}\nprepay_id=${prepay_id}\n`;
49
+ const signedStr = crypto.createSign('RSA-SHA256').update(signStr).sign(this.weixinSDK.config.WXPAY_mchApiCert_privateKeyPem, 'base64');
50
+ return {
51
+ appid: this.weixinSDK.config.WXMP_APPID,
52
+ timeStamp: currentTime,
53
+ nonceStr: nonceStr,
54
+ package: `prepay_id=${prepay_id}`,
55
+ signType: 'RSA',
56
+ paySign: signedStr
57
+ };
58
+ }
59
+ /**
60
+ * 微信支付订单号查询交易订单
61
+ * @param options
62
+ * @returns 交易订单数据
63
+ */
64
+ async findOneTransactionOrder_by_transactionId(options) {
65
+ let path = `/v3/pay/transactions/id/${options.transaction_id}?mchid=${options.mchid}`;
66
+ let authorization = this.weixinSDK.publicUtils.authorization.createAuthorization({
67
+ method: "GET",
68
+ path: path,
69
+ });
70
+ let response = await fetch(`https://api.mch.weixin.qq.com${path}`, {
71
+ method: 'GET',
72
+ headers: {
73
+ "Authorization": authorization,
74
+ "Accept": 'application/json',
75
+ 'Content-Type': 'application/json',
76
+ }
77
+ });
78
+ if (response.ok == false) {
79
+ let { code, message } = await response.json();
80
+ throw new WeixinSDKErr(`code:${code}, message:${message}`);
81
+ }
82
+ else {
83
+ let data = await response.json();
84
+ return data;
85
+ }
86
+ }
87
+ /**
88
+ * 商户订单号查询交易订单
89
+ * @param options
90
+ * @returns 交易订单数据
91
+ */
92
+ async findOneTransactionOrder_by_outTradeNo(options) {
93
+ let path = `/v3/pay/transactions/out_trade_no/${options.out_trade_no}?mchid=${options.mchid}`;
94
+ let authorization = this.weixinSDK.publicUtils.authorization.createAuthorization({
95
+ method: "GET",
96
+ path: path,
97
+ });
98
+ let response = await fetch(`https://api.mch.weixin.qq.com${path}`, {
99
+ method: 'GET',
100
+ headers: {
101
+ "Authorization": authorization,
102
+ "Accept": 'application/json',
103
+ 'Content-Type': 'application/json',
104
+ }
105
+ });
106
+ if (response.ok == false) {
107
+ let { code, message } = await response.json();
108
+ throw new WeixinSDKErr(`code:${code}, message:${message}`);
109
+ }
110
+ else {
111
+ let data = await response.json();
112
+ return data;
113
+ }
114
+ }
115
+ /**
116
+ * 关闭交易订单
117
+ * @param out_trade_no
118
+ */
119
+ async closeTransactionOrder(out_trade_no) {
120
+ let body = JSON.stringify({
121
+ mchid: this.weixinSDK.config.WXPAY_MCHID
122
+ });
123
+ let authorization = this.weixinSDK.publicUtils.authorization.createAuthorization({
124
+ method: "POST",
125
+ path: `/v3/pay/transactions/out-trade-no/${out_trade_no}/close`,
126
+ body
127
+ });
128
+ let response = await fetch(`https://api.mch.weixin.qq.com/v3/pay/transactions/out-trade-no/${out_trade_no}/close`, {
129
+ method: "POST",
130
+ headers: {
131
+ "Authorization": authorization,
132
+ "Accept": 'application/json',
133
+ 'Content-Type': 'application/json',
134
+ },
135
+ body: body
136
+ });
137
+ if (response.ok === true) {
138
+ return true;
139
+ }
140
+ else {
141
+ let { code, message } = await response.json();
142
+ throw new WeixinSDKErr(`code:${code}, message:${message}`);
143
+ }
144
+ }
145
+ /**
146
+ * 退款申请
147
+ * @param options
148
+ * @returns
149
+ */
150
+ async applyRefund(options) {
151
+ //退款
152
+ let body = JSON.stringify(options);
153
+ let authorization = this.weixinSDK.publicUtils.authorization.createAuthorization({
154
+ method: "POST",
155
+ path: '/v3/refund/domestic/refunds',
156
+ body: body
157
+ });
158
+ let response = await fetch('https://api.mch.weixin.qq.com/v3/refund/domestic/refunds', {
159
+ method: "POST",
160
+ headers: {
161
+ "Authorization": authorization,
162
+ "Accept": 'application/json',
163
+ 'Content-Type': 'application/json',
164
+ },
165
+ body: body
166
+ });
167
+ if (response.ok === true) {
168
+ let data = await response.json();
169
+ return data;
170
+ }
171
+ else {
172
+ let { code, message } = await response.json();
173
+ throw new WeixinSDKErr(`applyRefund: code: ${code}: message: ${message}`);
174
+ }
175
+ }
176
+ /**
177
+ * 查询单笔退款(通过商户退款单号)
178
+ * @param options
179
+ * @returns 交易订单数据
180
+ */
181
+ async findOneRefundOrder_by_outRefundNo(options) {
182
+ let path = `/v3/refund/domestic/refunds/${options.out_refund_no}`;
183
+ let authorization = this.weixinSDK.publicUtils.authorization.createAuthorization({
184
+ method: "GET",
185
+ path: path,
186
+ });
187
+ let response = await fetch(`https://api.mch.weixin.qq.com${path}`, {
188
+ method: 'GET',
189
+ headers: {
190
+ "Authorization": authorization,
191
+ "Accept": 'application/json',
192
+ 'Content-Type': 'application/json',
193
+ }
194
+ });
195
+ if (response.ok == false) {
196
+ let { code, message } = await response.json();
197
+ throw new WeixinSDKErr(`findOneRefundOrder_by_outRefundNo: code:${code}, message:${message}`);
198
+ }
199
+ else {
200
+ let data = await response.json();
201
+ return data;
202
+ }
203
+ }
204
+ /**
205
+ * 发起异常退款
206
+ * @param options
207
+ * @returns 交易订单数据
208
+ */
209
+ async applyAbnormalRefund(refund_id, options) {
210
+ let path = `/v3/refund/domestic/refunds/${refund_id}/apply-abnormal-refund`;
211
+ if (options.bank_account) {
212
+ options.bank_account = this.weixinSDK.publicUtils.encryptSensitiveInfo(options.bank_account);
213
+ }
214
+ if (options.real_name) {
215
+ options.real_name = this.weixinSDK.publicUtils.encryptSensitiveInfo(options.real_name);
216
+ }
217
+ let body = JSON.stringify(options);
218
+ let authorization = this.weixinSDK.publicUtils.authorization.createAuthorization({
219
+ method: "POST",
220
+ path: path,
221
+ body
222
+ });
223
+ let response = await fetch(`https://api.mch.weixin.qq.com${path}`, {
224
+ method: 'GET',
225
+ headers: {
226
+ "Authorization": authorization,
227
+ "Accept": 'application/json',
228
+ 'Content-Type': 'application/json',
229
+ },
230
+ body
231
+ });
232
+ if (response.ok == false) {
233
+ let { code, message } = await response.json();
234
+ throw new WeixinSDKErr(`applyAbnormalRefund: code:${code}, message:${message}`);
235
+ }
236
+ else {
237
+ let data = await response.json();
238
+ return data;
239
+ }
240
+ }
241
+ /**
242
+ * 申请交易账单
243
+ * @param options
244
+ * @returns 交易订单数据
245
+ */
246
+ async applyTradeBill(options) {
247
+ let path = `/v3/bill/tradebill?bill_date=${options.bill_date}&bill_type=${options.bill_type}&tar_type=${options.tar_type}`;
248
+ let authorization = this.weixinSDK.publicUtils.authorization.createAuthorization({
249
+ method: "GET",
250
+ path: path,
251
+ });
252
+ let response = await fetch(`https://api.mch.weixin.qq.com${path}`, {
253
+ method: 'GET',
254
+ headers: {
255
+ "Authorization": authorization,
256
+ "Accept": 'application/json',
257
+ 'Content-Type': 'application/json',
258
+ },
259
+ });
260
+ if (response.ok == false) {
261
+ let { code, message } = await response.json();
262
+ throw new WeixinSDKErr(`applyTradeBill: code:${code}, message:${message}`);
263
+ }
264
+ else {
265
+ let data = await response.json();
266
+ return data;
267
+ }
268
+ }
269
+ /**
270
+ * 申请资金账单
271
+ */
272
+ async applyFundflowbill(options) {
273
+ let path = `/v3/bill/fundflowbill?bill_date=${options.bill_date}&account_type=${options.account_type}&tar_type=${options.tar_type}`;
274
+ let authorization = this.weixinSDK.publicUtils.authorization.createAuthorization({
275
+ method: "GET",
276
+ path: path,
277
+ });
278
+ let response = await fetch(`https://api.mch.weixin.qq.com${path}`, {
279
+ method: 'GET',
280
+ headers: {
281
+ "Authorization": authorization,
282
+ "Accept": 'application/json',
283
+ 'Content-Type': 'application/json',
284
+ },
285
+ });
286
+ if (response.ok == false) {
287
+ let { code, message } = await response.json();
288
+ throw new WeixinSDKErr(`applyFundflowbill: code:${code}, message:${message}`);
289
+ }
290
+ else {
291
+ let data = await response.json();
292
+ return data;
293
+ }
294
+ }
295
+ /**
296
+ * 下载账单
297
+ */
298
+ async downloadBill(options) {
299
+ const { hash_type, hash_value, download_url } = options;
300
+ const url = new URL(download_url);
301
+ const path = url.pathname + url.search;
302
+ let authorization = this.weixinSDK.publicUtils.authorization.createAuthorization({
303
+ method: "GET",
304
+ path: path,
305
+ });
306
+ let response = await fetch(download_url, {
307
+ method: 'GET',
308
+ headers: {
309
+ "Authorization": authorization,
310
+ },
311
+ });
312
+ const contentType = response.headers.get('content-type') || '';
313
+ if (response.ok == false) {
314
+ if (contentType.includes('application/json')) {
315
+ let { code, message } = await response.json();
316
+ throw new WeixinSDKErr(`downloadBill: code:${code}, message:${message}`);
317
+ }
318
+ else {
319
+ const text = await response.text();
320
+ throw new WeixinSDKErr(`downloadBill: 下载账单失败, HTTP状态码: ${response.status}, text: ${text}`);
321
+ }
322
+ }
323
+ else {
324
+ let arrayBuffer = await response.arrayBuffer();
325
+ // 2. 转为 Buffer
326
+ const buffer = Buffer.from(arrayBuffer);
327
+ if (hash_type && hash_value) {
328
+ // 3. 计算哈希
329
+ const actualHash = crypto
330
+ .createHash(hash_type)
331
+ .update(buffer)
332
+ .digest('hex')
333
+ .toLowerCase();
334
+ // 4. 校验
335
+ if (actualHash !== hash_value.toLowerCase()) {
336
+ throw new WeixinSDKErr(`downloadBill: 账单哈希校验失败`);
337
+ }
338
+ }
339
+ return buffer;
340
+ }
341
+ }
342
+ }
343
+ //# sourceMappingURL=JSAPI.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JSAPI.js","sourceRoot":"","sources":["../../../src/微信支付/支付产品/JSAPI.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,82 @@
1
+ import type WeixinSDK from "../../index.js";
2
+ import type { cent, RFC3339DateStr } from "../../types/global.js";
3
+ export default class MerchantTransfer {
4
+ weixinSDK: WeixinSDK;
5
+ constructor(weixinSDK: WeixinSDK);
6
+ /**
7
+ * 发起转账
8
+ */
9
+ applyTransfer(options: {
10
+ appid: string;
11
+ out_bill_no: string;
12
+ transfer_scene_id: string;
13
+ openid: string;
14
+ user_name?: string;
15
+ transfer_amount: cent;
16
+ transfer_remark: string;
17
+ notify_url?: string;
18
+ user_recv_perception?: '活动奖励' | '现金奖励' | '退款' | '商家赔付' | '劳务报酬' | '报销款' | '企业补贴' | '开工利是' | '货款' | '二手回收货款' | '公益补助金' | '行政补贴' | '行政奖励' | '保险理赔款';
19
+ transfer_scene_report_infos: {
20
+ info_type: '活动名称' | '奖励说明';
21
+ info_content: string;
22
+ }[];
23
+ }): Promise<{
24
+ out_bill_no: string;
25
+ transfer_bill_no: string;
26
+ create_time: RFC3339DateStr;
27
+ state: "ACCEPTED" | "PROCESSING" | "WAIT_USER_CONFIRM" | "TRANSFERING" | "SUCCESS" | "FAIL" | "CANCELING" | "CANCELLED";
28
+ package_info?: string;
29
+ }>;
30
+ /**
31
+ * 撤销转账
32
+ */
33
+ revokeTransfer(out_bill_no: string): Promise<{
34
+ out_bill_no: string;
35
+ transfer_bill_no: string;
36
+ state: "CANCELING" | "CANCELLED";
37
+ update_time: RFC3339DateStr;
38
+ }>;
39
+ /**
40
+ * 商户单号查询转账单
41
+ * @param options
42
+ * @returns 交易订单数据
43
+ */
44
+ findOneTransfer_by_outBillNo(options: {
45
+ out_bill_no: string;
46
+ }): Promise<{
47
+ mch_id: string;
48
+ out_bill_no: string;
49
+ transfer_bill_no: string;
50
+ appid: string;
51
+ state: "ACCEPTED" | "PROCESSING" | "WAIT_USER_CONFIRM" | "TRANSFERING" | "SUCCESS" | "FAIL" | "CANCELING" | "CANCELLED";
52
+ transfer_amount: cent;
53
+ transfer_remark: string;
54
+ fail_reason?: string;
55
+ openid?: string;
56
+ user_name?: string;
57
+ create_time: RFC3339DateStr;
58
+ update_time: RFC3339DateStr;
59
+ }>;
60
+ /**
61
+ * 微信单号查询转账单
62
+ * @param options
63
+ * @returns
64
+ */
65
+ findOneTransfer_by_transferBillNo(options: {
66
+ transfer_bill_no: string;
67
+ }): Promise<{
68
+ mch_id: string;
69
+ out_bill_no: string;
70
+ transfer_bill_no: string;
71
+ appid: string;
72
+ state: "ACCEPTED" | "PROCESSING" | "WAIT_USER_CONFIRM" | "TRANSFERING" | "SUCCESS" | "FAIL" | "CANCELING" | "CANCELLED";
73
+ transfer_amount: cent;
74
+ transfer_remark: string;
75
+ fail_reason?: string;
76
+ openid?: string;
77
+ user_name?: string;
78
+ create_time: RFC3339DateStr;
79
+ update_time: RFC3339DateStr;
80
+ }>;
81
+ }
82
+ //# sourceMappingURL=MerchantTransfer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MerchantTransfer.d.ts","sourceRoot":"","sources":["../../../src/微信支付/运营工具/MerchantTransfer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAC;AAC5C,OAAO,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAElE,MAAM,CAAC,OAAO,OAAO,gBAAgB;IACjC,SAAS,EAAE,SAAS,CAAA;gBACR,SAAS,EAAE,SAAS;IAIhC;;OAEG;IACG,aAAa,CAAC,OAAO,EAAE;QACzB,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,eAAe,EAAE,IAAI,CAAC;QACtB,eAAe,EAAE,MAAM,CAAC;QACxB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,oBAAoB,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;QAClJ,2BAA2B,EAAE;YACzB,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC;YAC3B,YAAY,EAAE,MAAM,CAAC;SACxB,EAAE,CAAA;KACN;qBAgCwB,MAAM;0BACD,MAAM;qBACX,cAAc;eACpB,UAAU,GAAG,YAAY,GAAG,mBAAmB,GAAG,aAAa,GAAG,SAAS,GAAG,MAAM,GAAG,WAAW,GAAG,WAAW;uBACxG,MAAM;;IAUjC;;OAEG;IACG,cAAc,CAAC,WAAW,EAAE,MAAM;qBA8Bf,MAAM;0BACD,MAAM;eACjB,WAAW,GAAG,WAAW;qBACnB,cAAc;;IASvC;;;;OAIG;IACU,4BAA4B,CAAC,OAAO,EAAE;QAC/C,WAAW,EAAE,MAAM,CAAC;KACvB;gBAwBmB,MAAM;qBACD,MAAM;0BACD,MAAM;eACjB,MAAM;eACN,UAAU,GAAG,YAAY,GAAG,mBAAmB,GAAG,aAAa,GAAG,SAAS,GAAG,MAAM,GAAG,WAAW,GAAG,WAAW;yBACtG,IAAI;yBACJ,MAAM;sBACT,MAAM;iBACX,MAAM;oBACH,MAAM;qBACL,cAAc;qBACd,cAAc;;IAQvC;;;;OAIG;IACU,iCAAiC,CAAC,OAAO,EAAE;QACpD,gBAAgB,EAAE,MAAM,CAAC;KAC5B;gBAwBmB,MAAM;qBACD,MAAM;0BACD,MAAM;eACjB,MAAM;eACN,UAAU,GAAG,YAAY,GAAG,mBAAmB,GAAG,aAAa,GAAG,SAAS,GAAG,MAAM,GAAG,WAAW,GAAG,WAAW;yBACtG,IAAI;yBACJ,MAAM;sBACT,MAAM;iBACX,MAAM;oBACH,MAAM;qBACL,cAAc;qBACd,cAAc;;CAa1C"}
@@ -0,0 +1,132 @@
1
+ import { WeixinSDKErr } from "../../Error.js";
2
+ export default class MerchantTransfer {
3
+ weixinSDK;
4
+ constructor(weixinSDK) {
5
+ this.weixinSDK = weixinSDK;
6
+ }
7
+ /**
8
+ * 发起转账
9
+ */
10
+ async applyTransfer(options) {
11
+ let body = JSON.stringify(options);
12
+ let authorization = this.weixinSDK.publicUtils.authorization.createAuthorization({
13
+ method: "POST",
14
+ path: "/v3/fund-app/mch-transfer/transfer-bills",
15
+ body
16
+ });
17
+ let response = await fetch('https://api.mch.weixin.qq.com/v3/fund-app/mch-transfer/transfer-bills', {
18
+ method: 'POST',
19
+ headers: {
20
+ "Authorization": authorization,
21
+ "Accept": 'application/json',
22
+ 'Content-Type': 'application/json',
23
+ },
24
+ body: body
25
+ });
26
+ const contentType = response.headers.get('Content-Type') || '';
27
+ if (response.ok == false) {
28
+ if (contentType.includes('application/json')) {
29
+ let { code, message } = await response.json();
30
+ throw new WeixinSDKErr(`applyTransfer: code:${code}, message:${message}`);
31
+ }
32
+ else {
33
+ const text = await response.text();
34
+ throw new WeixinSDKErr(`applyTransfer: text:${text}`);
35
+ }
36
+ }
37
+ else {
38
+ let data = await response.json();
39
+ return data;
40
+ }
41
+ }
42
+ /**
43
+ * 撤销转账
44
+ */
45
+ async revokeTransfer(out_bill_no) {
46
+ let path = `/v3/fund-app/mch-transfer/transfer-bills/out-bill-no/${out_bill_no}/cancel`;
47
+ let authorization = this.weixinSDK.publicUtils.authorization.createAuthorization({
48
+ method: "POST",
49
+ path
50
+ });
51
+ let response = await fetch(`https://api.mch.weixin.qq.com${path}`, {
52
+ method: 'POST',
53
+ headers: {
54
+ "Authorization": authorization,
55
+ "Accept": 'application/json',
56
+ 'Content-Type': 'application/json',
57
+ }
58
+ });
59
+ const contentType = response.headers.get('Content-Type') || '';
60
+ if (response.ok == false) {
61
+ if (contentType.includes('application/json')) {
62
+ let { code, message } = await response.json();
63
+ throw new WeixinSDKErr(`revokeTransfer: code:${code}, message:${message}`);
64
+ }
65
+ else {
66
+ const text = await response.text();
67
+ throw new WeixinSDKErr(`revokeTransfer: text:${text}`);
68
+ }
69
+ }
70
+ else {
71
+ let data = await response.json();
72
+ return data;
73
+ }
74
+ }
75
+ /**
76
+ * 商户单号查询转账单
77
+ * @param options
78
+ * @returns 交易订单数据
79
+ */
80
+ async findOneTransfer_by_outBillNo(options) {
81
+ let path = `/v3/fund-app/mch-transfer/transfer-bills/out-bill-no/${options.out_bill_no}`;
82
+ let authorization = this.weixinSDK.publicUtils.authorization.createAuthorization({
83
+ method: "GET",
84
+ path: path,
85
+ });
86
+ let response = await fetch(`https://api.mch.weixin.qq.com${path}`, {
87
+ method: 'GET',
88
+ headers: {
89
+ "Authorization": authorization,
90
+ "Accept": 'application/json',
91
+ 'Content-Type': 'application/json',
92
+ }
93
+ });
94
+ if (response.ok == false) {
95
+ let { code, message } = await response.json();
96
+ throw new WeixinSDKErr(`code:${code}, message:${message}`);
97
+ }
98
+ else {
99
+ let data = await response.json();
100
+ return data;
101
+ }
102
+ }
103
+ /**
104
+ * 微信单号查询转账单
105
+ * @param options
106
+ * @returns
107
+ */
108
+ async findOneTransfer_by_transferBillNo(options) {
109
+ let path = `/v3/fund-app/mch-transfer/transfer-bills/transfer-bill-no/${options.transfer_bill_no}`;
110
+ let authorization = this.weixinSDK.publicUtils.authorization.createAuthorization({
111
+ method: "GET",
112
+ path: path,
113
+ });
114
+ let response = await fetch(`https://api.mch.weixin.qq.com${path}`, {
115
+ method: 'GET',
116
+ headers: {
117
+ "Authorization": authorization,
118
+ "Accept": 'application/json',
119
+ 'Content-Type': 'application/json',
120
+ }
121
+ });
122
+ if (response.ok == false) {
123
+ let { code, message } = await response.json();
124
+ throw new WeixinSDKErr(`code:${code}, message:${message}`);
125
+ }
126
+ else {
127
+ let data = await response.json();
128
+ return data;
129
+ }
130
+ }
131
+ }
132
+ //# sourceMappingURL=MerchantTransfer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MerchantTransfer.js","sourceRoot":"","sources":["../../../src/微信支付/运营工具/MerchantTransfer.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,28 @@
1
+ {
2
+ "name": "weixin-server-sdk",
3
+ "version": "1.0.2",
4
+ "description": "微信相关的请求sdk",
5
+ "keywords": [
6
+ "微信",
7
+ "wx",
8
+ "sdk"
9
+ ],
10
+ "license": "MIT",
11
+ "author": "dadajiege",
12
+ "type": "module",
13
+ "main": "./dist/index.js",
14
+ "types": "./dist/index.d.ts",
15
+ "files": [
16
+ "dist"
17
+ ],
18
+ "scripts": {
19
+ "test": "echo \"Error: no test specified\" && exit 1"
20
+ },
21
+ "devDependencies": {
22
+ "typescript": "^5.9.3",
23
+ "@types/node": "^25.0.3"
24
+ },
25
+ "dependencies": {
26
+
27
+ }
28
+ }