Node.js微信支付V3开发

最近由于需要用Node.js开发微信支付模块,顺便写一下微信支付的过程。首先要安装Node.js,npm, Express,模板引擎用EJS或者Pug(Jade),我选择简洁风格的EJS,个人不喜欢Pug(Jade)的语法。用express-generator生成完工程以后就可以开始了。微信支付接口文档可以在微信商户平台开发者文档找到。npm上的weixin-pay或者node-weixin-pay可以支持微信支付。

一:介绍

微信支付流程可以参考微信商户平台开发者文档,一共有四种支付方式刷卡支付,公众号支付,扫码支付,App支付,我们要用的是公众号支付和扫码支付。先来实现扫码支付。

二:扫码支付

商户支付回掉URL,生成二维码规则形式为

weixin://wxpay/bizpayurl?sign=XXXXX&appid=XXXXX&mch_id=XXXXX&product_id=XXXXXX&time_stamp=XXXXXX&nonce_str=XXXXX

其中XXXXX为商户需要填写的内容,可以参考官方的生成二维码规则

1: 调用函数

function onBridgeReady() {
  WeixinJSBridge.invoke('getBrandWCPayRequest', {
    "appId":  "wx2421b1c4370ec43b", // 公众号名称,由商户传入
    "timeStamp": " 1395712654", // 时间戳,自1970年以来的秒数
    "nonceStr":  "e61463f8efa94090b1f366cccfbbb444", // 随机串
    "package":  "prepay_id=u802345jgfjsdfgsdg888",
    "signType":  "MD5", // 微信签名方式
    "paySign":  "70EA570631E4BB79628FBCA90534C63FF7FADD89" // 微信签名
    },
    function(res) {
      // 使用以上方式判断前端返回,微信团队郑重提示: 
      // res.err_msg将在用户支付成功后返回
      // ok,但并不保证它绝对可靠。
      if (res.err_msg == "get_brand_wcpay_request: ok" ) {
        ;
      }
    });
  }

  if (typeof WeixinJSBridge == "undefined") {
    if (document.addEventListener) {
       document.addEventListener('WeixinJSBridgeReady', onBridgeReady, false);
    } else if (document.attachEvent) {
      document.attachEvent('WeixinJSBridgeReady', onBridgeReady); 
      document.attachEvent('onWeixinJSBridgeReady', onBridgeReady);
    }
  } else {
    onBridgeReady();
  }

2: 返回JSON

{
  "appId": "wx2421b1c4370ec43b", // 公众号名称,由商户传入     
  "timeStamp":" 1395712654", // 时间戳,自1970年以来的秒数     
  "nonceStr": "e61463f8efa94090b1f366cccfbbb444", // 随机串     
  "package": "prepay_id=u802345jgfjsdfgsdg888",     
  "signType": "MD5", // 微信签名方式:
  "paySign": "70EA570631E4BB79628FBCA90534C63FF7FADD89" // 微信签名
}

3: 输入XML


  
  
  
  
  
  
  
  
  
  
  
  
  
  
  1
  
  

4: 支付成功

你可能感兴趣的:(Node.js微信支付V3开发)