EasyWeChat微信開放平臺第三方平臺接入流程

授權流程技術說明:

https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/Authorization_Process_Technical_Description.html

第三方平臺的申請和上線流程:

https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/how_to_apply.html

 

在公衆號第三方平臺創建審覈通過後,微信服務器會向其“授權事件接收URL”每隔 10 分鐘推送一次 component_verify_ticket。

SDK 內部已實現緩存 component_veirfy_ticket,開發者無需另行處理該事件。
其餘事件需要開發者自行處理。

注:需要在URL路由中寫上觸發代碼,並且註冊路由後需要等待微信服務器推送 component_verify_ticket,纔有權限進行其他操作,否則報”Component verify ticket does not exists.”

2.路由配置

// 假設你的開放平臺第三方平臺設置的授權事件接收 URL 爲: https://aaaa.com/accept (其他事件推送同樣會推送到這個 URL)
Route::any('accept', function () { // 關閉 CSRF
    // config裏面的4個參數 都是開放平臺裏面的 拿過來就好了
    $config = [
        'app_id'   => 'xxxxx',
        'secret'   => 'xxxx',
        'token'    => 'xxxx',
        'aes_key'  => 'xxxx'
    ];
    $openPlatform = \EasyWeChat\Factory::openPlatform($config);
    return $openPlatform->server->serve(); // Done!
});

3.控制器接口

//授權

public function auth()
    {
        $re=$this->openPlatform->getPreAuthorizationUrl('https://aaaa.com/index');
        echo "<div style='margin:0 auto;'><h2><a href='{$re}'>授權</a></h2></div>";die;
    }

//回調

public function index()
    {
        $server = $this->openPlatform-->server;
        $server->setMessageHandler(function($event) use ($openPlatform) {
            dd($event);
// 事件類型常量定義在 \EasyWeChat\OpenPlatform\Guard 類裏
            switch ($event->InfoType) {
                case Guard::EVENT_AUTHORIZED: // 授權成功
                    $authorizationInfo = $openPlatform->getAuthorizationInfo($event->AuthorizationCode);
//此處省略。。。。。。


            }
        });
    }

注意:步驟2中的 路由配置提到線上10分鐘之後 訪問: https://aaaa.com/accept   點擊頁面中的授權 即可得到如下頁面

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章