评论

关于小程序接入客服消息的问题,今天亲测成功!

关于小程序接入客服消息的问题,今天亲测成功! 百度了好多,社区也问了好多,说法各样。有的说不用后台转发,有的说用第三方更好,百度也有很多朋友遇到这样的问题。

小程序的文档真的很多坑!
第一步,小程序登录后,配置消息推送的url,返回echostr,则接入成功!然后就可以把代码注释掉了,因为验证是GET你的url,而后面接入客服消息则是POST你的url。
第二步,小程序登录后,左边菜单栏有个【客服】,把自己的微信号添加进去当做客服。
前两步比较正常…
第三步,在url方法里做转发给微信内置的客服。
也是Post里面的返回。正常的话,返回‘success’就不会提示故障。
return “success”就可以了。
要接入客服,文档里这么说的,【消息转发到客服
如果公众号处于开发模式,普通微信用户向公众号发消息时,微信服务器会先将消息POST到开发者填写的url上,如果希望将消息转发到客服系统,则需要开发者在响应包中返回MsgType为transfer_customer_service的消息,微信服务器收到响应后会把当次发送的消息转发至客服系统。
<xml>
<ToUserName><![CDATA[touser]]></ToUserName>
<FromUserName><![CDATA[fromuser]]></FromUserName>
<CreateTime>1399197672</CreateTime>
<MsgType><![CDATA[transfer_customer_service]]></MsgType>
</xml>】文档地址:https://developers.weixin.qq.com/doc/offiaccount/Customer_Service/Forwarding_of_messages_to_service_center.html
不过这会需要多看一眼参数说明,参数说明,参数说明!!!!!
微信服务器向你的url,Post过来的数据是这样的【<xml>
<ToUserName><![CDATA[toUser]]></ToUserName>
<FromUserName><![CDATA[fromUser]]></FromUserName>
<CreateTime>1482048670</CreateTime>
<MsgType><![CDATA[text]]></MsgType>
<Content><![CDATA[this is a test]]></Content>
<MsgId>1234567890123456</MsgId>
</xml>】
同样需要多看一眼参数说明,参数说明,参数说明!!!!!

这里,你的return 里面需要怎么写?????很简单!
【return “<xml><ToUserName><![CDATA[” + FromUserName + “]]></ToUserName><FromUserName><![CDATA[” + ToUserName + “]]></FromUserName><CreateTime>” + CreateTime + “</CreateTime><MsgType><![CDATA[transfer_customer_service]]></MsgType></xml>”;】
把接收到的FromUserName,当做ToUserName返回。
把接收到的ToUserName,当做FromUserName返回。
CreateTime不变。
MsgType,返回<![CDATA[transfer_customer_service]]>
拼接好了,直接返回string类型即可!

最后一次编辑于  10-28  
点赞 1
收藏
评论

2 个评论

  • 。
    11-06

    请问一下为什么我的post请求的数据仍然是get的几个参数,并不是数据包

    11-06
    赞同
    回复 6
    • Sure
      Sure
      11-06
      参数名一样,值不一样的。
      11-06
      回复
    • 。
      11-06回复Sure
      谢谢回复,但是post请求应该传过来的数据都没有,应该有文本信息的
      11-06
      回复
    • Sure
      Sure
      11-06回复
      Post是没有参数传过来的。
                   StreamReader streamReader = new StreamReader(Request.InputStream);
                      String inputStr = streamReader.ReadToEnd();
      我这样读的,你参考下
      11-06
      回复
    • 。
      11-06回复Sure
      是的,post正常的request.getParameter("")取不到参数,大哥你是怎么做的能不能多来点代码
      11-06
      回复
    • 。
      11-06回复Sure
      多谢大哥找到问题了,确实微信过来的不能request.getParameter("")接的
      11-06
      回复
    查看更多(1)
  • Hot No Wind
    Hot No Wind
    10-22

    可以给个链接或者二维码体验一下吗?

    10-22
    赞同
    回复 6
    • Sure
      Sure
      10-22
      体验啥?
      10-22
      回复
    • Hot No Wind
      Hot No Wind
      10-22回复Sure
      你的这个是小程序的客服消息配置吗?
      10-22
      回复
    • Sure
      Sure
      10-22
      是的
      10-22
      回复
    • Hot No Wind
      Hot No Wind
      10-22回复Sure
      谢谢,请问你的小程序上线了吗?可以看看吗?
      10-22
      回复
    • Sure
      Sure
      10-22
      审核不过.....
      10-22
      回复
    查看更多(1)