亚洲精品成人_精品成人一区_999视频在线播放_免费黄色在线_亚洲成人久久久_久久www免费视频

服務端

第三方平臺推送事件

公眾號第三方平臺推送的有四個事件:

如已經授權的公眾號、小程序再次進行授權,而未修改已授權的權限的話,是沒有相關事件推送的。

授權成功 authorized

?授權更新 updateauthorized

?授權取消 unauthorized

?VerifyTicket component_verify_ticket

SDK 默認會處理事件 component_verify_ticket ,并會緩存 verify_ticket 所以如果你暫時不需要處理其他事件,直接這樣使用即可:

EasySwoole 框架中配置服務端驗證,示例代碼如下:

<?php
namespace App\HttpController;

use EasySwoole\Http\AbstractInterface\Controller;
use EasySwoole\WeChat\Factory;

class Index extends Controller
{
    public function index()
    {
        $config = [
            // 開放平臺第三方平臺 APPID
            'appId' => 'wxefe41fdeexxxxxx', 

            // 開放平臺第三方平臺 Token
            'token' => 'dczmnau31ea9nzcnxxxxxxxxx',

            // 開放平臺第三方平臺 AES Key
            'aesKey' => 'easyswoole',

            // 開放平臺第三方平臺 Secret
            'secret' => 'your-AppSecret'
        ];

        // 開放平臺
        $openPlatform = Factory::openPlatform($config);

        $server = $openPlatform->server;

        /** @var \Psr\Http\Message\ServerRequestInterface $psr7Request */
        $psr7Request = $this->request();

        // $psr7esponse 是一個顯式實現了 PSR-7 的對象,用戶只需要處理該對象即可正確響應給微信
        $psr7Response = $server->serve($psr7Request);

        $this->response()->withStatus($psr7Response->getStatusCode());

        // PSR-7 的 Header 并不是單純的 k => v 結構
        foreach ($psr7Response->getHeaders() as $name => $values) {
            $this->response()->withHeader($name, implode(", ", $values));
        }
        $this->response()->write($psr7Response->getBody()->__toString());
    }
}

使用原生 Swoole 配置服務端驗證,示例代碼如下:

server.php 的實現形式下面就以原生 Swoolehttp_server 來啟動一個服務,偽代碼內容如下:

<?php

use EasySwoole\WeChat\Factory;

require_once __DIR__ . '/vendor/autoload.php';

$http = new Swoole\Http\Server('0.0.0.0', 9501);

$http->on('request', function (\Swoole\Http\Request $request, \Swoole\Http\Response $response) {

    $config = [
        // 開放平臺第三方平臺 APPID
        'appId' => 'wxefe41fdeexxxxxx', 

        // 開放平臺第三方平臺 Token
        'token' => 'dczmnau31ea9nzcnxxxxxxxxx',

        // 開放平臺第三方平臺 AES Key
        'aesKey' => 'easyswoole',

        // 開放平臺第三方平臺 Secret
        'secret' => 'your-AppSecret'
    ];

    // 開放平臺
    $openPlatform = \EasySwoole\WeChat\Factory::openPlatform($config);

    $server = $openPlatform->server;

    // 此處為實現了 \Psr\Http\Message\ServerRequestInterface 的 request 對象
    /** @var \Psr\Http\Message\ServerRequestInterface $psr7Request  */
    $psr7Request = new XxxReuest($request); // 偽代碼

    /**
     * @var \Psr\Http\Message\ResponseInterface $psr7Response
     * forceValidate() 表示啟用請求驗證,以確保請求來自微信發送。默認不啟用驗證
     * serve() 會解析本次請求后回調之前注冊的事件(包括 AES 解密和解析 XML)
     * serve() 接受一個顯式實現了 \Psr\Http\Message\ServerRequestInterface 的 request 對象
     */
    $psr7Response = $server->serve($psr7Request);

    /**
     * $replyResponse 是一個顯式實現了 PSR-7 的對象,用戶只需要處理該對象即可正確響應給微信
     * 下面是一個原生 swoole 的響應方法
     */
    $response->status($psr7Response->getStatusCode());

    /**
     * PSR-7 的 Header 并不是單純的 k => v 結構
     */
    foreach ($psr7Response->getHeaders() as $name => $values) {
        $response->header($name, implode(", ", $values));
    }

    // 將響應輸出到客戶端
    $response->write($psr7Response->getBody()->__toString());
});

$http->start();

自定義消息處理器

消息處理器詳細說明見 公眾號開發 - 服務端章節

<?php

use EasySwoole\WeChat\OpenPlatform\Server\Guard;
use EasySwoole\WeChat\Kernel\Messages\Message;

$server = $openPlatform->server;

// 處理授權成功事件
$server->push(function (\EasySwoole\WeChat\Kernel\Contracts\MessageInterface $message) {
    // ...
}, Guard::EVENT_AUTHORIZED);

// 處理授權更新事件
$server->push(function (\EasySwoole\WeChat\Kernel\Contracts\MessageInterface $message) {
    // ...
}, Guard::EVENT_UPDATE_AUTHORIZED);

// 處理授權取消事件
$server->push(function (\EasySwoole\WeChat\Kernel\Contracts\MessageInterface $message) {
    // ...
}, Guard::EVENT_UNAUTHORIZED);

使用示例(在 EasySwoole 框架中使用)

使用示例 1:在 App\HttpController\Router.php (即路由)中使用:

示例代碼如下:

<?php
namespace App\HttpController;

use EasySwoole\Http\AbstractInterface\AbstractRouter;
use EasySwoole\Http\Request;
use EasySwoole\Http\Response;
use EasySwoole\WeChat\OpenPlatform\Server\Guard;
use FastRoute\RouteCollector;

class Router extends AbstractRouter
{
    function initialize(RouteCollector $routeCollector)
    {
        // 假設你的開放平臺第三方平臺設置的授權事件接收 URL 為: https://easyswoole.wechat.com/openPlatform (其他事件推送同樣會推送到這個 URL)
        $routeCollector->post('/openPlatform', function (Request $request, Response $response) {

            // $openPlatform 為你實例化的開放平臺對象,此處省略實例化步驟
            // $psr7esponse 是一個顯式實現了 PSR-7 的對象,用戶只需要處理該對象即可正確響應給微信
            $psr7Response = $openPlatform->server->serve($request); // Done!

            $response->withStatus($psr7Response->getStatusCode());

            // PSR-7 的 Header 并不是單純的 k => v 結構
            foreach ($psr7Response->getHeaders() as $name => $values) {
                $response->withHeader($name, implode(", ", $values));
            }
            $response->write($psr7Response->getBody()->__toString());

            return false;
        });

        // 處理事件
        $routeCollector->post('/openPlatform', function (Request $request, Response $response) {

            // $openPlatform 為你實例化的開放平臺對象,此處省略實例化步驟
            $server = $openPlatform->server;

            // 處理授權成功事件,其他事件同理
            $server->push(function (\EasySwoole\WeChat\Kernel\Contracts\MessageInterface $message) {
                // $message 為微信推送的通知內容,不同事件不同內容,詳看微信官方文檔
                // 獲取授權公眾號 AppId: $message['AuthorizerAppid']
                // 獲取 AuthCode:$message['AuthorizationCode']
                // 然后進行業務處理,如存數據庫等...
            }, Guard::EVENT_AUTHORIZED);

            // $psr7esponse 是一個顯式實現了 PSR-7 的對象,用戶只需要處理該對象即可正確響應給微信
            $psr7Response = $server->serve($request); // Done!

            $response->withStatus($psr7Response->getStatusCode());

            // PSR-7 的 Header 并不是單純的 k => v 結構
            foreach ($psr7Response->getHeaders() as $name => $values) {
                $response->withHeader($name, implode(", ", $values));
            }
            $response->write($psr7Response->getBody()->__toString());

            return false;
        });
    }
}

使用示例 2:在 App\HttpController\Index.php (即控制器類)中使用,用戶可在自定義其他控制器中實現:

假設你的開放平臺第三方平臺設置的授權事件接收 URL 為: https://easyswoole.wechat.com/openPlatform (其他事件推送同樣會推送到這個 URL

示例代碼如下:

首先在 App\HttpController\Router.php 中定義路由:

<?php
namespace App\HttpController;

use EasySwoole\Http\AbstractInterface\AbstractRouter;
use FastRoute\RouteCollector;
use EasySwoole\WeChat\OpenPlatform\Server\Guard;

class Router extends AbstractRouter
{
    function initialize(RouteCollector $routeCollector)
    {
        // 假設你的開放平臺第三方平臺設置的授權事件接收 URL 為: https://easyswoole.wechat.com/openPlatform (其他事件推送同樣會推送到這個 URL)
        $routeCollector->post('/openPlatform', '/Index/openPlatform');
    }
}

然后在 App\HttpController\Index.php 控制器中處理事件:

<?php
namespace App\HttpController;

use EasySwoole\Http\AbstractInterface\Controller;
use EasySwoole\WeChat\OpenPlatform\Server\Guard;

class Index extends Controller
{
    public function openPlatform()
    {
        // $openPlatform 為你實例化的開放平臺對象,此處省略實例化步驟
        $server = $openPlatform->server;

        // 處理授權成功事件,其他事件同理
        $server->push(function (\EasySwoole\WeChat\Kernel\Contracts\MessageInterface $message) {
            // $message 為微信推送的通知內容,不同事件不同內容,詳看微信官方文檔
            // 獲取授權公眾號 AppId: $message['AuthorizerAppid']
            // 獲取 AuthCode:$message['AuthorizationCode']
            // 然后進行業務處理,如存數據庫等...
        }, Guard::EVENT_AUTHORIZED);

        /** @var \Psr\Http\Message\ServerRequestInterface $psr7Request */
        $psr7Request = $this->request();

        // $psr7esponse 是一個顯式實現了 PSR-7 的對象,用戶只需要處理該對象即可正確響應給微信
        $psr7Response = $server->serve($psr7Request);

        $this->response()->withStatus($psr7Response->getStatusCode());

        // PSR-7 的 Header 并不是單純的 k => v 結構
        foreach ($psr7Response->getHeaders() as $name => $values) {
            $this->response()->withHeader($name, implode(", ", $values));
        }
        $this->response()->write($psr7Response->getBody()->__toString());
    }
}
亚洲精品成人_精品成人一区_999视频在线播放_免费黄色在线_亚洲成人久久久_久久www免费视频
  • <kbd id="eqi2k"><code id="eqi2k"></code></kbd><cite id="eqi2k"><tbody id="eqi2k"></tbody></cite>
    国产婷婷精品| 亚洲一区中文| 日本不卡二区| 午夜精品区一区二区三| 欧美阿v一级看视频| 妖精视频成人观看www| 麻豆九一精品爱看视频在线观看免费| 国产经典一区二区三区| 免费在线观看91| 国产一区自拍视频| 欧美主播一区二区三区美女 久久精品人| 久久久久久久久久久久久久一区| 女女同性女同一区二区三区91| 中文字幕在线亚洲精品| 免费视频一区二区三区在线观看| 精品中文字幕一区| 亚洲精品1234| 久久精品第九区免费观看| 亚洲一本视频| 精品久久蜜桃| 亚洲精品1234| 神马影院我不卡午夜| 亚洲一区二区三区免费观看| 欧美一级片免费观看| 91久久极品少妇xxxxⅹ软件| 欧美在线视频二区| 中日韩视频在线观看| 欧美精品七区| 老色鬼久久亚洲一区二区| 欧美精品日韩| 欧美二区三区| 999热视频| 亚洲精品在线视频观看| 欧美日韩国产三区| 亚洲欧美日韩国产| 狠狠综合久久| 亚洲精品一区二区毛豆| 97超碰人人看人人 | 亚洲欧洲三级| 99久久综合狠狠综合久久止| 黑人中文字幕一区二区三区 | 亚洲午夜极品| 日本不卡一区| 国产精品日韩一区二区三区| 一本久道久久久| 欧美一区亚洲二区| 六十路精品视频| 国产精品v欧美精品∨日韩| 日韩视频一区二区三区在线播放免费观看 | 国产情侣久久| 欧美性色综合| 一本一道久久a久久综合精品| 国产尤物99| 成人情视频高清免费观看电影| 国产一区二区三区高清| 亚洲国产精品www| 国产精品二区影院| 四虎影院一区二区三区 | 欧美日韩亚洲一区三区| 免费亚洲一区二区| 国产私拍一区| 国产原创精品| 久久一区免费| 欧洲一区二区日韩在线视频观看免费| 国产欧美日韩综合一区在线观看| 久久激情视频| 91在线免费看片| 国产精品国产一区二区| 国产精品视频入口| 国产精品v欧美精品∨日韩| 国产精品一区视频| 免费日韩av片| 成人做爰66片免费看网站| 国产精品久久国产三级国电话系列| 蜜桃av噜噜一区二区三区| 国产精品腿扒开做爽爽爽挤奶网站| 999亚洲国产精| 一区二区三区偷拍| 91九色露脸| 国产一区二区中文字幕免费看| 国产一区二区三区四区五区加勒比| 久久99精品国产一区二区三区| 久久青青草原| 夜夜爽www精品| 激情久久久久| 久久精品综合一区| 久久偷看各类wc女厕嘘嘘偷窃| 日本一区不卡| 国产精品国产三级国产专区53| 激情一区二区| 久久综合伊人| 日韩av一区二区三区在线观看| 亚洲一区bb| 亚洲视频www| 国产伦精品一区二区三区四区视频| 欧美少妇一区| 黑人一区二区三区四区五区| 亚洲欧美日韩精品综合在线观看| 不卡一区二区三区四区五区| 欧美色图亚洲自拍| 精品91久久久久| 99久久精品免费看国产一区二区三区 | 天堂va久久久噜噜噜久久va| 欧美日韩成人| 久久久久久穴| 日韩av不卡播放| 一区二区精品| 久久亚洲午夜电影| 在线免费观看欧美| 精品乱子伦一区二区三区| 一区二区日本伦理| 久久久水蜜桃av免费网站| 神马影院一区二区| 久久精品日产第一区二区| 日韩在线电影一区| 欧美专区在线| 午夜欧美精品久久久久久久| 999在线观看免费大全电视剧| 亚洲资源在线网| 俄罗斯精品一区二区三区| 欧美日韩三区四区| 久久精品国产美女| 亚洲男人影院| 欧美日韩精品免费看| 国产一区二区三区无遮挡| 亚洲三级色网| 亚洲视频在线二区| 97国产超碰| 一区在线视频| 亚洲一区二区三区涩| 99久久久久国产精品免费| 欧美日韩午夜| 日本视频精品一区| 国产精品日韩一区二区| 99热这里只有精品8| 亚洲福利av| 精品乱色一区二区中文字幕| 中文一区二区| 欧美特黄一级| 午夜精品一区二区三区在线观看 | 国产日韩亚洲精品| 国产视频一区免费看| 欧美日韩视频| 伊人婷婷久久| 日产中文字幕在线精品一区| 国产高清不卡av| 91九色对白| 狼狼综合久久久久综合网| 国产欧美日韩亚洲一区二区三区| 欧美日韩免费| 欧美日韩精品不卡| 制服国产精品| 欧美一区国产一区| 欧美极品视频一区二区三区| 国产精品久久久对白| 国产欧美丝祙| 国产亚洲毛片| 亚洲精品在线视频观看| 亚洲国产一区二区三区高清 | 精品国产乱码久久久久久108| 久久精品99| 91pron在线| 97久久天天综合色天天综合色hd| 国产精品尤物| 久久久777| 老色鬼久久亚洲一区二区| 久久亚洲精选| 久久一区二区三区四区五区 | 一区二区冒白浆视频| 亚洲成人网上| 日韩精品另类天天更新| 日韩hmxxxx| 综合色婷婷一区二区亚洲欧美国产| 婷婷五月色综合| 亚洲精品久久区二区三区蜜桃臀| 午夜精品亚洲一区二区三区嫩草| 色涩成人影视在线播放| 日韩av一区二区三区在线| 亚洲精品高清视频| 欧美91精品| 99精品免费| 91原创国产| 欧洲久久久久久| 日韩欧美电影一区二区| 亚洲日本精品一区| 一区久久精品| 91久久伊人青青碰碰婷婷| 国产亚洲第一区| 亚洲精美视频| 亚洲人成久久| 粉嫩av一区二区三区免费观看| 另类欧美小说| 亚洲天堂成人| 99在线视频免费观看| 日产精品一线二线三线芒果| 黄色成人精品网站| 成人av电影免费| 亚洲国产另类久久久精品极度| 亚洲区欧美区| 国产精品视频免费一区二区三区|