微信开发之获取openid

微信公众号支付的接口即预下单接口需要传openid,但是单元测试调该接口的话,就得直接传固定的测试参数,没有办法像实际生产流程中那样获取openid,所以这里先通过微信官方的网页授权方法获取openid。

首先我们先保证前提条件以满足,完成公众号开发的相关步骤。

按照开发文档的步骤来,这里是链接https://pay.weixin.qq.com/wiki/doc/api/jsapi.php?chapter=7_3

这里直接从回调地址设置开始(前面的步骤已完成的情况下)


1、放置MP_verify文件到授权目录下

请将文件MP_verify_wY984BJIuZNHf8yR.txt上传至上传至dohko.m.test.com/order/(你的回调地址)指向的web服务器(或虚拟主机)的目录(可以放在该服务器节点根目录下)

保证可访问https://dohko.m.test.com/MP_verify_wY984BJIuZNHf8yR.txt

2、微信管理后台设置绑定授权目录

3、微信客户端打开如下这种url

https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx9440000cd8000000&redirect_uri=https%3a%2f%2fdohko.m.test.com%2forder%2f&response_type=code&scope=snsapi_base&state=1&connect_redirect=1#wechat_redirect

https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx9440000cd8000000&redirect_uri=https%3a%2f%2fdohko.m.test.com%2forder%2f&response_type=code&scope=snsapi_userinfo&state=1&connect_redirect=1#wechat_redirec

参数说明:

链接中参数传自己的对应参数即可,appid为测试公众号的appid,redirect_uri为自己支付成功的回调地址(尽量使用https链接,微信文档中有说明,为了保证返回code的安全,scope参数可以传snsapi_base,也可以传snsapi_userinfo,区别在于snsapi_base不会弹出授权页面,而snsapi_userinfo会弹出一个授权页面,如果只需要得到openid,传snsapi_base即可,如果需要用户其他信息就snsapi_userinfo,但还需要多一步)

注意链接在微信客户端内打开,为了便于调试用电脑微信打开即可。

不能浏览器打开!!

但是电脑版在显示链接时存在这样一个问题,如图

这样就不是一个完整的链接,解决这个问题可以将回调地址urlencode编码一下即可(给出一个工具页http://tool.chinaz.com/tools/urlencode.aspx),如下图正确链接

点击后授权公众号,然后会跳转至回调地址并且会携带code及state参数,因为我的回调地址无法直接这样访问,所以没有显示,但为了看到url,我们将此访问用浏览器打开

然后浏览器中就能看到这样的url(这里传的scope为snsapi_userinfo,传snsapi_base发现浏览器打开不好使。。)

https://dohko.m.test.com/order/?code=001c7QXy0CuMUd1vgmXy0tOyXy0c7QXE&state=1

这里的code值仅能生效一次,且5分钟未使用就会失效,所以抓紧时间下一步。。

4、后续链接均可浏览器打开,为了方便这里使用postman进行访问。

访问链接模板:

https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code

参数说明:

appid和secret应该是在申请公众号的时候就会获得,code就是我们上一步得到的,然后填入相应参数访问即可,下图为code5分钟未使用失效了。。

正确,未失效的

5、此时到上一步已经结束了,我们已经获取到了openid,而这一步是用来获取用户详细信息的,根据官方说明,这一步仅能在scope为snsapi_userinfo访问

参数说明:

openid就是我们获取到的用户标识,传入即可

 

已上就是获取openid的全部步骤。。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值