微信公众号跳转H5页面-用户授权-返回openId以及access_token

首先是公众号

如果你有公众号的话,直接用你自己的公众号就行,

如果没有,最好自己申请一个测试的公众号(需要用到 appid 和 appsecret ),

申请步骤现在要 微信用户授权获取用户的openID

跳转链接的途径有:

1. 图文消息中的链接

2. 自定义菜单-跳转到链接

第一步:参考跳转链接:

https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx5d861c54aeee448c&redirect_uri=..............&response_type=code&scope=snsapi_base&state=123&connect_redirect=1#wechat_redirect

参数:(顺序不可错)

appid: 公众号的唯一标识 可以在公众号的 基本配置中看到

scope: 判断是否为静默授权和非静默授权 snsapi_base 静默授权 snsapi_userinfo 非静默授权 静默授权 则直接跳转,这个仅能获取openID。 非静默授权 需要用户手动授权,可以获取openID,也可以获取用户昵称、头像等用户信息

redirect_uri: 回调地址,需要用encodeURIComponent 将地址转码。需要在公众号配置:   

非测试号: 配置开发-接口权限-网页服务-网页授权-网页授权域名     

测试号:

 点击修改,配置回调域名

这个参数的意思是:授权成功后返回当前链接的页面(重新刷新)

如果配置参数顺序和值一一对应,则刷新页面之后你会看到地址栏中的code参数

如上图中的参数

现在需要用这个code 去请求access_token

第二步: 参考接口链接: 

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

appid上述已解释  secret 为公众号的appsecret   code 为之前路径上的 code 参数  grant_type=authorization_code  这个获取access_token 必传参数

获取路径中的某个字段的参数

// 获取某个字段
function getParam(name) {
    var reg = new RegExp('(^|&)'+name+'=([^&]*)(&|$)')
    var r = window.location.search.substr(1).match(reg)
    if(r != null) return unescape(r[2])
    return null
}
// 获取所有字段
 let url = window.location.href,
     obj = {};

 if(url.indexOf("?") >= 0){
      let a1 = url.split("?")[1],
          a2 = a1.split("&");
      for(let i=0;i<a2.length;i++){
         let a = a2[i].split("=");
        obj[a[0]]=a[1];
 }
}

 获取access_token 的操作最好后台来写

 后台用 上述 第二步的链接去请求 access_token 和 openID

正确返回时,返回的参数格式为

 {
  "access_token":"ACCESS_TOKEN",    
  "expires_in":7200,    
  "refresh_token":"REFRESH_TOKEN",    
  "openid":"OPENID",    
  "scope":"SCOPE" 
 } 

现在的话,前后台都有openID,就可以用openID 请求用户数据的绑定和查询了

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值