Skip to content

klover2/node-wxpay3-ts

Repository files navigation

node-wxpay3

(支付文档v2) 普通商户接入文档

前言

本模块集成了大部分微信支付、提现等模块的接口,采用async、await的方式调用,使用者不用在考虑参数加密发送,秘钥发送方式、xml怎么解析、json怎么转成xml等一系列麻烦事。

安装

npm i node-wxpay3 --save

版本介绍

本版本是2.*.*相对于旧版本1.*.*做了大的变更,本插件改用typescript重写,合并了旧的接口方法。支持requireimport两种方法导入。

使用

const WxPay = require('node-wxpay3'); 或者 import WxPay from 'node-wxpay3'

// https://api.mch.weixin.qq.com/pay/unifiedorder
const wxpay = new Wxpay({
  appid: '',
  mch_id: '',
  key: '',
  pfx: fs.readFileSync('./apiclient_cert.p12'),
});
const options = {
    body: '测试',
    out_trade_no: '23214234, 
    total_fee: 1,
    spbill_create_ip: 'ip',
    notify_url: 'https://域名/gateway/boboteacher/student/order/_payReturnss', //自己的接口
    trade_type: 'MWEB',
    scene_info: JSON.stringify({
      h5_info: {
        type: 'Wap',
        wap_url: 'https://域名',
        wap_name: 'bobo',
      },
    }),
    redirect_url: 'https://域名/webpage/api/index.html#/', // 支付成功 返回页面 h5支付需要
  };
  const result = await wxpay.unifiedorder(options);

其他接口如下: 如何使用对照微信支付文档和旧版

接口名称 介绍
unifiedorder 统一下单
callback_check 支付回调验证
orderquery 订单查询
closeorder 关闭订单
refund 申请退款
refundquery 查询退款
downloadbill 下载交易账单
downloadfundflow 下载资金账单
report 交易保障
batchquerycomment 拉取订单评价数据
micropay 付款码支付
reverse 撤销订单(只支持付款码支付的订单才可以撤销,统一下单生成的订单不能撤销)
authcodetoopenid 付款码查询openid
publicEncrypt 公钥加密
sendredpack 发放红包
sendgroupredpack 发放裂变红包
gethbinfo 查询红包记录
sendminiprogramhb 小程序红包
transfers 企业付款到零钱
gettransferinfo 查询企业付款到零钱
pay_bank 企业付款到银行卡API
query_bank 查询企业付款到银行卡
getpublickey 获取RSA加密公钥API
send_coupon 发放代金券
query_coupon_stock 查询代金券批次
querycouponsinfo 查询代金券信息

额外增加的接口:

  1. md5 参数object
wxpay.md5({
 body: '测试',
 out_trade_no: '23214234, 
 })
  1. hmac 参数object 使用同上
  2. xmltojson 参数string xml 转json 暴露给外部调用 使用同上
  3. callback_check 支付回调验证 参数object 返回boolean koa
  // 微信返回的数据是text/xml的数据流格式 
  // 接收数据流并且处理
  ctx.req.setEncoding('utf8');
  ctx.req.on('data', function(chunk) {
      data += chunk;
  });
  // getxml 就是xml形式的数据
  const getxml = await new Promise(function(resolve) {
        ctx.req.on('end', function() {
                resolve(data);
        });
  });

  // 调用wxpay.xmltojson(getxml) 获得的参数就是data
  let data = wxpay.xmltojson(getxml)
  let result = wxpay.callback_check(data)
====》 result = true 则校验成功
ctx.type = 'application/xml';
ctx.body =
            `<xml>
                <return_code><![CDATA[SUCCESS]]></return_code>
                <return_msg><![CDATA[OK]]></return_msg>
            </xml>`;
            return; d
  1. publicEncrypt 公钥加密
wxpay.publicEncrypt(publicKey, data)

其他

如果使用的是1.*.* 请看文档

About

ts 重写微信v2支付

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published