微信公众号 openid获取 以及 微信支付

今天说一下 微信支付遇到的坑

接到项目就麻溜写,对微信一无所知以为最后和支付宝一样接支付就好, 谁知道一直不通,最后请教别人才知道 所有公众号里微信网页一进来就是要微信授权获得openid 的 以备后面支付其用户信息使用。

  • 判断浏览器

如果有两个支付及以上接口,首先判断打开页面的是微信浏览器还是其他浏览器;若只有微信支付即不需要判断。
判断浏览器

if(ua.match(/MicroMessenger/i) == "micromessenger") {
       //微信浏览器
 }else{
       //其他浏览器            
 }
  • 请求接口 获取code

(1)一进页面跳转此连接 获取code
https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE&connect_redirect=1#wechat_redirect
参数意义:
在这里插入图片描述
(2)接着连接就会变为
https://xxxxx.com/wap/payOrder.html/?code=abc677adaduiadi7838&state=STATE
此处有两个坑:
a、正常情况下我们不能在网页中调试,只能在真机或则微信开发工具上;但是切勿在在真机的本页复制本页地址,这样是获取不到code的,(实际是存在的,但是复制不出来;可以用alert(window.location.href)显示出来)
如下图错误❌提示:
在这里插入图片描述
b、获取的的URL参数拼接的有问题(待解决)
如:
正常:https://abc.com/index.html#/test?code=safeiaw8329jknfdsakfna&scode=1
实际情况是:https://abc.com/index.html?code=safeiaw8329jknfdsakfna&scode=1/test


不知道是什么情况 无语了 难受


难道是#号 地址的问题

我们就可以自行在URL中获取code
(3)把code 返给后台 得到openid 以及用户登录成功的token,后续就可以正常支付

注:openid可以后台返给前台 我们用openid获取token ;也可以后台自己获取code 最后给我们token 前台不需要任何操作

菜鸟一枚 有错误望提出来 勿喷 谢谢 一起加油

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值