您好,我在使用【更新任务卡片消息状态】接口出现了问题。
任务卡片点击 批准 按钮时,在回调事件中 调用更新【任务卡片消息状态】,任务卡片状态被更新为已完成,但是紧接着又恢复成原样
原以为是官网 文档中【假如企业无法保证在五秒内处理并回复,或者不想回复任何内容,可以直接返回200(即以空串为返回包)。企业后续可以使用主动发消息接口进行异步回复。】的这个问题,但是尝试在回调事件中不进行任何业务逻辑,只是返回成功,还是会出现相同的问题,可以明确回调事件是执行了的,而且微信客户端出现 “处理超时,请点击卡片重试”的事件绝对不超过5秒。
之后在回调事件中尝试先返回成功,然后挂起5秒异步调用更新卡片状态接口,微信客户端仍旧提示处理超时,请点击卡片重试,异步的线程是能够将卡片状态更改为已完成的,这种方式还是存在提示超时的问题
怀疑是回调事件中返回值存在问题,但是对照官网文档,找不出问题出在什么地方,而且测试过回调事件的接口,响应时间很短,至此完全卡住,不知道问题到底出在哪里?
你好,可以看下上面这位开发者的描述, 这里的encrypt就是 被动回复消息的结构加密
那是因为你没有正确的响应 企业微信, 你看看我发的 应该对你有帮助, 我解决了
这个行为太诡异了。收到回调后,必须要返回被动消息格式,否则就会提示超时,此时主动调用接口发送的更新任务卡状态也失效,接口调用成功,没有效果。
强烈建议官方修改一下这个行为设定。返回的信息不符合被动回复格式,直接忽略,api调用修改任务卡状态任何时候都要能生效。
按照这个接口发送请求,在提供的调试工具中可以成功,但在自己的应用中就不成功,
[https://qyapi.weixin.qq.com/cgi-bin/message/update_taskcard?access_token=xxxx
postData : [{"agentid":"1000205","userids":"xxxxxx","task_id":"taskid133","replace_name":"已读","clicked_key":"key111"}], result : [{"errcode":0,"errmsg":"ok. Warning: wrong json format. ","invaliduser":[]}]
为什么,我不按要求返回,使用官方提供的 api 更新,会失败呢?还有 「被动回复消息」的 xml 参数里面,CreateTime 消息创建时间(整型)指的又是什么呢?回调的时间?还是该任务卡片被创建的时间?具体用途是啥呢?可以不传吗?
参考这个解决了