收藏
回答

API文档没有更新?服务器返回什么字符串,客服功能才正常?

问题模块
API和组件

开发客服功能,我的服务器已经确认收到了用户发送过来的信息,我的服务器按照API文档要求,返回给微信服务器字符串'success‘,但是2秒内,用户在微信收到提示:“该小程序客服暂时无法提供服务,请稍后再试”。


到底我应该返回什么字符串???



public function index()

    {

     

         ..............


        echo 'success';

    }


再审核不通过请告诉我哪个词违规了

最后一次编辑于  2017-06-17  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏投诉关注问题回答

19 个回答

  • ekong
    ekong
    2017-06-17

    呵呵,拿到access_token(或在其有效期内)后,你要把想发给用户的消息组装成规定的格式(以XML或JSON的格式)发给微信服务器啊,然后微信服务器就会负责把它发给用户嘛,你只是发个success给微信服务器,那当然微信服务器不知道你到底要给用户发个啥了嘛,这个过程与微信公众号的消息回复是一样的

    2017-06-17
    赞同
    回复
  • 影楼云选片 2019跨平台在线选片
    影楼云选片 2019跨平台在线选片
    2017-06-17

    这种情况一般就是bom头引起的,检查一下你的文件,包括所有包含的文件都要检查有没有bom头。

    2017-06-17
    赞同
    回复
  • 热血青年·孙
    热血青年·孙
    2017-06-17

    他要你最后返回的字符串并不是 success。而是他传给你的参数 “echostr”。

    2017-06-17
    赞同
    回复
  • 🙂sheldor
    🙂sheldor
    2017-06-18

    echostr 是验证服务器的时候才有的,验证完毕后,这个参数就没有意义了

    我的是已经验证完毕,接受客户的客服信息时候产生的问题

    2017-06-18
    赞同
    回复
  • 🙂sheldor
    🙂sheldor
    2017-06-18

    ekong:

    你说的是小程序回复用户的咨询信息给客户,


    流程分为两步骤:

    用户发送客服信息-->微信服务器-->小程序服务器(返回确认收到信息)-->微信服务器-->微信的客服信息界面(正常)


    小程序服务器使用access_token回复真正的回复信息-->微信服务器-->用户微信



    两个步骤是异步的。


    现在问题是第一步,要微信服务器确认小程序服务器已经收到信息


    你说的是第二步

    2017-06-18
    赞同
    回复
  • 🙂sheldor
    🙂sheldor
    2017-06-18

    TiHeaveN:

    你说的bom头是??不懂,请详解 谢谢

    2017-06-18
    赞同
    回复
  • 影楼云选片 2019跨平台在线选片
    影楼云选片 2019跨平台在线选片
    2017-06-18

    百度一下bom头就知道了

    2017-06-18
    赞同
    回复
  • ekong
    ekong
    2017-06-18

    官方文档的写法,导致了理解上的偏差,也就是这段话引起了误解吧:“服务器收到请求必须做出下述回复,这样微信服务器才不会对此作任何处理,并且不会发起重试,否则,将出现严重的错误提示。”。实际上,要结合官方文档前面的这段话来理解:“当用户在客服会话发送消息(或进行某些特定的用户操作引发的事件推送时),微信服务器会将消息(或事件)的数据包(JSON或者XML格式)POST请求开发者填写的URL。开发者收到请求后可以使用发送客服消息接口进行异步回复。”。也就是说,微信服务器在将消息的数据包发送(POST请求)到你事先填写的URL地址以后,没有在5秒钟内成功发送客服消息,才要求处理异常情况,也就是官方文档的这句话了:“服务器收到请求必须做出下述回复”,而其实,你如果基本上能保证在5秒内将消息回复给微信服务器,根本就不用理会“服务器收到请求必须做出下述回复”这句话了。

    我有个小程序“文言宝典”,一个小工具,就用了客服消息功能,可试试看看。

    2017-06-18
    赞同
    回复
  • 🙂sheldor
    🙂sheldor
    2017-06-19

    ekong:

    我使用access_token给服务器返回信息:


    public function kf($paras){

    $url = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=".$this->getNewToken();

    $data = [

    "touser"=>$paras->openid,

    "msgtype"=>"text",

    "text"=>["content"=>"success"],

    ];

    $res = $this->httpPost($url, json_encode($data));

    echo $res;

    }



    用户收到字符串回复 sucess

    但是用户界面那里依然提示 “小程序暂时无法提供服务”,


    问题就是 API文档“客服信息”->"接受消息和通知" 里面确认客服信息接受成功   

    发给微信服务器的"success" 或者空 的字段应该怎么拼?




    2017-06-19
    赞同
    回复
  • 🙂sheldor
    🙂sheldor
    2017-06-19

    服务器收到请求必须做出下述回复,这样微信服务器才不会对此作任何处理,并且不会发起重试,否则,将出现严重的错误提示。详见下面说明:

    1、直接回复success(推荐方式)
    2、直接回复空串(指字节长度为0的空字符串,而不是结构体中content字段的内容为空)


    这个到底该怎么回,格式是什么样的?


    用access_token也不行,直接回复也不行

    2017-06-19
    赞同
    回复