zoukankan      html  css  js  c++  java
  • PC网站应用接入微信登录

    参考文档:

    https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419316505&token=&lang=zh_CN

    https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419316518&token=&lang=zh_CN

    微信开放平台里面的文档已经说明的很详细了。这里再用实例补充下。

    1.发送请求

    微信登录的请求链接:https://open.weixin.qq.com/connect/qrconnect?appid=12312312312312&redirect_uri=www.baidu.com&response_type=code&scope=snsapi_login&state=3072355978#wechat_redirect

    参数说明:

    appid:应用唯一标识,必填

    redirect_uri:重定向地址,需要进行UrlEncode,必填

    response_type: code,必填

    scope:应用授权作用域,拥有多个作用域用逗号(,)分隔,网页应用目前仅填写snsapi_login即可,必填

    state:用于保持请求和回调的状态,授权请求后原样带回给第三方。该参数可用于防止csrf攻击(跨站请求伪造攻击),建议第三方带上该参数,可设置为简单的随机数加session进行校验,非必填

    用户允许授权后,将会重定向到redirect_uri的网址上,并且带上code和state参数:www.baidu.com?code=CODE&state=STATE

    若用户禁止授权,则重定向后不会带上code参数,仅会带上state参数:www.baidu.com?state=STATE

    第二步:通过code获取access_token

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

    参数说明:

    appid:应用唯一标识,必填

    secret:应用密钥AppSecret,在微信开放平台提交应用审核通过后获得,必填

    code:填写第一步获取的code参数,必填

    grant_type:填authorization_code,必填

    正确的返回:


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

    参数说明:

    access_token:接口调用凭证

    expires_in: access_token接口调用凭证超时时间,单位(秒)(目前为2个小时)

    refresh_token: 用户刷新access_token

    openid: 授权用户唯一标识

    scope: 用户授权的作用域,使用逗号(,)分隔

    unionid: 只有在用户将公众号绑定到微信开放平台帐号后,才会出现该字段。

    access_token是调用授权关系接口的调用凭证,由于access_token有效期(目前为2个小时)较短,当access_token超时后,可以使用refresh_token进行刷新。refresh_token拥有较长的有效期(30天),当refresh_token失效的后,需要用户重新授权。

    获取第一步的code后,请求以下链接进行refresh_token:

    https://api.weixin.qq.com/sns/oauth2/refresh_token?appid=APPID&grant_type=refresh_token&refresh_token=REFRESH_TOKEN

    参数说明:

    appid:应用唯一标识,必填

    grant_type:填refresh_token,必填

    refresh_token:填写通过access_token获取到的refresh_token参数,必填

    正确的返回:


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

     

    第三步:通过access_token调用接口

    获取access_token后,进行接口调用,有以下前提:

    1. access_token有效且未超时;

    2. 微信用户已授权给第三方应用帐号相应接口作用域(scope)。

  • 相关阅读:
    unity代码加密for Android,mono编译
    php __invoke 和 __autoload
    VC只运行一个程序实例
    VC单文档对话框添加托盘图标
    技术文档应该怎么写
    项目管理学习
    cannot download, /home/azhukov/go is a GOROOT, not a GOPATH
    Go语言学习
    appium键盘事件
    appium-doctor
  • 原文地址:https://www.cnblogs.com/zourong/p/4761492.html
Copyright © 2011-2022 走看看