検索
ホームページバックエンド開発PHPの問題WeChat パブリック アカウント PHP が情報を返さない場合はどうすればよいですか?

微信公众号php没有返回信息的解决办法:1、启用服务器模式;2、通过“define("TOKEN", "weixin");”验证token;3、新建一个index.php,接收微信返回的数据包并进行处理即可。

WeChat パブリック アカウント 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(&#39;php://input&#39;)
//$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
$postStr = file_get_contents(&#39;php://input&#39;);
//extract post data
if (!emptyempty($postStr)){
$postObj = simplexml_load_string($postStr, &#39;SimpleXMLElement&#39;, 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(&#39;PRC&#39;);//统一设置时区
//参数提取和数据查询及保存
//获得参数
$openid = $_GET[&#39;openid&#39;];
//接收微信平台推送过来的数据包
//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, &#39;SimpleXMLElement&#39;, 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 "
"; $result=json_decode($json,true); $ACCESS_TOKEN=$result['access_token']; // $ACCESS_TOKEN; //关注回复 if( $event=="subscribe" ) {     $textTpl = " %s 0 ";     $time = time(); //时间戳     $msgType = 'text'; //消息类型:文本     //         $contentStr = "这是文本信息";     //$contentStr = preg_replace("#\\\u([0-9a-f]+)#ie","iconv('UCS-2','UTF-8', pack('H4', '\\1'))",$contentStr);//对emoji unicode进行二进制pack并转utf8     $resultStr = sprintf($textTpl, $fromUserName, $toUserName, $time, $msgType, $contentStr);     echo $resultStr; //打开日志文件并写入     $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,",resultStr=");fwrite($TxtRes,$resultStr);     fwrite($TxtRes,"\r\n");     fclose($TxtRes);//关闭指针     function https_request($url,$data = null){         $curl = curl_init();         curl_setopt($curl, CURLOPT_URL, $url);         curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);         curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE);         if (!empty($data)){             curl_setopt($curl, CURLOPT_POST, 1);             curl_setopt($curl, CURLOPT_POSTFIELDS, $data);         }         curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);         $output = curl_exec($curl);         curl_close($curl);         return $output;     } //图文信息 //图文信息 id  调用微信接口 查询素材内容 就好     $media_id='EdJONlffwfqP8TJrKDcce-IuZKWaOKjX8tbiQknZeLw';     $url = 'https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token='.$ACCESS_TOKEN;     $data = '{         "touser":"'.$fromUserName.'",         "msgtype":"mpnews",         "mpnews":         {             "media_id":"'.$media_id.'"         }     }';      $result = https_request($url,$data);     //打开日志文件并写入     $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,",data=");fwrite($TxtRes,$data);     fwrite($TxtRes,"\r\n");     fwrite($TxtRes,",resultStr=");fwrite($TxtRes,$result);     fwrite($TxtRes,"\r\n");     fclose($TxtRes);//关闭指针 } ?>
  • 多图文和一条文本信息

  • 多图文和一条文本信息

  • 因为客服回复消息 只能是一条图文 不然会报错

WeChat パブリック アカウント PHP が情報を返さない場合はどうすればよいですか?

/*
* 多图文和一条文本信息
* 多图文和一条文本信息
* 因为客服回复消息 只能是一条图文 不然会报错
/

 //多图文信息
    $time  = time();

    //$media_id=&#39;EFAbfNhphshVpCfNyhdT0dtUui-pLa_NvzSyPLuBb&#39;;
    $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,&#39;news&#39;,&#39;8&#39;,$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 = &#39;https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=&#39;.$ACCESS_TOKEN;
    $data = &#39;{
        "touser":"&#39;.$fromUserName.&#39;",
        "msgtype":"text",
        "text":
        {
            "content":"这是文本内容"
        }
    }&#39;;
    $result = https_request($url,$data);

推荐学习:《PHP视频教程

以上がWeChat パブリック アカウント PHP が情報を返さない場合はどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
酸とベースデータベース:違いとそれぞれを使用するタイミング。酸とベースデータベース:違いとそれぞれを使用するタイミング。Mar 26, 2025 pm 04:19 PM

この記事では、酸とベースのデータベースモデルを比較し、その特性と適切なユースケースを詳述しています。酸は、財務およびeコマースアプリケーションに適したデータの整合性と一貫性を優先し、ベースは可用性に焦点を当て、

PHPセキュアファイルアップロード:ファイル関連の脆弱性の防止。PHPセキュアファイルアップロード:ファイル関連の脆弱性の防止。Mar 26, 2025 pm 04:18 PM

この記事では、コードインジェクションのような脆弱性を防ぐために、PHPファイルのアップロードを確保することについて説明します。ファイルタイプの検証、セキュアストレージ、およびアプリケーションセキュリティを強化するエラー処理に焦点を当てています。

PHP入力検証:ベストプラクティス。PHP入力検証:ベストプラクティス。Mar 26, 2025 pm 04:17 PM

記事では、組み込み関数、ホワイトリストアプローチ、サーバー側の検証などの手法に焦点を当てたセキュリティを強化するためのPHP入力検証のベストプラクティスについて説明します。

PHP APIレート制限:実装戦略。PHP APIレート制限:実装戦略。Mar 26, 2025 pm 04:16 PM

この記事では、Token BucketやLeaky BucketなどのアルゴリズムやSymfony/Rate-Limiterなどのライブラリを使用するなど、PHPでAPIレート制限を実装するための戦略について説明します。また、監視、動的に調整されたレートの制限、および手をカバーします

PHPパスワードハッシュ:password_hashおよびpassword_verify。PHPパスワードハッシュ:password_hashおよびpassword_verify。Mar 26, 2025 pm 04:15 PM

この記事では、パスワードを保護するためにPHPでpassword_hashとpassword_verifyを使用することの利点について説明します。主な議論は、これらの関数が自動塩の生成、強力なハッシュアルゴリズム、およびSecurを通じてパスワード保護を強化するということです

OWASPトップ10 PHP:共通の脆弱性を説明し、軽減します。OWASPトップ10 PHP:共通の脆弱性を説明し、軽減します。Mar 26, 2025 pm 04:13 PM

この記事では、PHPおよび緩和戦略におけるOWASPトップ10の脆弱性について説明します。重要な問題には、PHPアプリケーションを監視および保護するための推奨ツールを備えたインジェクション、認証の壊れ、XSSが含まれます。

PHP XSS予防:XSSから保護する方法。PHP XSS予防:XSSから保護する方法。Mar 26, 2025 pm 04:12 PM

この記事では、PHPでのXSS攻撃を防ぐための戦略について説明し、入力の消毒、出力エンコード、セキュリティを向上させるライブラリとフレームワークの使用に焦点を当てています。

PHPインターフェイスvs抽象クラス:それぞれを使用する時期。PHPインターフェイスvs抽象クラス:それぞれを使用する時期。Mar 26, 2025 pm 04:11 PM

この記事では、PHPでのインターフェイスと抽象クラスの使用について説明し、それぞれをいつ使用するかに焦点を当てています。インターフェイスは、無関係なクラスや複数の継承に適した、実装なしで契約を定義します。抽象クラスは共通の機能を提供します

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

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

ホットツール

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

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

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。