微信开放平台(第三方平台)绑定微信公众号

一、需求:对公众号关注用户的信息获取和管理

二、整体流程:获取票据 ------ 获取令牌 ------ 获取预授权码 ------ 生成授权页面 ------ 授权并且获取授权码 ------ 有需要的话再获取刷新令牌

三、说明:

1.官方文档:https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/api/authorization_info.html

2.票据:component_verify_ticket

3.令牌:component_access_token

4.预授权码:pre_auth_code

5.授权码:authorization_code / auth_code

6.刷新令牌:authorizer_refresh_token

四、具体实现(也可以先看第五点,没这么啰嗦看不懂再回来看):

1.微信官方接口API(以下简称wxapi)会定时(每10分钟)给第三方平台创建时填写的url上推送一个叫验证票据(component_verify_ticket)的东西。这个url是什么呢?你写一个地址为这个url的接口,比如(http://abc.com/auth.do),然后每10分钟微信就发ticket过来了,接口里面干什么呢?解析微信的数据,然后进行保存。缓存、数据库、甚至你也可以在代码中log.info(component_verify_ticket),甚至System.out.println(component_verify_ticket),它会过期,你能找到最新的就行。

票据示例

2.拿到component_verify_ticket之后,要去获取令牌component_access_token,以POST请求wxapi获取。

https://api.weixin.qq.com/cgi-bin/component/api_component_token

请求的body内容为

{"component_appid":"第三方平台APPID","component_appsecret":"第三方平台secret","component_verify_ticket":"第一步的ticket"}

wxpai返回{

    "component_access_token": "34_jycC7AzLnzu7Pj2goiI8Uyt3rn9hNgg7yhKfCLEDPYLugDT3jIBpN69N9wOU6JwkyKrlIkbqMWKJ5_J7yB-oDKWjVMpiTht0LLBXdZBltK-Al9PHia8LKzCLARJx0duoGrxezk2Yuro6fv9STEJbAJADOT",

    "expires_in": 7200

}

3.拿到令牌之后,要预授权码(pre_auth_code),post请求以下地址

"https://api.weixin.qq.com/cgi-bin/component/api_create_preauthcode?component_access_token=",加上令牌,类似下面:

https://api.weixin.qq.com/cgi-bin/component/api_create_preauthcode?component_access_token=34_jycC7AzLnzu7Pj2goiI8Uyt3rn9hNgg7yhKfCLEDPYLugDT3jIBpN69N9wOU6JwkyKrlIkbqMWKJ5_J7yB-oDKWjVMpiTht0LLBXdZBltK-Al9PHia8LKzCLARJx0duoGrxezk2Yuro6fv9STEJbAJADOT

4.生成授权注册页面(一个地址):

a.在页面上添加一个按钮,按钮跳转地址:

https://mp.weixin.qq.com/cgi-bin/componentloginpage?component_appid=wx682b658081f6e183&pre_auth_code=preauthcode@@@I7Y89Km1zxLj-TVH_pGX3GC8Fv9ez0N3YjaFmiwc6PNIsf25DN0Nv1sy_dpdPgrY&redirect_uri=weixin-test.dslbuy.com/wxa63f33a8579fdf36/redirect.do&auth_type=  此步骤只能页面上进行,如果直接网页调用,

会产生以下错误:

b.点击按钮,生成二维码,公众号的管理员拿起手机微信扫码,点击授权

c.此时网页上跳转到一个空白页面,看到上面的网址链接:https://mp.weixin.qq.com/cgi-bin/abc/redirect.do?auth_code=queryauthcode@@@dPIbKHrGFaTwgUjqbZ9A-fpv6bfnSEUYUpmKZtduDXw4V0NoQw6KRISQuBFtYRecXLYVOLzLy0ClPw-7rCIV1g&expires_in=3600,这样,我们就拿到了授权码

auth_code:queryauthcode@@@dPIbKHrGFaTwgUjqbZ9A-fpv6bfnSEUYUpmKZtduDXw4V0NoQw6KRISQuBFtYRecXLYVOLzLy0ClPw-7rCIV1g

d.此时我们用授权码和之前的令牌可以拿到授权信息,授权信息中有个叫刷新令牌的东西有用,post请求:

https://api.weixin.qq.com/cgi-bin/component/api_query_auth?component_access_token=34_jycC7AzLnzu7Pj2goiI8Uyt3rn9hNgg7yhKfCLEDPYLugDT3jIBpN69N9wOU6JwkyKrlIkbqMWKJ5_J7yB-oDKWjVMpiTht0LLBXdZBltK-Al9PHia8LKzCLARJx0DUoGrxezk2Yuro6fv9STEJbAJADOT,

body参数:

{"component_appid":"wx1234567890" ,"authorization_code": "queryauthcode@@@PLpatQIOkdmpyuROjYDouXeXCR709IJBWoiRbsDWpyHRVzHjYPL4MNt_0t-PCVowLJQXbeNszANhNA4u7cssAA"}

返回内容:
{"authorization_info":{"authorizer_appid":"wxb6cbb11cd427d000","authorizer_access_token":"34_N7QdVWfC-AbhmZLxa6k9iWka3vs6rI57fBxUlc4RPToY85sbBb9hcbq5QDL4ZAT5Nmjl_RoQ9vA996KqesNQYRjrQtID6NT5TiQqzfeNoUTLV7A-ojsVoUAvvd4rXPtFf88clSNu3Tr8SKC0FHIcAEDMOP","expires_in":7200,"authorizer_refresh_token":"refreshtoken@@@hRHXlzfs8i1cNo03XwtLXclah6_S7df6mTqk3ruDSSg","func_info":[{"funcscope_category":{"id":7}},{"funcscope_category":{"id":2}}]}}

五、言而简之:

1.开发一个接口并且把地址配置到第三方平台的授权事件接收URL,接口解析并保存票据component_verify_ticket字段;

2.用票据去POST请求获取令牌component_access_token:

地址:https://api.weixin.qq.com/cgi-bin/component/api_component_token

body参数:{"component_appid":"第三方平台APPID","component_appsecret":"第三方平台secret","component_verify_ticket":"第一步的ticket"}

3.用令牌POST请求获取预授权码(pre_auth_code)

地址:https://api.weixin.qq.com/cgi-bin/component/api_create_preauthcode?component_access_token=aaa

{"pre_auth_code":"preauthcode@@@qOcm5IX1boBVwEYMlg22iqfv6oEphMWOnEmm5r0wWZU4VLNGroD1HMvckD-sOTGo","expires_in":1800}

4.在项目的JSP/html页面上写一个按钮,地址:

https://mp.weixin.qq.com/cgi-bin/componentloginpage?component_appid=第三方平台appid&pre_auth_code=预授权码&redirect_uri=随便写一个合法的地址吧&auth_type=

然后登录项目网站,点击该按钮,就会跳转到授权二维码页面

5.公众号管理员拿起他的手机扫一扫,然后授权

6.此时网页会跳转,需要的是页面上地址栏的内容:

https://mp.weixin.qq.com/cgi-bin/aaa.com/wxa63f33a8579fd333/redirect.do?auth_code=queryauthcode@@@dPIbKHrGFaTwgUjqbZ9A-fpv6bfnSEUYUpmKZtduDXw4V0NoQw6KRISQuBFtYRecXLYVOLzLy0ClPw-7rCIV1g&expires_in=3600

此时已经授权成功。

7.一般还有一步:获取一个叫刷新令牌的东西,此时授权码和令牌都还热乎,赶紧POST请求拿:

地址:https://api.weixin.qq.com/cgi-bin/component/api_query_auth?component_access_token=COMPONENT_ACCESS_TOKEN

body参数:{"component_appid":"三方appid" ,"authorization_code": "授权码"}

wxapi返回:{"authorization_info":{"authorizer_appid":"wxb6cbb11cd427d0a0","authorizer_access_token":"34_N7QdVWfC-AbhmZLxa6k9iWka3vs6rI57fBxUlc4RPToY85sbBb9hcbq5QDL4ZAT5Nmjl_RoQ9vA996KqesNQYRjrQtID6NT5TiQqzfeNoUTLV7A-ojsVoUAvvd4rXPtFf88clSNu3Tr8SKC0FHIcAEDMOP","expires_in":7200,"authorizer_refresh_token":"refreshtoken@@@hRHXlzfs8i1cNo03XwtLXclah6_S7df6mTqk3ruDSSg","func_info":[{"funcscope_category":{"id":7}},{"funcscope_category":{"id":2}}]}}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,921评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,635评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,393评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,836评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,833评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,685评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,043评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,694评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,671评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,670评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,779评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,424评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,027评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,984评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,214评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,108评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,517评论 2 343