WeChatパブリックプラットフォームのテストアカウントを登録し、URLとトークンを設定しました
URL:***.***.com/weixin/weinxin.php
token:weixin
このURLは本物であり、アクセスできます外部ネットワークからは、Tencent が公式に提供する weixin.php を使用します
<?php/** * wechat php test *///define your tokendefine("TOKEN", "weixin");$wechatObj = new wechatCallbackapiTest();$wechatObj->valid();class wechatCallbackapiTest{ public function valid() { $echoStr = $_GET["echostr"]; //valid signature , option if($this->checkSignature()){ echo $echoStr; exit; } } private function checkSignature() { $signature = $_GET["signature"]; $timestamp = $_GET["timestamp"]; $nonce = $_GET["nonce"]; $token = TOKEN; $tmpArr = array($token, $timestamp, $nonce); sort($tmpArr); $tmpStr = implode( $tmpArr ); $tmpStr = sha1( $tmpStr ); if( $tmpStr == $signature ){ return true; }else{ return false; } }}?>
返信したい場合は、$wechatObj->valid(); をコメントアウトする必要があります。 $wechatObj ->responseMsg() に置き換えられました
この関数は WeChat の公式デモにあります
public function responseMsg()
{
//投稿データを取得します。環境が異なるためかもしれません
$postStr = $GLOBALS ["http_raw_post_data"; s]]>42a4b8d57eb0afadcf16b7a02c69caaf
246311df1688542638dc52b54a1a4c87%se660f1169ff44ea75c5a982fcb1cde61
42815c2206ae835d7fd68cb4ae21e4dfd3242fa0f72a59f12bbb2807edba61b7698463fc03844fbe5a9caafaa1ebd0b1 ![CDATA[%s]]>aa91fa7c40b1cd973268e154dae1a50e
c16e87311aa318186a2141a5b8ce55110fecc2d83bf66fbc799a88f710e0cd251"; " $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time 、$ msgtype、$ contentsstr);