接微信支付遇到的坑
开发文档 https://pay.weixin.qq.com/wiki/doc/api/index.html
开发文档 https://pay.weixin.qq.com/guide/inapp_payment.shtml
一 应用
1 首先 注册微信开放平台账号(公共平台) (可以申请应用--APP支付,小程序等多个,可以管理申请的所有应用)
2 每申请一个应用,会有自己的应用账号(商户平台,里面可以查看这个应用的信息,业务数据)(这里的 appid ,商户号,才是我们需要的)
二 签名错误
1 密匙不对
2 商户号不对
3 参数不对
验证签名工具 https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=20_1(官方验证通过 一样会因为各种蛋疼的问题报这个错)
2018-12-05 :后台预支付成功,验证签名工具成功,小程序唤起失败,报验证签名失败
经排查 是加密的时候字段大小问题
appid=wxedca20c6909001ff&noncestr=eE3RnDT43S4WfgJUXOr6xDlpU9SqT2tC&package=prepay_id=wx0517363064933497719778543384839333&signType=MD5×tamp=1544002592&key=0qoOu1ftitbUg1Jqhheek8dQ0EH7JSgo
appId=wxd678efh567hg6787&nonceStr=5K8264ILTKCH16CQ2502SI8ZNMTM67VS&package=prepay_id=wx2017033010242291fcfe0db70013231072&signType=MD5&timeStamp=1490840662&key=qazwsxedcrfvtgbyhnujmikolp111111
下面的是官方文档,跟下面一致就可以成功了
既然预支付成功了,基本上说明秘钥没有问题,那只能是签名的问题了
三 吐槽
接微信支付坑,坑,坑,真特么坑
1 小程序的商户号还特么是绑定的,特么的
四 摘录
问题
最近项目使用MUI,HBuilder。开发打包H5的app
在开发H5 plus支付的时候,遇到以下问题:
App微信支付调官方的统一下单接口返回错误信息
{return_msg=商户号该产品权限未开通,请前往商户平台>产品中心检查后重试, return_code=FAIL}
解决方法
微信开放平台,微信认证申请的微信app支付,是有一个独立的商户平台 。
这个商户平台与公众号申请支付开通的商户平台是不共用的 ,也就是appid和商户号这些参数是不一样的!!!
公众号支付和app支付对应的商户平台是不一样的!!!
在商户平台切换账号处可以查看(一个商户id对应一个商户平台账号)
微信小程序支付绑定商户号问题
小程序在支付认证的过程会要求绑定商户号,有两种绑定方式(具体见文档):
1.绑定新的商户号
2. 绑定现有商户号
在绑定现有商户号(通过微信开放平台注册的商户号)会出现无法支付的问题,卡在后台统一下单流程,
然而绑定新的商户号就没有问题。
微信支付 参数定义
五:实践
1 注册微信公众号
2 申请应用
3 申请应用成功,会有商户号和APPID,,至于应用秘钥是通过商户号登陆进去 设置的一个32位随机密码,这个密码可以找生成随机密码网站生成,这样微信支付的3个必要参数就都有了
4 申请支付开通等
六 小程序 获取openId
1 用的是
secret 获取
2 小程序创建应用的时候需要小程序应用的APPID,如果这个APPID和后台的不一致,即使后面改了配置也不会生效,必须在创建应用的时候写入