版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sctzkj/article/details/72681882
由于项目需要,
必须要做微信支付。
以前只做过支付宝,没做过微信。
就在官方下载了DEMO研究。
一切都很顺利,顺利完成。
结果遇到个问题。
只有自己的微信能够实现支付。
其他帐号均提示 “下单帐号与支付帐号不一致”,并且报错。
于是就研究。
发现错误中提示wxdata 有参数为NULL。
再进一步研究,
发现没有获取到 OPENID .
于是通过snsapi_base 方式获取openid。
自定义菜单链接 设置为https://open.weixin.qq.com/connect/oauth2/authorize?appid=*****&redirect_uri=http://****/wx_getback.aspx?npage=m_login&response_type=code&scope=snsapi_base&state=1#wechat_redirect
利用wx_getback 页面获取openid 并 通过 npage 参数 跳转到自己需要的页面。
openid 通过session 进行传输。
用户每次进入都由wx_getback跳转并获取openid。
就这样搞定了。
一定要每次支付的时候都是session里面新获取的openid,不使用已存入数据表的openid(不然有可能会报下单账号与支付账号不一致的问题),并且支付的微信公众号账号和获取openid的公众号要一致。
欢迎遇到相同问题的朋友一起交流!
转载地址: