ホームページ  >  記事  >  WeChat アプレット  >  WeChat インターフェース開発の詳細な紹介

WeChat インターフェース開発の詳細な紹介

高洛峰
高洛峰オリジナル
2017-03-24 14:12:232294ブラウズ

作成プロセスには署名検証が必要で、これについては次のように説明します。

パブリック プラットフォームのユーザーが情報を送信した後、GET リクエストの形式で入力された URL をリクエストし、4 つのパラメーターを渡します:

* 署名 — WeChat 暗号化された署名

* タイムスタンプ — タイムスタンプ

* nonce — 乱数

* echostr — ランダムな文字列

開発者は、署名をチェックすることで URL アクセスの合法性を検証します。この GET リクエストが echostr パラメータの内容をそのまま返すとアクセスが有効となり、それ以外の場合はアクセスが失敗します。検証署名は、開発者によって入力されたトークン パラメーター、タイムスタンプ パラメーター、およびノンス パラメーターと結合されます。暗号化プロセスは次のとおりです。

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

* 3 つのパラメーターを結合します。文字列を 1 文字にまとめます 文字列は SHA1 で暗号化されています

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

コード:

<?  
        $signature = $_GET[&#39;signature&#39;];  
        $timestamp = $_GET[&#39;timestamp&#39;];  
        $nonce = $_GET[&#39;nonce&#39;];      
                  
        $token = TOKEN;  
        $tmpArr = array($token, $timestamp, $nonce);  
        sort($tmpArr);  
        $tmpStr = implode( $tmpArr );  
        $tmpStr = sha1( $tmpStr );  
          
        if( $tmpStr == $signature ){  
            return $_GET[&#39;echostr&#39;];  
        }else{  
            return false;  
        }  
?>

ただし、WeChat はデータの送信に json を使用しません:

そのため、XML データをオブジェクトとしてロードするには simplexml_load_string を使用する必要があります。また、POST メソッドが urlencode ではないことがわかりました。 HTTP_RAW_POST_DATA を設定すると、データを読み取ることができます。

ToUserName はメッセージ受信者の WeChat ID で、通常はパブリック プラットフォームの WeChat アカウントがメッセージ送信者の WeChat ID です。

以上がWeChat インターフェース開発の詳細な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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