willerhe / coa-wx-pay-isv

轻量的微信支付SDK服务商版 for Node.js

Home Page:https://npmjs.com/coa-wx-pay-isv

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

coa-wx-pay-isv

GitHub license npm version npm downloads PRs Welcome

轻量的微信支付 SDK 服务商版 for Node.js

特点

根据日常实际项目使用情况:

  • 覆盖了绝大多数使用场景
  • 统一了异步表现形式,全部返回 Promise
  • 内置类型引用,无需额外查看文档,开箱即用,IDE 友好

快速开始

安装

yarn add coa-wx-pay-isv

直接使用

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 })

// 根据预支付单号,获得支付参数
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 的方式记录错误信息。

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()

About

轻量的微信支付SDK服务商版 for Node.js

https://npmjs.com/coa-wx-pay-isv

License:MIT License


Languages

Language:TypeScript 100.0%