この記事では主に、WeChat アクセス、WeChat ユーザー情報の取得、WeChat 支払い、JSSDK 構成パラメーターの取得など、WeChat パブリック アカウントの PHP バックエンド開発の例を紹介します。読者が WeChat 開発について主観的に理解していない場合は、まず WeChat パブリック プラットフォーム開発者ドキュメントを読んでから、より良い結果を得るためにこの記事を読むことをお勧めします。
WeChat 開発の完全な例は Github にまとめられています。yii2-wechat-demo を参照してください。 [ババオ粥ブログ]
1. app/config/params.php でトークンパラメータを設定します
return [ //微信接入 'wechat' =>[ 'token' => 'your token', ], ]; ログイン後にコピー |
2.設定するconfig/main.php でのルーティング
インターフェースモジュールは RESTful API を使用するため、ルーティングルールを定義する必要があります。
'urlManager' => [ 'enablePrettyUrl' => true, 'enableStrictParsing' => true, 'showScriptName' => false, 'rules' => [ [ 'class' => 'yii\rest\UrlRule', 'controller' => 'wechat', 'extraPatterns' => [ 'GET valid' => 'valid', ], ], ], ], ログイン後にコピー |
3. app/controllersに新しいWechatControllerを作成します
<?php namespace api\controllers; use Yii; use yii\rest\ActiveController; class WechatController extends ActiveController { public $modelClass = ''; public function actionValid() { $echoStr = $_GET["echostr"]; $signature = $_GET["signature"]; $timestamp = $_GET["timestamp"]; $nonce = $_GET["nonce"]; //valid signature , option if($this->checkSignature($signature,$timestamp,$nonce)){ echo $echoStr; } } private function checkSignature($signature,$timestamp,$nonce) { // you must define TOKEN by yourself $token = Yii::$app->params['wechat']['token']; if (!$token) { echo 'TOKEN is not defined!'; } else { $tmpArr = array($token, $timestamp, $nonce); // use SORT_STRING rule sort($tmpArr, SORT_STRING); $tmpStr = implode( $tmpArr ); $tmpStr = sha1( $tmpStr ); if( $tmpStr == $signature ){ return true; }else{ return false; } } } } ログイン後にコピー |
WeChat公式で設定するアカウントのバックグラウンド URL とトークンを入力し、検証のために送信します。
URL:http://app.demo.com/wechats/valid Token:your token ログイン後にコピー |
CREATE TABLE `wechat_user` ( `id` int(11) NOT NULL, `openid` varchar(255) COLLATE utf8_unicode_ci NOT NULL, `nickname` varchar(50) COLLATE utf8_unicode_ci NOT NULL COMMENT '微信昵称', `sex` tinyint(4) NOT NULL COMMENT '性别', `headimgurl` varchar(255) COLLATE utf8_unicode_ci NOT NULL COMMENT '头像', `country` varchar(50) COLLATE utf8_unicode_ci NOT NULL COMMENT '国家', `province` varchar(50) COLLATE utf8_unicode_ci NOT NULL COMMENT '省份', `city` varchar(50) COLLATE utf8_unicode_ci NOT NULL COMMENT '城市', `access_token` varchar(255) COLLATE utf8_unicode_ci NOT NULL, `refresh_token` varchar(255) COLLATE utf8_unicode_ci NOT NULL, `created_at` timestamp NULL DEFAULT CURRENT_TIMESTAMP ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; ALTER TABLE `wechat_user` ADD PRIMARY KEY (`id`); ログイン後にコピー |
1. ユーザー認証インターフェース: access_token、openid などを取得します。ユーザー情報を取得してデータベースに保存します
2. WeChat で送信された非同期支払い結果通知を受け取る |
3. Wechat 支払いクラス WechatPay.php |
| JSの設定パラメータを取得する-SDK |
つまり:
1. Wechat支払いクラスWechatPay.php |
| 2. 設定パラメータインターフェイスを取得します |
関連する推奨事項: |
Yii2.0 は WeChat パブリック アカウント バックエンド開発を実装します
以上がPHP バックグラウンド開発 WeChat パブリック アカウントの例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。