亚洲精品成人_精品成人一区_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在线精品视频在线观看| 正在播放亚洲| 在线视频不卡一区二区| 精品免费视频123区| 久久综合中文| 免费在线成人| 国产精品久久亚洲7777| 韩日在线一区| 欧美午夜不卡| 欧美日韩国产精品一卡| 一本久道久久综合狠狠爱亚洲精品| 久久天堂国产精品| 国产女主播一区二区三区| 久久亚洲午夜电影| 97久久精品午夜一区二区| 亚洲欧美日韩国产| 久久国产精品毛片| 久久夜色精品| 91九色在线免费视频| 久久综合一区| 国产精品自拍首页| 蜜桃欧美视频| 欧美日韩一区二区三| 欧美午夜精品理论片a级大开眼界 欧美午夜精品久久久久免费视 | 亚洲一区二区四区| 欧美成人精品| 欧美另类综合| 精品二区视频| 久久久久久网| 好吊色欧美一区二区三区视频| 精品欧美一区二区精品久久| 九九九九九精品| 亚洲免费视频一区| 狠狠综合久久av一区二区老牛| 伊人久久婷婷| 蜜桃视频一区| 美乳视频一区二区| 欧美一区二区三区四区在线观看地址| 亚洲aⅴ天堂av在线电影软件| 欧美国产另类| 午夜在线视频一区二区区别| 丁香婷婷久久久综合精品国产 | 国产精品欧美久久| 99精品99久久久久久宅男| 久久综合色一本| 欧美日韩亚洲免费| 欧美专区在线| 欧美日韩亚洲一区二区三区在线观看| 一本一道久久a久久精品综合 | 国产精品二区在线| 国产精品日韩久久久| 国产欧美欧洲| 欧美黄色aaaa| 亚洲精品九九| 国产伦精品一区二区三区视频黑人| 蜜桃麻豆www久久国产精品| 欧美精品在线一区| 97netav| 日韩欧美一区二区三区四区| 亚洲国产导航| 黑人巨大精品欧美一区二区小视频| 一区二区三区四区欧美| 亚洲欧美春色| 一本久道久久综合狠狠爱亚洲精品| 一区二区高清| 日本一区二区在线视频观看| 日韩视频精品在线观看| 麻豆精品传媒视频| 在线亚洲成人| 日本视频一区在线观看| 亚洲一区二区精品在线| 少妇精品久久久久久久久久| 先锋亚洲精品| 欧美日本韩国在线| 国产伦精品一区二区三区视频免费| 午夜精品视频| 欧美日韩精品久久久免费观看| 亚洲欧洲一区二区天堂久久| 欧美日本亚洲| 99re在线国产| 亚洲精品在线视频观看| 少妇特黄a一区二区三区 | 亚洲人人精品| 亚洲高清视频一区| 成人av片网址| 国产三级精品在线不卡| 欧美精品一区二区三区久久久竹菊| 国产视频精品网| 美女网站久久| 99国产精品99久久久久久粉嫩| 一区二区三区四区视频在线| 精品999在线观看| 久久精品日韩欧美| 亚洲美女一区| 欧美人成网站| 亚洲人体一区| 欧美一区二区高清在线观看| 99国产在线| 久久久久久久久久码影片| 99亚洲视频| 日韩亚洲一区在线播放| 欧美日韩影院| 欧美精品99| 欧美韩日精品| 欧美日韩三级| 国产精品jizz在线观看美国| 一区二区三区免费看| 色一情一乱一伦一区二区三区| 精品一区二区三区日本| 国产精品一区二区三区精品| 成人免费在线看片| 91观看网站| 国产精品国产三级欧美二区| 久久精品伊人| 国产成人免费观看| 国产aⅴ精品一区二区三区黄| 久久亚洲精选| 国产精品播放| 精品麻豆av| 日韩精品久久久| 在线成人性视频| 欧美日韩精品一本二本三本| 黑人一区二区三区四区五区| 亚洲手机在线| 欧美色综合网| 国产欧美一级| 97se亚洲综合在线| 精品乱码一区二区三区| 欧美日韩一区二| 日韩wuma| 精品白丝av| 久久久久久夜| 久久久久久艹| 一区二区三视频| 亚洲精品视频一区二区三区 | 蜜桃91精品入口| 亚洲精品一区二区三区蜜桃久| 欧美一区二区三区四区夜夜大片| 欧美午夜一区| 久久xxxx精品视频| 国产女主播一区二区| 午夜精品一区二区三区四区| 欧美日韩在线精品一区二区三区| 亚洲人成人一区二区三区| 久久aⅴ国产紧身牛仔裤| 精品在线不卡| 午夜精品免费| 久久免费黄色| 图片区小说区区亚洲五月| 好看的日韩av电影| 超碰97在线播放| 伊人色综合久久天天五月婷| av成人激情| 久久亚洲高清| 亚洲人成网站在线观看播放| 国产精品国产一区二区| 一本一道久久a久久综合精品| 一区二区动漫| 欧美亚洲精品日韩| 亚洲麻豆av| 日本一区二区精品| 99在线|亚洲一区二区| 久久亚洲综合网| 宅男噜噜噜66一区二区| 欧美日韩在线不卡一区| 日韩亚洲国产欧美| 日韩电影大全在线观看| 国产一区二区久久久| 日韩精品国内| 老妇喷水一区二区三区| 在线国产伦理一区| av色综合网| 亚洲理伦在线| 中国成人亚色综合网站 | 亚洲精品欧美| 日韩wuma| 国产精品日韩二区| 中日韩男男gay无套| 亚洲不卡中文字幕| 成人在线看片| 99成人精品| 欧美福利一区| 日产国产精品精品a∨| 久久精品国产99精品国产亚洲性色| 亚洲精品成人a8198a| 国产精品视频入口| 国产精品一区二区a| 欧美精品一区二区视频| 欧美亚洲另类久久综合| 99久久国产免费免费| 99xxxx成人网| 狠狠噜噜久久| 中国一区二区三区| 欧美日韩国产精品一卡| 国产精品国产精品国产专区蜜臀ah| 一区二区三区|亚洲午夜| 亚洲7777| 日韩wuma| 日韩久久精品一区二区三区|