关于微信公众号网页的支付问题

微信公众号网页支付功能是基于微信JS-SDK的网页开发工具包,要完成支付的开发就需要

进行一定的微信配置,拉起微信的支付功能。以下主要完成公众号网页支付的前端部分。

1.需要进行网页授权。通过网页授权获取code值,再把code值传给后端。而后端需要通过code值获取access_token。具体文档为https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_authorization.html

2.需要在微信公众平台的公众号设置中的“功能设置”里填写“JS接口安全域名”,即为支付网页所在的域名。

3.要引入微信提供的js文件。列入http://res.wx.qq.com/open/js/jweixin-1.6.0.js或者http://res2.wx.qq.com/open/js/jweixin-1.6.0.js 。具体看开发文档

https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html

4.需要进行微信的config接口注入权限验证配置具体为如下几点。

wx.config({
  debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
  appId: '', // 必填,公众号的唯一标识
  timestamp: , // 必填,生成签名的时间戳
  nonceStr: '', // 必填,生成签名的随机串
  signature: '',// 必填,签名
  jsApiList: [] // 必填,需要使用的JS接口列表
});

以上的appId,timestamp,nonceStr,signature,jsApiList除了jsApiList需要自己来配置之外,其他的需要需要后端提供一个接口获取。

5.进行微信支付功能拉起的配置,如下

wx.chooseWXPay({
  timestamp: 0, // 支付签名时间戳,注意微信jssdk中的所有使用timestamp字段均为小写。但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S字符
  nonceStr: '', // 支付签名随机串,不长于 32 位
  package: '', // 统一支付接口返回的prepay_id参数值,提交格式如:prepay_id=***)
  signType: '', // 签名方式,默认为'SHA1',使用新版支付需传入'MD5'
  paySign: '', // 支付签名
  success: function (res) {
    // 支付成功后的回调函数
  },
});

注意进行支付功能的配置的时候不要用微信小程序开发工具来进行测试。很大的可能性会出现签名无效。所以最好是用你的手机来进行微信的支付测试操作。

原文地址:https://www.cnblogs.com/sisxxw/p/13321199.html