WeChat パブリック アカウント PHP が情報を返さない場合はどうすればよいですか?
微信公众号php没有返回信息的解决办法:1、启用服务器模式;2、通过“define("TOKEN", "weixin");”验证token;3、新建一个index.php,接收微信返回的数据包并进行处理即可。
本教程操作环境:Windows7系统、PHP8.1版、Dell G3电脑。
微信公众号php没有返回信息怎么办?
微信公众号php返回信息的实现方法:
php微信公众号关注后 回复一条文本信息和一条图文信息
首先还是启用服务器模式 index.php
验证token 使用 启用服务器模式后 把这个index.php 改个名字
下一步:
<?php /** * wechat php test * update time: 20141008 */ //define your token define("TOKEN", "weixin"); $wechatObj = new wechatCallbackapiTest(); $wechatObj->valid(); class wechatCallbackapiTest { public function valid() { $echoStr = $_GET["echostr"]; //valid signature , option if($this->checkSignature()){ echo $echoStr; exit; } } public function responseMsg() { //get post data, May be due to the different environments //php7 弃用了这个函数 使用file_get_contents('php://input') //$postStr = $GLOBALS["HTTP_RAW_POST_DATA"]; $postStr = file_get_contents('php://input'); //extract post data if (!emptyempty($postStr)){ $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA); $fromUsername = $postObj->FromUserName; $toUsername = $postObj->ToUserName; $keyword = trim($postObj->Content); $time = time(); $textTpl = "<xml> <ToUserName><![CDATA[%s]]></ToUserName> <FromUserName><![CDATA[%s]]></FromUserName> <CreateTime>%s</CreateTime> <MsgType><![CDATA[%s]]></MsgType> <Content><![CDATA[%s]]></Content> <FuncFlag>0</FuncFlag> </xml>"; if(!emptyempty( $keyword )) { $msgType = "text"; $contentStr = "Welcome to wechat world!"; $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr); echo $resultStr; }else{ echo "Input something..."; } }else { echo ""; exit; } } private function checkSignature() { $signature = $_GET["signature"]; $timestamp = $_GET["timestamp"]; $nonce = $_GET["nonce"]; $token = TOKEN; $tmpArr = array($token, $timestamp, $nonce); sort($tmpArr, SORT_STRING); $tmpStr = implode( $tmpArr ); $tmpStr = sha1( $tmpStr ); if( $tmpStr == $signature ){ return true; } else{ return false; } } } ?>
第二步:新建一个index.php
接收微信返回的数据包 进行处理
<?php //给微信平台回复以防重复推送和报警 ob_clean();//可能在回复echo之前有输出内容,所以先用ob_clean()清空输出缓存区 echo "success"; session_start();//用于数据 error_reporting(0);//关闭php提示报错 date_default_timezone_set('PRC');//统一设置时区 //参数提取和数据查询及保存 //获得参数 $openid = $_GET['openid']; //接收微信平台推送过来的数据包 //get post data, May be due to the different environments $postStr = $GLOBALS["HTTP_RAW_POST_DATA"]; //extract post data if( !empty($postStr) ) { $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA); $toUserName = $postObj->ToUserName; $fromUserName = $postObj->FromUserName; $msgType = $postObj->MsgType; $event = $postObj->Event; $cardId = $postObj->CardId; $userCardCode = $postObj->UserCardCode; $eventKey = $postObj->EventKey; $Status = $postObj->Status; $Content = $postObj->Content; } //打开日志文件并写入 $date=date("Y-m-d");//获取当前日期 $TxtRes = fopen("log/".$date.".txt","a+"); $datetime=date("Y-m-d H:i:s");//获取当前时间 fwrite($TxtRes,"微信平台事件推送:"); fwrite($TxtRes,"datetime=");fwrite($TxtRes,$datetime); fwrite($TxtRes,",openid=");fwrite($TxtRes,$postStr); fwrite($TxtRes,",openid=");fwrite($TxtRes,$openid); fwrite($TxtRes,",toUserName=");fwrite($TxtRes,$toUserName); fwrite($TxtRes,",fromUserName=");fwrite($TxtRes,$fromUserName); fwrite($TxtRes,",msgType=");fwrite($TxtRes,$msgType); fwrite($TxtRes,",event=");fwrite($TxtRes,$event); fwrite($TxtRes,",cardId=");fwrite($TxtRes,$cardId); fwrite($TxtRes,",userCardCode=");fwrite($TxtRes,$userCardCode); fwrite($TxtRes,",eventKey=");fwrite($TxtRes,$eventKey); fwrite($TxtRes,",Status=");fwrite($TxtRes,$Status); fwrite($TxtRes,",Content=");fwrite($TxtRes,$Content); fwrite($TxtRes,"\r\n"); fclose($TxtRes);//关闭指针 //获取access_token $appid = ""; $secret = ""; $TOKEN_URL="https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$appid."&secret=".$secret; $json=file_get_contents($TOKEN_URL); //echo "<pre class="brush:php;toolbar:false">"; //print_r($json); //echo "
多图文和一条文本信息
多图文和一条文本信息
因为客服回复消息 只能是一条图文 不然会报错
/* * 多图文和一条文本信息 * 多图文和一条文本信息 * 因为客服回复消息 只能是一条图文 不然会报错 / //多图文信息 $time = time(); //$media_id='EFAbfNhphshVpCfNyhdT0dtUui-pLa_NvzSyPLuBb'; $title = "图文标题"; $url = "图文路劲"; $thumb_url ="封面图"; $digest ="说明"; $title1 = ""; $url1 = ""; $thumb_url1 =""; $digest1 = ""; $title2 = ""; $url2 = ""; $thumb_url2 =""; $digest2 = ""; . . . $title7 = "图文标题"; $url7 = "图文路劲"; $thumb_url7 = "封面图"; $digest7 = "说明"; $textTpl = "<xml> <ToUserName><![CDATA[%s]]></ToUserName> <FromUserName><![CDATA[%s]]></FromUserName> <CreateTime>%s</CreateTime> <MsgType><![CDATA[%s]]></MsgType> <ArticleCount><![CDATA[%s]]></ArticleCount> <Articles> <item> <Title><![CDATA[%s]]></Title> <Description><![CDATA[%s]]></Description> <PicUrl><![CDATA[%s]]></PicUrl> <Url><![CDATA[%s]]></Url> </item> <item> <Title><![CDATA[%s]]></Title> <Description><![CDATA[%s]]></Description> <PicUrl><![CDATA[%s]]></PicUrl> <Url><![CDATA[%s]]></Url> </item> <item> <Title><![CDATA[%s]]></Title> <Description><![CDATA[%s]]></Description> <PicUrl><![CDATA[%s]]></PicUrl> <Url><![CDATA[%s]]></Url> </item> <item> <Title><![CDATA[%s]]></Title> <Description><![CDATA[%s]]></Description> <PicUrl><![CDATA[%s]]></PicUrl> <Url><![CDATA[%s]]></Url> </item> <item> <Title><![CDATA[%s]]></Title> <Description><![CDATA[%s]]></Description> <PicUrl><![CDATA[%s]]></PicUrl> <Url><![CDATA[%s]]></Url> </item> <item> <Title><![CDATA[%s]]></Title> <Description><![CDATA[%s]]></Description> <PicUrl><![CDATA[%s]]></PicUrl> <Url><![CDATA[%s]]></Url> </item> <item> <Title><![CDATA[%s]]></Title> <Description><![CDATA[%s]]></Description> <PicUrl><![CDATA[%s]]></PicUrl> <Url><![CDATA[%s]]></Url> </item> <item> <Title><![CDATA[%s]]></Title> <Description><![CDATA[%s]]></Description> <PicUrl><![CDATA[%s]]></PicUrl> <Url><![CDATA[%s]]></Url> </item> </Articles> </xml>"; $resultStr = sprintf($textTpl,$fromUserName,$toUserName,$time,'news','8',$title,$digest,$thumb_url,$url,$title,$digest,$thumb_url,$url,$title,$digest,$thumb_url,$url,$title,$digest,$thumb_url,$url,$title,$digest,$thumb_url,$url,$title,$digest,$thumb_url,$url,$title,$digest,$thumb_url,$url,$title,$digest,$thumb_url,$url); echo $resultStr; //news 表示图文 //8 表示有几个图文 8个图文 后面就要写 $title,$digest,$thumb_url,$url 这样的数据 //xml 格式 里面的 <item>...</item> 有几个就写几个 $url = 'https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token='.$ACCESS_TOKEN; $data = '{ "touser":"'.$fromUserName.'", "msgtype":"text", "text": { "content":"这是文本内容" } }'; $result = https_request($url,$data);
推荐学习:《PHP视频教程》
以上がWeChat パブリック アカウント PHP が情報を返さない場合はどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

CakePHP はオープンソースの MVC フレームワークです。これにより、アプリケーションの開発、展開、保守がはるかに簡単になります。 CakePHP には、最も一般的なタスクの過負荷を軽減するためのライブラリが多数あります。

このチュートリアルでは、PHPを使用してXMLドキュメントを効率的に処理する方法を示しています。 XML(拡張可能なマークアップ言語)は、人間の読みやすさとマシン解析の両方に合わせて設計された多用途のテキストベースのマークアップ言語です。一般的にデータストレージに使用されます
