検索
ホームページphp教程php手册SpeedPHP WeChat インターフェイス拡張機能

この拡張機能は、SP と WeChat パブリック プラットフォーム間の接続を実現します。バージョン 1.0 では、現時点では、バインディング、情報の受信、および情報への返信という最も単純な機能のみが実装されています。

拡張設定方法:

$spConfig = array(
'モード' => 'デバッグ'
//拡張設定
, 'ext' => array(
//WeChat 拡張機能の設定
'spWeiXin' => array(
'TOKEN' => 'weixin' //WeChat通信キー、バックグラウンド設定
))
)
);
次に、制御メソッドで実行します:

$wx = spClass('spWeiXin'); $msg = $wx->run();
バインドされている場合は、WeChat で指定された echostr が直接出力され、プログラムは実行を終了します。メッセージを受信した場合、$msg は受信したメッセージの配列であり、キー名を WeChat 公式ドキュメントと比較できます。

/**

* SpeedPHP WeChat インターフェイス拡張機能

*

2013 年 8 月 15 日 08:51:23

* @著者 Lee(leeldy[AT]163.com)

* @バージョン 1.0

​*/

クラス spWeiXin {

//WeChatコミュニケーションキー

プライベート $token;

//WeChat 公開アカウント ID

プライベート $publicuserid;

//情報受信者

プライベート $touserid;

パブリック関数 __construct() {

$params = spExt('spWeiXin');

//設定パラメータを取得します

if (empty($params['TOKEN'])) {

spError('WeChat 公開アカウント通信キーが設定されていません!');

}

$this->token = $params['TOKEN'];

}

/**

* * WeChat インターフェースをバインド

* @return stringfalse

​​*/

パブリック関数bind() {

//ランダムな文字列

$echoStr = $_GET["echostr"];

//WeChat 暗号化署名

$signature = $_GET["署名"];

//署名のタイムスタンプ

$timestamp = $_GET["timestamp"];

//暗号化された乱数

$nonce = $_GET["nonce"];

/*

* 暗号化/検証プロセス:

1. トークン、タイムスタンプ、ノンスの 3 つのパラメータを辞書順に並べ替えます

2. sha1 暗号化用に 3 つのパラメータ文字列を 1 つの文字列に連結します

3. 開発者が取得した暗号化された文字列を署名と比較することで、リクエストが WeChat からのものであることを示すことができます

*/

$tmpArr = array($this->token, $timestamp, $nonce);

sort($tmpArr);

$_signature = sha1(implode($tmpArr));

if ($_signature != $signature) {

//署名が間違っています、falseを返します

$echoStr = false;

}

return $echoStr;

}

/**

     * 受信メッセージ、返信メッセージ数组

     * @return 配列

     */

    パブリック関数受信() {

        $raw = $this->php_fix_raw_query();

        $msg = false;

        if (!empty($raw)) {

            $msg = (配列) simplexml_load_string($GLOBALS['HTTP_RAW_POST_DATA'], 'SimpleXMLElement', LIBXML_NOCDATA);

            $this->publicuserid = $msg['ToUserName'];

            $this->touserid = $msg['FromUserName'];

        }

 

        $msg を返す;

    }

 

    /**

* POST

で提出された元データを取得します

* @author robotreply at gmail dot com (24-Jul-2009 08:17)

* @戻り文字列

​​*/

    プライベート関数 php_fix_raw_query() {

 

        // グローバル配列を試してください

        //试图从全局变量中获取

        if (isset($GLOBALS["HTTP_RAW_POST_DATA"])) {

            return $GLOBALS["HTTP_RAW_POST_DATA"];

        }

        // グローバル変数を試してください

        //试图从全局变量中获取

        if (isset($HTTP_RAW_POST_DATA)) {

            $HTTP_RAW_POST_DATA を返します;

        }

 

        $post = '';

        // ストリームを試してください

        //试图从流中获取

        if (!function_exists('file_get_contents')) {

            //php://input は enctype="multipart/form-data" では使用できません。

            $fp = fopen("php://input", "r");

            if ($fp) {

                while (!feof($fp)) {

                    $post = fread($fp, 1024);

                }

 

                fclose($fp);

            }

        } else {

            $post = file_get_contents("php://input");

        }

 

        $post を返す;

    }

 

    /**

* テキスト メッセージに返信

*

POST リクエストごとに、開発者は応答パッケージで特定の XML 構造を返します

*

メッセージに返信 (受信メッセージのテキスト、画像、音声、ビデオ、音楽、スター操作への返信をサポート)

*

5 秒以内に応答を受信しない場合、WeChat サーバーは切断されます。

* @param string $Content 返信メッセージの内容

* @return stringfalse

​​*/

    パブリック関数 ReplyText($Content) {

        $msg = false;

 

        if (!empty($Content)) {

            //作成時間 消息创建時間间

            $CreateTime = time();

 

            $msg =

    touserid}]]>

    publicuserid}]]>

    {$CreateTime}

   

    コンテンツ>

XML;

        }

 

        $msg を返す;

    }

 

    /**

* 音楽メッセージに返信

* @param string $Title タイトル

* @param string $Description 説明

* @param string $MusicUrl 音楽リンク

* @param string $HQMusicUrl 高品質の音楽リンク、WIFI 環境では、このリンクを使用して音楽を再生することが優先されます

* @return stringfalse

​​*/

    public function ReplyMusic($Title, $Description, $MusicUrl, $HQMusicUrl) {

        $msg = false;

 

        if (!empty($MusicUrl)) {

            //作成時間 消息创建時間间

            $CreateTime = time();

 

            $msg =

    touserid}]]>

    publicuserid}]]>

    {$CreateTime}

   

   

        タイトル>

        説明>

       

       

    音楽>

XML;

        }

 

        $msg を返す;

    }

 

    /**

*グラフィックメッセージに返信

* @param type $Articles 記事リスト array(array(Title,PicUrl,Url))

* @return stringfalse

​​*/

    public function ReplyNews($Articles) {

        $msg = false;

 

        $articlesStr = '';

        //図文メッセージ数、制限は10条以内

        $ArticleCount = 0;

        foreach ($Articles as $_art) {

            if (!empty($_art['Title']) && !empty($_art['PicUrl']) && !empty($_art['Url'])) {

                $ArticleCount++;

                $articlesStr .= "

   

        タイトル>

        説明>

       

       

    ";

            }

        }

 

        if (!empty($ArticleCount)) {

            //作成時間 消息创建時間间

            $CreateTime = time();

 

            $msg =

    touserid}]]>

    publicuserid}]]>

    {$CreateTime}

   

    {$ArticleCount}

    {$articlesStr}

    記事>

XML;

        }

 

        $msg を返す;

    }

 

    /**

*

を実行します

* @戻り値の型

​​*/

    関数 run() {

        // 微信サービス务器次请要求都市将署名、タイムスタンプ、ノンス 3 つのパラメータGET インターフェイス

        //echostr が存在するかどうかだけで、インターフェイス決定動作であるかどうかを判断できます

        if (isset($_GET['echostr'])) {

            //绑定

            exit($this->bind());

        } else {

            //收到情報

            return $this->receive();

        }

    }

 

}

 

?>



声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホット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ヘンタイを無料で生成します。

ホットツール

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール