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);
    // 调用方式与普通调用一致。

  • 相关阅读:
    程序集“xxx"中的类型"xxx"的方法“XXXX”没有实现
    关于C# json转object时报错:XXXXXXXXXX需要标记“"”,但找到“XX”。
    System.Reflection.Assembly.GetEntryAssembly()获取的为当前已加载的程序集
    MongoDB 模糊查询,及性能测试
    SignalR介绍与Asp.net,前台即时通信【转】
    mongodb常用命令【转】
    MongoDB update数据语法【转】
    Mongodb在Windows下安装及配置 【转】
    C#(asp.net)备份还原mssql数据库代码【转】
    小记,取GB2312汉字的首字母【转】
  • 原文地址:https://www.cnblogs.com/bainiu/p/8022729.html
Copyright © 2011-2022 走看看