目錄
實例化
微信服務器推送事件
預受權
獲取預受權 Code
獲取預受權 URL
API 列表
使用受權碼換取公衆號的接口調用憑據和受權信息
獲取受權方的公衆號賬號基本信息
獲取受權方的選項設置信息
設置受權方的選項信息
調用受權方 API
實例化
<?php
use EasyWeChat\Foundation\Application;
$options = [
// ...
'open_platform' => [
'app_id' => 'component-app-id',
'secret' => 'component-app-secret',
'token' => 'component-token',
'aes_key' => 'component-aes-key'
],
// ...
];
$app = new Application($options);
$openPlatform = $app->open_platform;
微信服務器推送事件
公衆號第三方平臺推送的有四個事件:php
受權成功(authorized)
受權更新(updateauthorized)
受權取消(unauthorized)
推送 ComponentVerifyTicket(component_verify_ticket)
在公衆號第三方平臺建立審覈經過後,微信服務器會向其「受權事件接收URL」每隔 10 分鐘推送一次 component_verify_ticket。數據庫
SDK 內部已實現緩存 component_veirfy_ticket,開發者無需另行處理該事件。
其他事件須要開發者自行處理。緩存
注:須要在URL路由中寫上觸發代碼,而且註冊路由後須要等待微信服務器推送 component_verify_ticket,纔有權限進行其餘操做,不然報」Component verify ticket does not exists.」
Example:服務器
use EasyWeChat\OpenPlatform\Guard;
$server = $openPlatform->server;
$server->setMessageHandler(function($event) use ($openPlatform) {
// 事件類型常量定義在 \EasyWeChat\OpenPlatform\Guard 類裏
switch ($event->InfoType) {
case Guard::EVENT_AUTHORIZED: // 受權成功
$authorizationInfo = $openPlatform->getAuthorizationInfo($event->AuthorizationCode);
// 保存數據庫操做等...
case Guard::EVENT_UPDATE_AUTHORIZED: // 更新受權
// 更新數據庫操做等...
case Guard::EVENT_UNAUTHORIZED: // 受權取消
// 更新數據庫操做等...
}
});
$response = $server->serve();
$response->send(); // Laravel 裏請使用:return $response;
預受權
獲取預受權 Code
Example:微信
$openPlatform->pre_auth->getCode();
獲取預受權 URL
Example:app
// 直接跳轉
$response = $openPlatform->pre_auth->redirect('https://your-domain.com/callback');
// 獲取跳轉的 URL
$response->getTargetUrl();
用戶受權後會帶上 auth_code 跳轉到 https://your-domain.com/callback?auth_code=xxxxxxxdom
API 列表
使用受權碼換取公衆號的接口調用憑據和受權信息
// 使用受權碼換取公衆號的接口調用憑據和受權信息
// Optional: $authorizationCode 不傳值時會自動獲取 URL 中 auth_code 值
$openPlatform->getAuthorizationInfo($authorizationCode = null);
獲取受權方的公衆號賬號基本信息
$openPlatform->getAuthorizerInfo($authorizerAppId);
獲取受權方的選項設置信息
$openPlatform->getAuthorizerOption($authorizerAppId, $optionName);
設置受權方的選項信息
$openPlatform->setAuthorizerOption($authorizerAppId, $optionName, $optionValue);
調用受權方 API
經過該方法會得到一個 \EasyWeChat\Foundation\Application 實例。code
當調用受權方 API 後,SDK 內部會自動獲取和刷新 AuthorizerAccessToken 有效期。
因此開發者無需處理受權方公衆號的接口調用憑據 AuthorizerAccessToken。component
// 傳遞 AuthorizerAppId 和 AuthorizerRefreshToken(注意不是 AuthorizerAccessToken)便可。
$app = $openPlatform->createAuthorizerApplication($authorizerAppId, $authorizerRefreshToken);
// 調用方式與普通調用一致。orm