背景:微信小程序開發,準備使用模板消息做些事情,但是發現需要先在微信公衆平臺的開發——開發設置——消息推送做配置,然後我們後臺人員就開始各種配置,但是一到驗證token就報錯,很是鬱悶,然後各種排查,發現了最終原因,過程和代碼如下:
很多網站給出的服務器代碼如下:
//檢查簽名
public function checkSignature(Request $request) {
$signature = $_GET["signature"];
$timestamp = $_GET["timestamp"];
$nonce = $_GET["nonce"];
$echostr = $request->echostr;
$token = config('wechat.token');
$tmpArr = array($token, $timestamp, $nonce);
sort($tmpArr, SORT_STRING);
$tmpStr = implode($tmpArr);
$tmpStr = sha1($tmpStr);
if($tmpStr == $signature){
echo $echostr;
exit();
// return true;
}else{
return false;
}
}
以上代碼看上去沒問題,後臺查看日誌也是可以對應上的,但是一旦提交還是token校驗失敗,後臺各種查資料,最終發現需要使用ob_clean();最終代碼如下:
//檢查簽名
public function checkSignature(Request $request) {
$signature = $_GET["signature"];
$timestamp = $_GET["timestamp"];
$nonce = $_GET["nonce"];
$echostr = $request->echostr;
$token = config('wechat.token');
$tmpArr = array($token, $timestamp, $nonce);
sort($tmpArr, SORT_STRING);
$tmpStr = implode($tmpArr);
$tmpStr = sha1($tmpStr);
if($tmpStr == $signature){
ob_clean();
echo $echostr;
exit();
// return true;
}else{
return false;
}
}
以上記錄微信公衆平臺,模板消息推送第一步遇到的坑,後續接着記錄模板消息推送的步驟,希望對你有所幫助,歡迎留言和點贊,最好能關注一下。