背景: WeChat アプレット開発。何かを行うためにテンプレート メッセージを使用する準備ができていますが、WeChat パブリック プラットフォームの開発で構成する必要があることがわかりました - 開発設定 - メッセージ プッシュ。その後、バックグラウンド スタッフがさまざまな構成を開始しますが、検証が完了したらトークンがエラーを報告し、非常にイライラしました。さまざまな調査の結果、最終的な原因が判明しました。プロセスとコードは次のとおりです。
多くの Web サイトで提供されているサーバー コードは次のとおりです。
//检查签名
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;
}
}
上記のコードは問題ないようで、バックグラウンドでログを確認するために使用できますが、送信されるとトークンの検証が失敗し、バックグラウンドでさまざまなデータがチェックされ、最終的に使用する必要があることがわかります。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;
}
}
上記は、WeChat パブリック プラットフォームでのテンプレート メッセージ プッシュの最初のステップで遭遇した落とし穴を記録し、その後、テンプレート メッセージ プッシュのステップを記録するためにフォローアップします。お役に立てば幸いです。メッセージを残して「いいね!」を歓迎します. 注意した方が良いでしょう。