現在微信開發用的人越來越多了,在次期間,客服接口消息也越來越廣泛。問題也出現了很多,此次主要針對微信客服接口消息重復三條提出解決方法。
1.進行redis存儲,將第一次回復的消息用redis保存起來,在第二次請求時,與之前的redis進行比較。如果是就echo "success";exit;(親測有效)注意:為了讓每次回復的消息要有一個區分,必須保存一個唯一值。
2.這里是我用的方法,網上其實也有。沒打注釋,所以我去網上看了一下,就是用ob函數,具體代碼如下
ignore_user_abort(true); //設置與客戶機斷開是否會終止腳本的執行
ob_start(); //緩存開始
$content="xxx。";
$resultStr = sprintf($textTpl,$fromUsername,$toUsername,$time,$content);
echo $resultStr; //被動消息
header('Connection: close'); //這個表示我也不太懂,搜集了一點資料 分享給大家
/*作用就是減少TCP握手次數,開始的三次握手后就可以進行多次HTTP正文請求,可以長時間的保持,也就是加載一個Document的時候,即使有大量的圖片等,也只用進行一次握手,這樣就大大的減少了傳輸量了。keep-alive就表示之前已經進行過握手,可以直接進行HTTP正文傳輸,close表示結束,我接下來沒有東西了,可以進行四次握手結束這個TCP連接了*/
header('Content-Length: ' . ob_get_length());
ob_end_flush(); //沖刷出(送出)輸出緩沖區內容並關閉緩沖
ob_flush();
flush();
//其實說白了就一句話 就是等你程序運行完以后 它才會輸出。
//下面就是客服消息
//代碼在我上一篇中有介紹
//mysql 操作
//api 調用
//回復客服消息