微信开发——第三方开放平台网页授权
作为一个刚接触微信开放平台的小白,目的很简单:想把一个提供评论的网页放到别人的微信公众号上去,这个网页里想获取到用户的信息。有两种方式,第一种微信网页授权:是要人家公众号的appid、appsecret、网页授权获取用户基本信息、加白名单,这几样缺一不可(正常情况下人家当然不会给);第一种方式:就是使用微信开放平台(微信第三方平台),只要人家公众号给你这个平台授权就行。最下面附上两种方式授权的文档,可以对比一下
首先必须搞清楚,微信公众平台和微信开放平台不是同一个平台,微信公众平台就是咱们平常说的公众号,微信开放平台是作为第三方移动程序提供接口。
1. 微信第三方平台注册
老一套,需要一堆认证手续以及300块。
如图,新建一个公众号第三方平台,然后通过审核即可。
其中注意一下,前期测试的时候,授权测试公众号列表,网页开发域名,白名单IP地址列表这三项一定要核对无误,每次修改都会重新审核(不过很快就会通过)。因为填错所出现的报错信息文档里面是没有任何说明,甚至是有的错误码文档里也没有。可以参考一下http://blog.csdn.net/goodzyw/article/details/45191143
2. 获取ComponentVerifyTicket
第三方平台创建成功后,微信会定时每隔10分钟发送一次ComponentVerifyTicket,只需要在“授权事件接收URL”对应的方法里接收就行,每次接收完之后记得保存和更新。具体接收代码参考:获取ComponentVerifyTicket
3. 公众号给第三方开放平台扫码授权
(1)获取第三方平台access_token
http请求方式: POST(请使用https协议)
https://api.weixin.qq.com/cgi-bin/component/api_component_token
参数:
{
"component_appid":"appid_value" ,#第三方平台appid
"component_appsecret": "appsecret_value", #第三方平台appsecret
"component_verify_ticket": "ticket_value" #微信后台推送的ticket,此ticket会定时推送,具体请见步骤2所附的链接
}
返回结果:
{
"component_access_token":"61W3mEpU66027wgNZ_MhGHNQDHnFATkDa9-2llqrMBjUwxRSNPbVsMmyD-yq8wZETSoE5NQgecigDrSHkPtIYA", #第三方平台
access_token
"expires_in":7200 #有效期
}
(2)获取预授权码 (若已经授权跳过此步骤,直接进入(5))
http请求方式: POST(请使用https协议)
https://api.weixin.qq.com/cgi-bin/component/api_create_preauthcode?component_access_token=xxx
参数:
{
"component_appid":"appid_value"
}
返回结果:
{
"pre_auth_code":"Cx_Dk6qiBE0Dmx4EmlT3oRfArPvwSQ-oa3NL_fwHM7VI08r52wazoZX2Rhpz1dEw", #预授权码
"expires_in":600 #有效时间
}
(3)引导进入授权页面(若已经授权跳过此步骤,直接进入(5))
在任何一个html或者jsp页面,加一个按钮,按钮的响应地址为:(不可以直接用代码访问)
https://mp.weixin.qq.com/cgi-bin/componentloginpage?component_appid=xxxx&pre_auth_code=xxxxx&redirect_uri=xxxx
该网址中第三方平台方需要提供第三方平台方appid、预授权码和回调URI
(4)扫码授权,若在此处需要该公众号的授权信息,可以参考:获取公众号授权信息详情 (若已经授权或者不需要授权信息,跳过此步骤,直接进入(5))
(5)代公众号发起网页授权,参考文档:获取用户信息链接
参考: