第三方平台受权流程

微信第三方平台做用:java

 首先要知道为何要用公众号第三方平台,公众号第三方平台的开放,是为了让公众号运营者,在面向垂直行业需求时,能够一键登陆受权给第三方的公众号运营平台,经过第三方开发者提供的公众号第三方平台来完成相关业务。简单来讲就是不懂技术的小白用户一键受权给第三方公司代理开放的权限如发送消息等,不用填写一些繁琐的Appid,AppSecret,URL,Token等信息。json

需求:服务器

也许不少人会跟我同样,有公众号平台,为何还须要第三方平台。微信

一、受权简单,不须要负责的手动绑定网络

二、虽然说第三方平台最终也是走的公众平台的接口。可是好比你用的是别的公司的公众号作的微信功能(菜单,素材等等),可是消息接口没作。那么再用第三方平台直接托管那个公众号,去实现他的消息接口。并发

一、受权流程官方文档:https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1453779503&token=&lang=zh_CN(建议必定要看完,不然会走不少弯路)app

二、全网审核官方文档:https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419318611&token=b0e30bf2053a4f9db22f01583b381187ea32dfed&lang=zh_CN(这里若是你本身写代码,必需要看。若是直接Copy代码能够不用看测试

三、建立第三方平台中须要注意的几点:优化

3.一、第三方平台有本身的appId、appSecret,与微信公众号的没有任何关系url

3.二、把公众号的权限分配给第三方。

注意:若是你的公众号没有某个功能,分配了也没有任何意义。

2.三、这是你须要填写的相关回调信息。。。

常见错误:

一、在受权URL测试的时候,若是报AesException: 签名验证错误,多是代码你参数填写有错。必定要注意是填写第三方平台的信息,不是公众号的信息。

二、在受权URL测试的时候,若是报Illegal key size,那么就是指密钥长度是受限制的,java运行时环境读到的是受限的policy文件。去掉这种限制须要下载Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy Files(https://yunpan.cn/cSrtk3Fk6WgAs  访问密码 244a)。替换${java_home}/jre/lib/security/ 下面的local_policy.jar和US_export_policy.jar(jdk,jre最好都替换。)。注意必定要重启TOMCAT才能生效

三、component ticket is exprie ticket过时,每10分钟会微信服务器会推送到受权事件的URL中。这里能够不用处理设置过时时间(由于这里的ticket是无接口调用权限的,并且是微信服务器本身推送的

四、注意公众号消息处理的URL必须加上$APPID$

五、component_access_token过时时间为2个小时,和公众号的Token同样(我处理的是存储过时时间,超过就请求。而不是定时刷新)

六、能够选择你本身须要第三方托管的权限集,好比你其余消息只走微信公众号,只有客服消息走第三方平台。

七、异常:请确认受权入口页所在域名,与受权后回调页所在域名相同,而且,此二者都必须与申请第三方平台时填写的受权发起页域名相同。受权入口页所在域名:空

(怀疑是域名问题,由于新建了一个第三方,没有全网发布前没有任何问题。)

八、有可能会出现你每次启动项目的时候,因为每10分钟才会验证一次Ticket,那么直接调用接口,若是服务器还没推送,会出现ticket失效(不过在正式环境还好)(就算全网经过后也会推送component_verify_ticket协议)。

九、每次受权后,想要获取最新的权限必须从新扫码受权。不然没法获取最新的消息。

十、获取令牌的官网接口

十一、第三方中的受权的URL一级接收公众号消息的URL都只能在同一个一级域名下

十二、若是是并发量大,作集群的话,必定要把全部服务器的ip都加到白名单中

特别注意:

全网审核须要有耐心,我不知道是个人网很差(我用的花生壳),仍是微信服务器有问题,由于每次我后台没有报错,微信说最长审核5分钟,大师每次5分钟都还没到,就终止了。致使总有一到两个审核没法经过。

接收推送ticket的时间(不知道是网络缘由,反正有的时候不是10分推一次)

若是在确保代码没问题,并且网路也没有问题的状况下。能够加上返回“”或者success

源码下载:

https://yunpan.cn/cSMGaANQTx82r  访问密码 9b37

源码还有待优化,以及只给了源码的包,其他相关配置须要本身搞。

第三方平台接口的坑:

实际的返回信息

{"authorizer_info":{"nick_name":"Curtain的程序猿之路","head_img":"URL","service_type_info":{"id":1},"verify_type_info":{"id":-1},"user_name":"wechatId","alias":"xi199321Curtain","qrcode_url":"URL","business_info":{"open_pay":0,"open_shake":0,"open_scan":0,"open_card":0,"open_store":1},"idc":1},"authorization_info":{"authorizer_appid":"appId","func_info":[{"funcscope_category":{"id":1}},{"funcscope_category":{"id":2}}]}}
相关文章
相关标签/搜索