https://github.com/coajs/coa-wx-pay-isv
轻量的微信支付SDK服务商版 for Node.js
https://github.com/coajs/coa-wx-pay-isv
coa coajs isv pay wx wx-pay wx-pay-isv
Last synced: 7 months ago
JSON representation
轻量的微信支付SDK服务商版 for Node.js
- Host: GitHub
- URL: https://github.com/coajs/coa-wx-pay-isv
- Owner: coajs
- License: mit
- Created: 2021-04-14T13:07:01.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2023-07-19T02:40:31.000Z (over 2 years ago)
- Last Synced: 2025-03-30T13:03:46.114Z (7 months ago)
- Topics: coa, coajs, isv, pay, wx, wx-pay, wx-pay-isv
- Language: TypeScript
- Homepage: https://npmjs.com/coa-wx-pay-isv
- Size: 165 KB
- Stars: 3
- Watchers: 0
- Forks: 6
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# coa-wx-pay-isv
[](LICENSE)
[](https://www.npmjs.org/package/coa-wx-pay-isv)
[](http://npm-stat.com/charts.html?package=coa-wx-pay-isv)
[](https://github.com/coajs/coa-wx-pay-isv/pulls)
轻量的微信支付 SDK 服务商版 for Node.js
## 特点
根据日常实际项目使用情况:
- 覆盖了绝大多数使用场景
- 统一了异步表现形式,全部返回 Promise
- 内置类型引用,无需额外查看文档,开箱即用,IDE 友好
## 快速开始
### 安装
```shell
yarn add coa-wx-pay-isv
```
### 直接使用
```typescript
import { CoaWxPayIsvBin, CoaWxPayIsvService } from 'coa-wx-pay-isv'
// 微信支付配置
const config = {
appId: 'wx00000000001',
mchId: '1550000001',
key: '1125XXXXXXXXXXXXXXXXXXX6E20DE9',
pfx: Buffer.from('XXXXXXX'),
notifyPay: 'https://example.com/api/notify/pay',
notifyRefund: 'https://example.com/api/notify/refund',
}
// 创建BIN实例
const bin = new CoaWxPayIsvBin(config)
// 创建服务
const service = new CoaWxPayIsvService(bin)
// 统一下单
await service.unifiedOrder({
orderId: 'order000001',
appWxaId: 'wx000000002',
subMchId: '1660000001',
openId: 'openIdxxxxxxx',
price: 100,
body: '商品信息',
})
// 根据预支付单号,获得支付参数
await service.getPaymentParams({
appWxaId: 'wx000000002',
prepayId: 'prepay00001',
})
// 查询订单
await service.queryOrder({
orderId: 'order000001',
appWxaId: 'wx000000002',
subMchId: '1660000001',
})
// 退款
await service.payRefund({
refundId: 'refund000001',
orderId: 'order000001',
price: 100,
rawData: {},
})
// 查询退款订单
await service.queryRefund({
refundId: 'refund000001',
orderId: 'order000001',
appWxaId: 'wx000000002',
subMchId: '1660000001',
})
// 下载日对账单
await service.downloadBill({ date: '20210331' })
```
### 错误记录
可以使用自定义 Bin 的方式记录错误信息。
```typescript
import { CoaWxPayIsvBin, CoaWxPayIsvService } from 'coa-wx-pay-isv'
// 微信支付配置
const config = {
appId: 'wx00000000001',
mchId: '1550000001',
key: '1125XXXXXXXXXXXXXXXXXXX6E20DE9',
pfx: Buffer.from('XXXXXXX'),
notifyPay: 'https://example.com/api/notify/pay',
notifyRefund: 'https://example.com/api/notify/refund',
}
// 创建自定义Bin类
class MyCoaWxPayIsvBin extends CoaWxPayIsvBin {
protected onRequestError(error: Error, response: Axios.AxiosResponse) {
console.log('error:', error.toString())
console.log('data:', response.data)
}
}
// 自定义Bin实例
const bin = new MyCoaWxPayIsvBin(config)
// 是自定义bin创建服务
const service = new CoaWxPayIsvService(bin)
// 错误调用下载日对账单
await service.downloadBill({ date: '' }) // 此时会触发 onRequestError()
```