第一步
在第三方的授权事件填写自己服务器的url,微信服务器会向其“授权事件接收URL”每隔10分钟定时推送component_verify_ticket
但是推送到的数据是加密过得数据
<xml> <AppId><![CDATA[wxf7a]]></AppId> <Encrypt><![CDATA[71Tj
3X8nb97bWlSXuSP5ylqt5//AxNQ14oWum1OAab9ujLsCxBlUhBTbLMYX2RzzSHCM7vJDp97+75zYAkJq
xP+MCVXNvYLql48OKbc3sWm3QBU72alXdCeWDsoJ0zkeUIQsRZxe+/QwBmCKs41t0j4O7JZtHHzaTQL2
WT2h62SJ775dVKsCBw5qJgLyZIXeMIvA0uu0hC5FByQE5EqiHW2xePxdUTy82HTFDYAJ+zlVhWHcekJp
DkwizJzEaHjkd5e48Nf/FvO3bsz4ScKe7EsellsKTthEkETf3S6hdpTVFzYtBGMK1
5DecNLmYKZWaaKpmpcwB24zaa/ukQZA2gpI0KFDcsdF5AYPJMfu7I2PvzzEkfUcL6Q==]]></Encrypt
></xml>
第二步 对微信推送的数据进行解密处理
利用微信提供的加解密案例,可以得到解密之后的数据
<xml><AppId><![CDATA[wxf71ddacda]]></AppId>
<CreateTime>1479286434</CreateTime>
<InfoType><![CDATA[component_verify_ticket]]></InfoType>
<ComponentVerifyTicket>
<![CDATA[ticket@@@bDTIAG_0yp2Xob6LtNy6MdjIW4h4wFgwwXoqUroJv2heXM28csI6wzR3nNe5Dvz4IYqg1TA]]></ComponentVerifyTicket>
</xml>
也就拿到了ComponentVerifyTicket
需要注意的是:java解密需要
http://daihaixiang.blog.163.com/blog/static/38301342014101744056717/
从这里下载jar包,将自己的替换掉即可
第三步
获取第三方平台component_access_token
第三方平台compoment_access_token是第三方平台的下文中接口的调用凭据,也叫做令牌(component_access_token)。每个令牌是存在有效期(2小时)的,且令牌的调用不是无限制的,请第三方平台做好令牌的管理,在令牌快过期时(比如1小时50分)再进行刷新。(参照微信)
第四步
获取预授权码pre_auth_code
引入用户进入授权页
第三方平台方可以在自己的网站:中放置“微信公众号授权”的入口,引导公众号运营者进入授权页。授权页网址为https://mp.weixin.qq.com/cgi-bin/componentloginpage?component_appid=xxxx&pre_auth_code=xxxxx&redirect_uri=xxxx,该网址中第三方平台方需要提供第三方平台方appid、预授权码和回调URI
用户进入第三方平台授权页后,需要确认并同意将自己的公众号登录授权给第三方平台方,完成授权流程授权后回调URI,得到授权码(authorization_code)和过期时间
授权流程完成后,授权页会自动跳转进入回调URI,并在URL参数中返回授权码和过期时间(redirect_url?auth_code=xxx&expires_in=600)
使用授权码换取公众号的接口调用凭据和授权信息
该API用于使用授权码换取授权公众号的授权信息,并换取authorizer_access_token和authorizer_refresh_token。 授权码的获取,需要在用户在第三方平台授权页中完成授权流程后,在回调URI中通过URL参数提供给第三方平台方。请注意,由于现在公众号可以自定义选择部分权限授权给第三方平台,因此第三方平台开发者需要通过该接口来获取公众号具体授权了哪些权限,而不是简单地认为自己声明的权限就是公众号授权的权限。