前后端分离之后,在微信内置浏览器获取openid

以往的试用微信支付获取openid

    1.修改网页授权

    201053_zwOb_2723374.png

201143_bv8V_2723374.png

2.然后根据微信开发文档网页授权进行开发代码

    https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140842

3.这是正常的开发

201531_XYrT_2723374.png

201422_njpF_2723374.png

201439_Z3pc_2723374.png

201504_c06X_2723374.png

4.这一块在以往PHP开发中很容易实现,但是如果前后端分离之后,code就不好获取了,

    如果直接用ajax请求图2中的URL会出现跨域的问题。

 

5解决

    前端去获取code,然后把code传给后台,后台再去获取access_token和openid。

    实现

        202018_y7Ah_2723374.png

    后台进行URL拼接之后,再利用js的window.location.href=''打开这个链接,

202517_YlIq_2723374.png

然后前端就可以拿到微信返回的code,后台利用这个code再去请求 

202155_ZR78_2723374.png

这个地址,就可以得到access_token和openid

    

转载于:https://my.oschina.net/snxun/blog/1486539

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在微信浏览器获取openid,需要进行以下步骤: 1. 引入微信JS SDK 在网页中引入微信JS SDK,可以通过以下代码实现: ``` <script src="https://res.wx.qq.com/open/js/jweixin-1.6.0.js"></script> ``` 2. 配微信JS SDK 在JS代码中,需要进行微信JS SDK的配,例如: ``` wx.config({ debug: false, appId: 'your_app_id', timestamp: 1594736109, nonceStr: 'your_nonce_str', signature: 'your_signature', jsApiList: ['checkJsApi', 'onMenuShareTimeline', 'onMenuShareAppMessage'] }); ``` 其中,appId、timestamp、nonceStr和signature需要在服务器进行计算和签名,并将结果传递给客户。可以参考微信官方文档进行计算和签名。 3. 获取用户授权 在JS代码中,需要调用微信JS SDK提供的接口,获取用户授权,例如: ``` wx.ready(function() { wx.getUserInfo({ success: function(res) { var userInfo = res.userInfo; var nickName = userInfo.nickName; var avatarUrl = userInfo.avatarUrl; var gender = userInfo.gender; //性别 0:未知、1:男、2:女 var province = userInfo.province; var city = userInfo.city; var country = userInfo.country; } }); }); ``` 在用户授权后,可以获取到用户的基本信息,包括头像、昵称、性别、地区等。 4. 获取openid 通过微信JS SDK提供的接口,可以获取用户的openid,例如: ``` wx.ready(function() { wx.login({ success: function(res) { if (res.code) { // 发起网络请求 wx.request({ url: 'https://your.domain.com/api/getOpenId', data: { code: res.code }, success: function(res) { var openid = res.data.openid; console.log(openid); } }) } else { console.log('登录失败!' + res.errMsg) } } }); }); ``` 在获取到用户的code后,可以将code发送到服务器,进行openid获取。服务器需要进行相应的处理,包括获取access_token、获取openid等。可以参考微信官方文档进行开发。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值