第三方 客服消息转发到网页版工具无法转发的问题
发布于 6 年前 作者 xiulan05 16068 次浏览 来自 问答

首先说一下我做到哪一步了:
1. 我在微信公众平台(小程序)那已启用消息推送,推送的格式就是xml,且消息服务器已通过。
2. 我自己试验,在小程序端客服会话中发言,在消息服务器上打印Log,是有POST请求过来的。
3. 
响应“success”,是有效的。

好的,接下来,问题来了:
在响应包中返回 MsgType 为 transfer_customer_service 的消息时,却显示“该小程序暂时无法提供服务,请稍后再试”,很明显,微信服务器不认我这个响应包。我查了一下LOG,请求是这样的:

<xml>
     <ToUserName><![CDATA[ob9Z65TybSpWrCSdd8PQl_FwOMQ8]]></ToUserName>
     <FromUserName><![CDATA[wxcf79daa9a7024018]]></FromUserName>
     <CreateTime>1527747481</CreateTime>
     <MsgType><![CDATA[transfer_customer_service]]></MsgType>
</xml>

我自己的分析是这样的:
响应“success”的时候是没问题的,也就是说微信端跟我的消息服务器之间的通信是OK的
在响应包中返回 MsgType 为 transfer_customer_service 的消息时报错,表示微信那边不认这个响应的结果。聊天窗口显示‘该小程序客服暂时无法提供服务,请稍后再试’。

这到底是什么情况呢?


$textTpl = "<xml>
<ToUserName><![CDATA[%s]]></ToUserName>
<FromUserName><![CDATA[%s]]></FromUserName>
<CreateTime>%s</CreateTime>
<MsgType><![CDATA[transfer_customer_service]]></MsgType>
</xml>";

$textTpl = sprintf ( $textTpl, $FromUserName_i->item(0)->nodeValue, $ToUserName_i->item(0)->nodeValue, time() );

$return_errCode = $pc->encryptMsg($textTpl, $timestamp, $nonce, $encryptMsg_now);


nonce和timestamp都是微信get过来的数据,加密结果$return_errCode返回的也是0.但是就是不成功

1 回复

我也碰到了这个问题,请问你现在解决没有? 求分享经验

回到顶部