应用场景
商户网页端在微信内进行支付
支付配置
公众号类型须为服务号
微信公众号平台,配置登录授权目录,用于获取用户信息,最关键的openid
在微信支付平台配置支付目录。登录微信支付【商户平台->产品中心->开发配置】,设置后一般5分钟内生效。
微信支付平台配置apiKey(v3支付就配置v3key,v2支付配置v2key)
以上配置完成,就可以尝试调用支付了,签名正确的话,就可以调起公众号支付了
遇到问题总结
登录授权域名
在一个已经配置的域名对应项目中增加一个方法做REDIRECT_URI,作为中转站。我用到的方案有2:
方案一:REDIRECT_URI 上新增一个参数callback_url,进行urlencode,即&callback_url=urlencode(真实跳转地址),微信跳转REDIRECT_URI后,解析参数code和state、callback_url,携code、state参数直接跳转callback_url
方案二:state值为真实跳转地址,微信跳转REDIRECT_URI后,携code直接跳转state地址
APPID 要授权的公众号的appid
REDIRECT_URI 就是需要配置在后台的授权域名下的地址,微信会携带上code(用来换取openid)和state值,跳转到REDIRECT_URI
SCOPE=snsapi_base,静默授权,不弹出授权页面,直接跳转,只能获取用户openid
SCOPE=snsapi_userinfo,弹出授权页面,可通过openid拿到昵称、性别、所在地。并且,即使在未关注的情况下,只要用户授权,也能获取其信息。
授权流程:
授权域名已配置满了,不能新增了
两个公众号,一个订阅号(流量大,入口所在),一个服务号(登录授权、支付等商户逻辑)
入口在订阅号,逻辑在服务号,可以
JS安全域名需不需要配置
只是支付的话不需要,因为没配情况下,成功调起了公众号支付
如果用到了分享等别的功能,因为用到了微信JS,所以需要配置上项目域名
apikey该配置v3还是v2:
如果新接微信支付,建议使用v3版,当然需要配置v3的apiKey了。v2版也可以继续使用,就需要配置v2的apiKey
如果之前同一个商户下已经接入过其他微信支付(H5、APP等),apiKey当然已经配置过了,不考虑迭代升级的话,继续延用即可
签名失败问题:
打印签名串,使用微信签名校验工具,发现了问题
微信jsApi支付要求签名参数要严格大小写,我的问题就是都处理成小写后进行的签名导致签名失败
本文采摘于网络,不代表本站立场,转载联系作者并注明出处:https://www.5amiao.com/wenhua/2595.html