亚洲精品成人_精品成人一区_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>
    国产一级二级三级精品| 裸体丰满少妇做受久久99精品 | 日韩国产欧美精品| 久精品国产欧美| 国产精品免费一区二区三区四区| 91在线免费看片| 国产私拍一区| 水蜜桃一区二区| 欧美精品色网| 国产一区二区你懂的| 91成人免费在线观看| 久久久久欧美| 一区二区成人国产精品| 久久综合网络一区二区| 在线观看免费91| 一区二区三区成人精品| 国产精华一区| 黄色免费成人| 久草精品电影| 日韩亚洲视频| 欧美日韩高清免费| 宅男噜噜噜66一区二区| 久久成人资源| 夜夜爽99久久国产综合精品女不卡| 国产精品区一区| 欧美精品免费观看二区| 国产精品久久久久久久久久久久午夜片| 丝袜美腿玉足3d专区一区| 国产情侣久久| 手机看片福利永久国产日韩| 新67194成人永久网站| 色综合久久av| 99久久精品免费看国产四区| 欧美在线网站| 免费看国产精品一二区视频| 国产日韩一区二区| 亚洲精品在线免费| aa日韩免费精品视频一| 激情亚洲成人| 天堂资源在线亚洲视频| 99影视tv| 亚洲视频www| 夜夜爽99久久国产综合精品女不卡 | 亚洲激情综合| 日本在线观看一区二区三区| 国产精品乱看| 欧美日韩三区四区| 久久精品国产精品青草色艺| 国产日韩精品久久| 天堂一区二区三区| 久久免费高清| 亚洲欧洲日本mm| 一区精品在线| 欧美日韩国产综合在线| 久久综合图片| 欧美亚洲一级| 亚洲精品裸体| 激情一区二区三区| 欧美久久视频| 正在播放91九色| 欧美精品人人做人人爱视频| 999国产在线| 鲁大师影院一区二区三区| 亚洲小说欧美另类婷婷| 欧美精品播放| 欧美久久影院| 国产精品观看| 国产精品大全| 欧美精品二区三区四区免费看视频| 欧美一级爱爱| 无遮挡亚洲一区| 欧美日韩一区二区三| 久久96国产精品久久99软件| 国产精品theporn88| 不卡视频一区二区| 不卡一区二区三区视频| 5566中文字幕一区二区| 久久久久久亚洲精品杨幂换脸| 羞羞答答国产精品www一本| 国产一级久久| 久久视频一区| 国产成人av一区二区三区| 国产激情一区二区三区在线观看| caoporn国产精品免费公开| 国产 高清 精品 在线 a| 成人综合电影| 久久国产手机看片| 色一情一乱一伦一区二区三区丨 | 欧美三级网页| 亚洲高清视频一区二区| 日韩一区二区免费看| 国产美女在线精品免费观看| 久久一二三四| 久久国产精品99久久久久久丝袜 | 久久青青草原| 女人香蕉久久**毛片精品| 国内视频精品| 久久国产精品毛片| 国产日韩欧美综合精品| 区一区二区三区中文字幕| 亚洲高清在线播放| 伊人精品在线| 美女日韩在线中文字幕| 精品国产电影| 亚洲一区三区视频在线观看| 亚洲午夜一区| 高清视频在线观看一区| 日韩高清av| 亚洲激情一区二区三区| 久久亚洲国产精品一区二区 | 国产精品v欧美精品∨日韩| 日本最新一区二区三区视频观看| 自拍偷拍亚洲色图欧美| 中文一区在线| 蜜桃av久久久亚洲精品| 欧美日韩另类丝袜其他| 久久午夜电影| 亚洲精品一区二区三| 夜久久久久久| 久久五月天婷婷| 激情一区二区三区| 99久久免费国| 在线精品亚洲一区二区| 亚洲一区二区三区午夜| 六十路精品视频| 黄色国产精品| 国产视频在线观看一区| 国内精品嫩模av私拍在线观看| 97av影视网在线观看| 在线观看成人av| 久久亚洲精品欧美| 欧美freesex交免费视频| 久久精品女人的天堂av| 一区二区在线观看网站| 99热在线国产| 国产精品国产三级国产专区53| 成人黄色在线免费观看| 欧美精品免费观看二区| 精品国产乱码久久久久久88av | 亚洲第一精品影视| 精品一区二区三区免费毛片| 亚洲国产精品毛片| 日韩av图片| 老司机免费视频久久| 激情婷婷欧美| 色狠狠久久av五月综合| 久久久国产精品一区二区三区| 亚洲一区三区| 久久人人九九| 91中文字精品一区二区| 亚洲欧洲精品一区| 亚洲激情电影在线| 99在线高清视频在线播放| 亚洲私人影院| 性欧美大战久久久久久久免费观看| 久久久精彩视频| 亚洲久色影视| 欧美日韩国产三区| 日本一区二区三区视频免费看| 99re6在线| 亚洲欧美日韩视频二区| 欧美a级一区| 亚洲午夜精品国产| 国产综合欧美在线看| 亚洲永久免费精品| 悠悠资源网久久精品| 宅男av一区二区三区| 日韩久久精品一区二区三区| 久久精品日产第一区二区| 99在线精品视频在线观看| 女女同性女同一区二区三区91| 欧美久久久久久一卡四| 国产美女精品在线观看| 久久久久久久高潮| 午夜亚洲性色视频| 国产精品久久久一区二区三区 | 一本一道久久a久久综合精品 | 日本精品一区二区三区视频| 国产一区免费视频| 国产亚洲福利社区| 成人资源视频网站免费| 99久久综合狠狠综合久久止| 免费中文字幕日韩欧美| 国产精品推荐精品| 午夜亚洲视频| 看欧美日韩国产| 不卡视频一区二区三区| 国产伦精品一区二区三区四区免费 | 亚洲欧洲中文| 一本色道久久综合亚洲二区三区| 香蕉久久免费影视| 亚洲综合视频一区| 久久精品国产精品国产精品污 | 欧美高清一区二区| 中文精品视频一区二区在线观看| 婷婷亚洲婷婷综合色香五月| 欧美一区二区三区四区夜夜大片 | 成人欧美一区二区三区视频xxx| 玖玖视频精品| 久久国产精品-国产精品|