微信公众号支付踩坑笔记

作者: maxZhang | 来源:发表于2018-01-03 11:29 被阅读149次

微信公众号支付,简单说主要分为如下几个步骤.

1.openId的获取

openId是微信用户与特定公众号对应关系的记录。

1.1设置回调域名
官方解释:用户在网页授权页同意授权给公众号后,微信会将授权数据传给一个回调页面,回调页面需在此域名下,以确保安全可靠。回调页面域名不支持IP地址。 回调页设置截图
1.2设置支付授权目录

授权目录设置地址

2.通过统一下单接口获取prepay_id

其中统一下单接口链接URL
统一下单接口一般放在应用服务器端处理,可以用java以及php等语言处理。在所有必传参数中,只有openId需要从前端页面获取,其它参数是与公众号与付款信息相关。

3.调用getBrandWCPayRequest,监听支付是否成功

getBrandWCPayRequest需要用到的参数为:
appId:公众号id
timeStamp:时间戳
nonceStr:随机字符串
package: prepay_id(示例值prepay_id=123456789)
signType: MD5或者HMAC-SHA256
paySign:对appId,timeStamp,nonceStr,package,signType参数按照参数名ASCII码从小到大排序(字典序),使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串再拼接商户密钥,然后进行MD5(或HMAC-SHA256)加密,全部转换成大写即可。
微信支付签名验证地址
微信浏览器默认内置WeixinJSBridge对象,在其他浏览器中无效。
微信示例代码如下:

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

相关文章

  • 微信公众号支付踩坑笔记

    微信公众号支付,简单说主要分为如下几个步骤. 1.openId的获取 openId是微信用户与特定公众号对应关系的...

  • 微信公众号踩坑

    1:服务端返回一个url需要前端重定向到这个url,IOS上可以重定向,安卓不行

  • 2018-01-15

    微信公众号支付的进坑之路,希望能初次开发的朋友们少点弯路 本人初次开发微信公众号支付,看官方文档,网上查找相关资料...

  • 微信公众号开发-验证微信服务器,授权登录以及Token管理

    本文基于之前几个项目在部署在微信公众号下的网页应用,以此写下微信公众号开发的步骤以及踩过的坑 申请测试公众号 首先...

  • 微信公众号支付坑

    1、统一下单之后签名key必须对应的要首字母大写其他小写 2、授权目录必须是 xxx.xxx/index.html...

  • PHP微信公众号支付开发总结

    微信公众号开发是很常见的开发,其中微信支付占有很大的比重。微信公众号分为服务号和订阅号,服务号支持微信支付。 前期...

  • 前端微信公众号开发踩坑笔记

    登录微信公众号后台 一个邮箱只能注册一个公众号、服务号或小程序中的一种。 进入微信公众平台后台的登陆方式是 公众号...

  • 微信公众号支付

    微信支付的文档和SDK容易带新人入坑,作为坑中的过来人写点爬坑经验吧。 之前做过很多次公众号支付,但是基本...

  • 关注公众号领红包常见问题解答

    一、关注领红包对公众号的要求: 公众号必须开通“微信支付”和“现金红包”功能权限 登录微信公众平台 – 微信支付(...

  • 微信支付踩坑系列之微信公众号相关配置

    在开发H5支付的时候,需要在微信公众号内设置参数(服务商模式的支付,在申请服务商支付的公众号下设置;直连模式的在申...

网友评论

  • Javen205:欢迎使用IJPay(目前只有Java版)以上坑不再是坑:sunglasses:

本文标题:微信公众号支付踩坑笔记

本文链接:https://www.haomeiwen.com/subject/jnsqnxtx.html