ホームページ >WeChat アプレット >WeChatの開発 >WeChatパブリックプラットフォームはQRコードを開発し、メニューを作成します
1. 一時的な QR コードには有効期限があり、QR コードの生成後最大 7 日間 (つまり 604800 秒) に設定できますが、それよりも長い有効期限を生成することもできます。一時的な QR コードは主に、QR コードを永続的に保存する必要のないアカウント バインディングなどのビジネス シナリオで使用されます。 2. 永続的な QR コードには有効期限がありませんが、数は少ないです (現在最大 100,000)。永続的な QR コードは、主にアカウント バインドやユーザー ソース統計などのシナリオで使用されます。永久 QR コードの最大値は 100000 です (現在、パラメータは 1 ~ 100000 のみをサポートしています)。
/** * 获取永久二维码需要的ticket * @param $access_token access_token * @param $sceneId 场景值id * @return bool|mixed */ public function getQrticket($access_token, $sceneId) {$url = 'https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=' . $access_token; $raw = array( 'action_name' => 'QR_LIMIT_SCENE', 'action_info' => array( 'scene' => array( 'scene_id' => $sceneId ) ) ); $json = json_encode($raw); $res = $this->rawpost($url, $json); if ($res === false) { return false; } $qrres = json_decode($res, true); if (isset($qrres['errcode'])) { return false; } return $qrres; }
if (isset($msgObj->EventKey) && preg_match('/qrscene_(.*)/', $msgObj->EventKey, $scene)) { //扫码关注 switch ($scene[1]) { case AppConst::SCENE_ALCOHOL: $pushData['Title'] = '标题'; break; } $pushData['PicUrl'] = 'http://mmbiz.qpic.cn'; $pushData['Description'] = '描述!'; $pushData['Url'] = 'http://mp.weixin.qq.com'; $msg = $weixin->createRawTuWenMsg($fromUserName, $openId, array($pushData)); }2. メニューを作成します 1. カスタム メニューには最大 3 つの第 1 レベルのメニューを含めることができ、各第 1 レベルのメニューには最大 5 つの第 2 レベルのメニューを含めることができます。 2. 第 1 レベルのメニューには最大 4 文字、第 2 レベルのメニューには最大 7 文字の中国語を含めることができます。余分な部分は「...」に置き換えられます。 3. カスタム メニューを作成した後、WeChat クライアントのキャッシュにより、それが表示されるまでに 24 時間かかります。 テストするときは、公開アカウントのフォローを解除して再度フォローしてみると、作成後の効果を確認できます。クリックするとオンライン ドキュメントが表示されます。 カスタム メニュー インターフェイスでは、複数のタイプのボタンを実装できます。ここでは、次の 2 つのタイプを紹介します: 1. クリック: クリック プッシュ イベント ユーザーがクリック タイプ ボタンをクリックした後、WeChat サーバーはメッセージをプッシュします。メッセージ インターフェイスを介して入力します。イベント構造を開発者に提供し (メッセージ インターフェイス ガイドを参照)、開発者がボタンに入力したキー値を入力します。開発者は、カスタマイズされたキー値を介してユーザーと対話できます。 2. 表示: ジャンプ URL
ユーザーが表示タイプ ボタンをクリックすると、WeChat クライアントは開発者がボタンに入力した Web ページ URL を開きます。これを Web ページ認証インターフェイスと組み合わせて、ユーザーの基本情報を取得できます。ユーザーの基本情報を取得するための情報。
public function actionCreatemenu() { $token = $this->get('token'); $innerWeixinKey = WEIXIN_INNER_KEY; $trueToken = md5('menu' . $innerWeixinKey . 'menu'); if ($token != $trueToken) { $this->innerOutput(1, '无法通过请求认证'); } $weixin = new Weixin(); //请注意菜单中的中文一定要采用某种方编码 $menu = array( 'button' => array( array( 'name' => $this->encodeZH('菜单一'), 'sub_button' => array( array( 'type' => 'view', 'name' => $this->encodeZH('子菜单一'), 'key' => 'MENU_GENE_INDEX', 'url' => 'http://mp.weixin.qq.com/' ), array( 'type' => 'view', 'name' => $this->encodeZH('趣味文章'), 'key' => 'MENU_ARTICLE', 'url' => 'http://mp.weixin.qq.com' ), array( 'type' => 'view', 'name' => $this->encodeZH('产品预告'), 'key' => 'MENU_PRODUCT', 'url' => 'http://mp.weixin.qq.com/' ) ) ), array( 'name' => $this->encodeZH('产品流程'), 'sub_button' => array( array( 'type' => 'view', 'name' => $this->encodeZH('武松打虎'), 'key' => 'MENU_GAME', 'url' => 'xxxx' ), array( 'type' => 'view', 'name' => $this->encodeZH('产品详情'), 'key' => 'MENU_PRODUCT_DETAIL', 'url' => 'http://mp.weixin.qq.com/' ) ) ) ) ); $menuMsg = $this->decodeZHMsg(json_encode($menu)); $accessMongo = new WeixinAccessToken(); $access_token = $accessMongo->getAccessToken(); if (!$access_token) { $this->innerOutput(2, '无法获取access_token'); } $weixin = new Weixin(); $res = $weixin->customMenu($menuMsg, $access_token); if (!$res) { $this->innerOutput(3, '菜单创建失败'); } $this->innerOutput(0, '菜单创建成功'); }1. コードの先頭で WEIXIN_INNER_KEY を使用して簡単な検証を行うことができます2. 開始組織メニューの構造には名前、タイプなどが必要です3.通常のトークン、ここで WeChat を参照できます。 パブリック プラットフォームは、access_token とそれらを取得するためのログを開発します。 4. 上記のコードには、エンコードに使用される encodeZH と decodeZHMsg という 2 つのメソッドがあることに注意してください。
/** * 针对中文字符串编码 * @param $name * @return string */ private function encodeZH($name) { return '[@' . base64_encode($name) . '@]'; } /** * 针对消息中存在中文编码过的串进行解码 * @param $msg * @return mixed */ private function decodeZHMsg($msg) { return preg_replace_callback('/\[\@(.+?)\@\]/', function ($match) { return base64_decode($match[1]); }, $msg); }デモのダウンロード:github アドレス: https://github.com/pwstrick/weixin_demoCSDN アドレス: http://download.csdn.net/detail/loneleaf1/9045731その他 WeChat パブリック プラットフォーム開発QR コードやメニュー作成に関する関連記事は、PHP 中国語 Web サイトに注目してください。