zoukankan      html  css  js  c++  java
  • EasyWeChat微信开放平台第三方平台接入

    目录
    实例化
    微信服务器推送事件
    预授权
    获取预授权 Code
    获取预授权 URL
    API 列表
    使用授权码换取公众号的接口调用凭据和授权信息
    获取授权方的公众号帐号基本信息
    获取授权方的选项设置信息
    设置授权方的选项信息
    调用授权方 API
    实例化
    <?php
    use EasyWeChatFoundationApplication;
    $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;
    微信服务器推送事件
    公众号第三方平台推送的有四个事件:

    授权成功(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 EasyWeChatOpenPlatformGuard;
    $server = $openPlatform->server;
    $server->setMessageHandler(function($event) use ($openPlatform) {
    // 事件类型常量定义在 EasyWeChatOpenPlatformGuard 类里
    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:

    // 直接跳转
    $response = $openPlatform->pre_auth->redirect('https://your-domain.com/callback');
    // 获取跳转的 URL
    $response->getTargetUrl();
    用户授权后会带上 auth_code 跳转到 https://your-domain.com/callback?auth_code=xxxxxxx

    API 列表
    使用授权码换取公众号的接口调用凭据和授权信息
    // 使用授权码换取公众号的接口调用凭据和授权信息
    // Optional: $authorizationCode 不传值时会自动获取 URL 中 auth_code 值
    $openPlatform->getAuthorizationInfo($authorizationCode = null);
    获取授权方的公众号帐号基本信息
    $openPlatform->getAuthorizerInfo($authorizerAppId);
    获取授权方的选项设置信息
    $openPlatform->getAuthorizerOption($authorizerAppId, $optionName);
    设置授权方的选项信息
    $openPlatform->setAuthorizerOption($authorizerAppId, $optionName, $optionValue);
    调用授权方 API
    通过该方法会获得一个 EasyWeChatFoundationApplication 实例。

    当调用授权方 API 后,SDK 内部会自动获取和刷新 AuthorizerAccessToken 有效期。
    所以开发者无需处理授权方公众号的接口调用凭据 AuthorizerAccessToken。

    // 传递 AuthorizerAppId 和 AuthorizerRefreshToken(注意不是 AuthorizerAccessToken)即可。
    $app = $openPlatform->createAuthorizerApplication($authorizerAppId, $authorizerRefreshToken);
    // 调用方式与普通调用一致。

  • 相关阅读:
    100%解决XP系统asp http500内部错误[转自XX博客]
    .net使用DotNetCharting控件生成报表统计图总结 (转地址)
    关于request取中文字符串变?的解决办法
    Delete删除大批量数据无响应的解决办法
    点击GridView模版列里的按钮取GridView当前被操作行的数据(转载)
    繁體字顯示問題
    寫博客過程中遇到的問題
    box model相關的API
    Buddhism常用術語
    靡不有初鮮克有終
  • 原文地址:https://www.cnblogs.com/bainiu/p/8022729.html
Copyright © 2011-2022 走看看