微信開發:自動回復和多客服開發


定制的服務

對於微信服務號來說,最主要的功能是提供更好的服務。用戶更方便的操作,以及更快的反饋響應。自動回復功能,能夠大幅減少交互時間和客服工作量,在服務號推活動時尤其明顯。另外就是在多客服功能,這個就強大了,簡直就是一個企業qq服務號。目前還不要錢,不過我感覺未來可能會變成一個收費功能

使用場景

這兩個東西走一套流程,所以這里放在一起說了。

自動回復功能大致的使用情景是,用戶發送“流量”,服務號回復“親,送流量活動是xxxxxx: 快點擊【搶流量】 來參加。”

而多客服應該是自動回復的一個超集,如果自動回復處理不了,就要轉接到客服那里。

技術實現

從技術上講,這兩個功能是也一套邏輯。服務回復用戶消息,使用的是統一的格式,如果消息需要轉到多客服,需要給微信服務器回復類似這樣的消息體:

[java]  view plain copy print ? 在CODE上查看代碼片 派生到我的代碼片
 
  1. <xml>  
  2.     <ToUserName><![CDATA[touser]]></ToUserName>  
  3.     <FromUserName><![CDATA[fromuser]]></FromUserName>  
  4.     <CreateTime>1399197672</CreateTime>  
  5.     <MsgType><![CDATA[transfer_customer_service]]></MsgType>  
  6. </xml>  

官方文檔說明是這樣的:

如果公眾號處於開發模式,普通微信用戶向公眾號發消息時,微信服務器會先將消息POST到開發者填寫的url上,如果希望將消息轉發到多客服系統,則需要開發者在響應包中返回MsgTypetransfer_customer_service的消息,微信服務器收到響應后會把當次發送的消息轉發至多客服系統。具體可以參照這里

因此我做了這樣的設計,收到用戶輸入的消息后,首先在數據庫的表中檢查是否有匹配的應答,如果有則直接返回給用戶,否則,就返回類型為transfer_customer_service的消息,將其轉接到客服那邊。

實現

[java]  view plain copy print ? 在CODE上查看代碼片 派生到我的代碼片
 
  1. protected String getRawText(String key) {  
  2.     // 如果對應的EVENT_KEY有個相同的配置信息,就直接載入  
  3.     String tmpRaw = getRawByStateDao(key);  
  4.     if (tmpRaw != null && tmpRaw.length() > 0) {  
  5.         raw = tmpRaw;  
  6.     } else {  
  7.         raw = "";  
  8.     }  
  9.     return raw;  
  10. }  
  11.   
  12. String getRawByStateDao(String key) {  
  13.     //you should get data from db here  
  14. }  
  15.   
  16. public String getContextText(String key) {  
  17.     // 回復文本消息  
  18.     TextMessage textMessage = new TextMessage();  
  19.     textMessage.setToUserName(fromUserName);  
  20.     textMessage.setFromUserName(toUserName);  
  21.     textMessage.setCreateTime(new Date().getTime());  
  22.     String contextText = getRawText(key);  
  23.     if(contentText.length()>0){  
  24.         textMessage.setContent(contentText);  
  25.         textMessage.setMsgType("text");  
  26.     } else {  
  27.         textMessage.setMsgType("transfer_customer_service");  
  28.     }  
  29.       
  30.     // 將文本消息對象轉換成xml  
  31.     String respXml = MessageUtil.messageToXml(textMessage);  
  32.     return respXml;  
  33. }  

大致流程就是這樣,使用時調用getContextText函數,就返回一個包裝好的消息,走HTTP返還給鵝廠的服務器。

部署

在微信公眾號的后台選擇添加功能插件->多客服。添加好功能模塊后,添加一個客服工號,下載安裝客戶端。這個部署比較簡單,沒啥大坑。上線后拉着客服人員,給做個簡單的使用培訓就成了。

 

 

http://blog.csdn.net/fansongy/article/details/45394641


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM