企微第三方应用上架踩过的坑
在上架企微第三方应用是,提示应用授权失败,请检音是否正常处理授权,大概意思是想要上架,需要实现相关的授权功能
企微提供了两种授权方式
https://developer.work.weixin.qq.com/document/path/90597
不管实现哪种方式,都需要处理回调事件,包括指令回调和数据回调
关于回调,可以看https://developer.work.weixin.qq.com/document/path/91116
在服务商后台配置好后,就可以开始处理
大致的处理方式为:
- 回调接口接收到数据报文后,进行验签
<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<AgentID><![CDATA[toAgentID]]></AgentID>
<Encrypt><![CDATA[msg_encrypt]]></Encrypt>
</xml>
- 解析出参数里的密文,密文为具体的事件报文,不同类型的回调报文内容也会不一样
<xml>
<SuiteId><![CDATA[ww4asffe99e54c0fxxxx]]></SuiteId>
<InfoType> <![CDATA[suite_ticket]]></InfoType>
<TimeStamp>1403610513</TimeStamp>
<SuiteTicket><![CDATA[asdfasfdasdfasdf]]></SuiteTicket>
</xml>
- 解析出报文后,根据事件处理逻辑
注意,有一些回调事件要求接口响应在1s内,比如说授权通知事件
在授权流程中,我们主要需要处理两个指令回调事件
- 推送suite_ticket事件
- 授权通知事件
需要注意的是,第三方应用在指令回调中,ToUserName传递是的SuiteId,不是CorpId
想上架应用,处理好上边说到的两个指令回调基本就能通过授权验证
在调试过程中,可以在后台手动触发推送suite_ticket事件,这样就能验证你的接口是否能正确响应,还可以点击安装测试来模拟安装的事件触发
所以在回调接口中需要注意几点
- 注意验签用的是SuiteId还是CorpId
- 接口响应是否符合规范,GET请求为响应内容为上一步得到的明文消息内容,Post请求大多为字符串success
- 有一些回调要求在1s内响应,比如授权回调
- 在查看上架的日志中,发现除了SuiteId,还传输了别的id,导致验签没过,我暂时不知道是什么id,所以我将这些ToUserName不是SuiteId或者CorpId给过滤了,直接返回success
这些就是我上架应用时踩过的坑,总结下来一般就是回调接口的响应有问题,导致的这个报错
这里是一些回调问题的总结https://developer.work.weixin.qq.com/community/article/detail?content_id=16393569851337414359
本文来自博客园,作者:阿弱,转载请注明原文链接:https://www.cnblogs.com/aruo/p/18330020