PHP で WeChat パブリック アカウント イベント プッシュを実装する方法

王林
リリース: 2023-05-13 12:12:01
オリジナル
3592 人が閲覧しました

WeChat 公式アカウントは多くの企業にとってマーケティングやサービスの重要なチャネルとなっており、イベントプッシュ機能も非常に重要な部分です。この記事では、企業がユーザーとより適切に対話できるように、PHP で WeChat 公式アカウントのイベント プッシュを実装する方法を紹介します。

1. WeChat パブリック アカウント イベント プッシュの概要

WeChat パブリック アカウント イベント プッシュとは、WeChat サーバーがユーザーと一般ユーザー間の対話中に特定の種類のイベントをパブリック アカウントにアクティブにプッシュすることを指します。アカウントのフォロー、フォロー解除、メニューのクリックなど。公式アカウントは、これらのイベントを処理することで、より良いユーザー エクスペリエンスとサービスを提供できます。

2. PHP 環境の構築

WeChat パブリック アカウント イベント プッシュを実装する前に、まず PHP 開発環境をセットアップする必要があります。この記事では、具体的な手順を紹介する例として XAMPP を使用します:

  1. XAMPP をダウンロードしてインストールします (PHP7 バージョンを選択することをお勧めします);
  2. Apache サーバーと MySQL データベースを起動します;
  3. ブラウザに「localhost」と入力して、XAMPP のウェルカム ページに正常にアクセスできることを確認します。;
  4. XAMPP ルート ディレクトリの下に新しいディレクトリを作成し、「wechat」という名前を付けます。 WeChat 開発コードを保存するために使用されます。

3. WeChat パブリック アカウントの開発構成

PHP 開発環境をセットアップした後、PHP との対話を容易にするために WeChat パブリック アカウントを構成する必要があります。具体的な手順は次のとおりです。

  1. WeChat パブリック プラットフォームにログインし、[開発] - [基本構成] ページに入り、AppID と AppSecret を取得します。
  2. ページの下部にある「サーバー構成」オプションを見つけて、サーバーアドレス、トークン、その他の情報を入力し、「メッセージの受信」および「イベントの受信」機能を有効にし、保存して有効にします。
  3. サーバーアドレスの有効性を確認してください。 「サーバー構成」ページで「送信」をクリックすると、システムは入力されたサーバーアドレスに GET リクエストを送信し、構成要件に従って echostr を返します。正常に返された場合は、検証に合格したことを意味します。検証に失敗した場合は再設定が必要です。

4. PHP コードを記述する

WeChat パブリック アカウントの開発と構成が完了したら、関連するコードを PHP で記述することができます。コードの実装は 3 つの部分に分かれています。

  1. 受信したメッセージまたはイベントを取得して解析する

WeChat 公式アカウントは、受信したメッセージまたはイベントを公式アカウントで設定されたサーバー アドレスに送信します。 PHP はこのデータを受信して​​解析します。具体的な実装コードは次のとおりです。

$postdata = $GLOBALS['HTTP_RAW_POST_DATA'];  //获取POST数据
if (!empty($postdata)) {  //判断数据是否为空
    $postObj = simplexml_load_string($postdata, 'SimpleXMLElement', LIBXML_NOCDATA);  //将XML数据解析为对象
    $msgType = $postObj->MsgType;   //获取消息类型
    if ($msgType == 'event') {   //判断消息是否为事件
        $event = $postObj->Event;  //获取事件类型
        //处理事件
    } else {
        //处理消息
    }
}
ログイン後にコピー
  1. イベントとメッセージの処理

メッセージまたはイベントを受信した後、さまざまなタイプに応じて処理する必要があります。具体的な実装コードは次のとおりです。

(1) 対象となるイベントの処理:

if ($event == 'subscribe') {
    $toUser = $postObj->FromUserName;  //获取用户OpenID
    $fromUser = $postObj->ToUserName;  //获取公众号原始ID
    $time = time();  //获取当前时间戳
    $msgType = 'text';  //回复消息类型为文本
    $content = '欢迎关注我们的公众号!';  //回复消息内容
    $template = '<xml>
        <ToUserName><![CDATA[%s]]></ToUserName>
        <FromUserName><![CDATA[%s]]></FromUserName>
        <CreateTime>%s</CreateTime>
        <MsgType><![CDATA[%s]]></MsgType>
        <Content><![CDATA[%s]]></Content>
        </xml>';
    $info = sprintf($template, $toUser, $fromUser, $time, $msgType, $content);  //构造回复消息XML
    echo $info;  //返回回复消息给微信服务器
}
ログイン後にコピー

(2) テキスト メッセージの処理:

if ($msgType == 'text') {
    $toUser = $postObj->FromUserName;  //获取用户OpenID
    $fromUser = $postObj->ToUserName;  //获取公众号原始ID
    $time = time();  //获取当前时间戳
    $msgType = 'text';  //回复消息类型为文本
    $content = '您发送的是文本消息,我们会尽快回复您的问题。';  //回复消息内容
    $template = '<xml>
        <ToUserName><![CDATA[%s]]></ToUserName>
        <FromUserName><![CDATA[%s]]></FromUserName>
        <CreateTime>%s</CreateTime>
        <MsgType><![CDATA[%s]]></MsgType>
        <Content><![CDATA[%s]]></Content>
        </xml>';
    $info = sprintf($template, $toUser, $fromUser, $time, $msgType, $content);  //构造回复消息XML
    echo $info;  //返回回复消息给微信服务器
}
ログイン後にコピー
  1. 署名の生成

WeChat 公開アカウントの開発では、対話プロセスのセキュリティを確保するために署名を使用する必要があります。具体的な実装方法は次のとおりです:

$signature = $_GET["signature"];  //获取加密签名
$timestamp = $_GET["timestamp"];  //获取时间戳
$nonce = $_GET["nonce"];  //获取随机数
$token = "你在微信公众平台设置的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;
}
ログイン後にコピー

5. デプロイメントテスト

PHP コードを作成した後、テストのためにコードをサーバーにデプロイする必要があります。具体的な手順は次のとおりです。

  1. 記述したコードを XAMPP ディレクトリの下の "htdocs/wechat" ディレクトリにアップロードします。
  2. ブラウザに「localhost/wechat」と入力し、サーバー環境の展開が正しく完了していることを確認します。
  3. WeChatパブリックプラットフォーム上でイベントプッシュテストを実施し、受付や処理が正常かどうかを確認します。

6. 概要

上記の手順の実装により、WeChat 公式アカウントのイベント プッシュを PHP で正常に実装できます。企業はこの機能を使用してユーザーとの対話を改善し、ブランドの影響力とユーザー満足度を向上させることができます。

以上がPHP で WeChat パブリック アカウント イベント プッシュを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート