微信公众号多客服开发介绍

非开发者模式:如果公众号没有处于开发者模式,则只需要单纯的在 微信公众号后台进行设置就可以启用多客服功能

开发者模式:
用户发送消息时的2种情况:
         普通微信用户向公众号发消息时,微信服务器会先将消息POST到开发者填写的url上。
         开发者响应包有两种(普通消息响应包,带有启动多客服指令的包)
         如果希望将消息转发到多客服系统,需要开发者在响应包中返回MsgType为transfer_customer_service的消息,微信服务器收到响应后会把当次发送的消息以及之后一段            时间(2小时内)转发至多客服系统(系统会自动将用户分配给某个客服,也可指定客服)。
        交互的数据通过post,数据放在XML中
多客服流程如下:

1)用户发消息 

2)微信服务器接收并发送至开发者服务器(根据填写的url)      

3)开发者服务器处理信息并判断是否触发多客服           

4)  如果启用多客服返回一个MsgType为transfer_customer_service的消息给微信服务器     

5)   微信服务器将当前的信息以及该用户之后一段时间内(2个小时后自动断开,中间若客服关闭会话也断开) 

6) 信息转发至多客服系统  ,客服同该用户交流          

注意:多客服系统自动将该用户分配给某一在线客服(但也可以指定某一客服,需要在响应的的信息包中加上指定的客服信息,但如果该客服不在线,该消息不会转给其他客服,所以需要提前获取客服信息,通过get请求获取客服数据(json格式)

http请求方式: GET
https://api.weixin.qq.com/cgi-bin/customservice/getonlinekflist?access_token=ACCESS_TOKEN

返回说明

返回数据示例(正确时的JSON返回结果):
{
   "kf_online_list": [
       {
           "kf_account": "test1@test", 
           "status": 1, 
           "kf_id": "1001", 
           "auto_accept": 0, 
           "accepted_case": 1
       },
       {
           "kf_account": "test2@test", 
           "status": 1, 
           "kf_id": "1002", 
           "auto_accept": 0, 
           "accepted_case": 2
       }
   ]
}
多客服微信服务器和开发者服务器之间交互的3种数据包:
用户发送消息时微信服务器发给开发者的数据包:

               //开发者微信号
        //发消息用户的openid
 1348831860                       //消息创建时间
                   //消息类型
        //消息内容
 1234567890123456                           //消息id
 

开发者服务器返回数据的2种情况(普通,多客服)
1)启用多客服系统时返回给微信服务器的数据包:


              //发消息用户的openid
       //开发者微信号
     1399197672                   //消息创建时间
     
 

2)普通情况开发者服务器返回给微信服务器的数据包:

            //发消息用户的openid
        //开发者微信号
12345678                           //消息创建时间
           //消息类型
             //消息内容

//回复多客服消息例子
        private function transmitService($object)
       {
        $xmlTpl = "


%s

";
        $result = sprintf($xmlTpl, $object->FromUserName, $object->ToUserName, time());
        return $result;
}

你可能感兴趣的:(WeChat开发学习)