2.0.3 • Published 1 year ago

node-wxpay3 v2.0.3

Weekly downloads
22
License
ISC
Repository
github
Last release
1 year ago

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.*.* 请看文档

2.0.3

1 year ago

2.0.2

3 years ago

2.0.1

3 years ago

2.0.0

3 years ago

2.1.0-beta.1

3 years ago

2.1.0-beta.3

3 years ago

2.1.0-beta.2

3 years ago

2.1.2

3 years ago

2.1.1

3 years ago

2.1.0

3 years ago

1.1.4

3 years ago

1.1.3

4 years ago

1.1.1

4 years ago

1.1.2

4 years ago

1.1.0

4 years ago

1.0.6

4 years ago

1.0.5

4 years ago

1.0.4

4 years ago

1.0.3

4 years ago

1.0.2

4 years ago

1.0.1

4 years ago

1.0.0

4 years ago