qcloud / weapp-sdk
php sdk for qcloud weapp server
Installs: 10 456
Dependents: 2
Suggesters: 0
Security: 0
Stars: 252
Watchers: 42
Forks: 63
Open Issues: 6
Requires
- php: >=5.4.0
- qcloud/cos-sdk-v5: ^1.1
Requires (Dev)
- phpunit/phpunit: 4.8.*
- satooshi/php-coveralls: ~1.0
README
注意
Wafer PHP SDK 已经全面升级 2.0 以支持 Wafer2,如果您想查看 Wafer1 的 PHP SDK 文档,请点击这里。
介绍
Wafer 服务端 SDK 是腾讯云为微信小程序开发者提供的快速开发库,SDK 封装了以下功能供小程序开发者快速调用:
- 用户登录与验证
- 信道服务
- 图片上传
- 数据库
开发者只需要根据文档对 SDK 进行初始化配置,就可以获得以上能力。你还可以直接到腾讯云小程序控制台购买小程序解决方案,可以得到运行本示例所需的资源和服务,其中包括已部署好的相关程序、示例代码及自动下发的 SDK 配置文件 /etc/qcloud/sdk.config
。
安装
- 方法一(推荐):使用 PHP 包依赖管理工具
composer
执行以下命令安装
composer require qcloud/weapp-sdk
- 方法二: 直接下载本仓库
ZIP
包解压到项目目录中
API
参见 API 文档
使用
加载 SDK
// 方法一:使用 composer 加载 require_once 'path/to/vendor/autoload.php'; // 方法二:不使用 composer 加载 require_once 'path/to/qcloud/weapp-sdk/AutoLoader.php';
初始化 SDK 配置项
use \QCloud_WeApp_SDK\Conf as Config; Config::setup(array( 'appId' => '微信小程序 AppID', 'appSecret' => '微信小程序 AppSecret', 'useQcloudLogin' => false, 'mysql' => [ 'host' => 'localhost', 'port' => 3306, 'user' => 'root', 'pass' => '', 'db' => 'cAuth', 'char' => 'utf8mb4' ], 'cos' => [ 'region' => 'cn-south', 'fileBucket' => 'test', 'uploadFolder' => '' ], 'serverHost' => '1234567.qcloud.la', 'tunnelServerUrl' => '1234567.ws.qcloud.la', 'tunnelSignatureKey' => 'abcdefghijkl', 'qcloudAppId' => '121000000', 'qcloudSecretId' => 'ABCDEFG', 'qcloudSecretKey' => 'abcdefghijkl', 'wxMessageToken' => 'abcdefghijkl', ));
具体配置项说明请查看:API 文档。
处理用户登录请求
use \QCloud_WeApp_SDK\Auth\LoginService; use \QCloud_WeApp_SDK\Constants; $result = LoginService::login(); // $result => [ // loginState: 1 // 1表示登录成功,0表示登录失败 // userinfo: [] // 用户信息 // ] if ($result['loginState'] === Constants::S_AUTH) { // 微信用户信息:`$result['userinfo']['userinfo']` } else { // 登录失败原因:`$result['error']` }
检查请求登录态
use \QCloud_WeApp_SDK\Auth\LoginService; use \QCloud_WeApp_SDK\Constants; $result = LoginService::check(); // $result => [ // loginState: 1 // 1表示登录成功,0表示登录失败 // userinfo: [] // 用户信息 // ] if ($result['loginState'] === Constants::E_AUTH) { // 登录失败原因:`$result['error']` return; } // 使用微信用户信息(`$result['userinfo']['userinfo']`)处理其它业务逻辑 // ...
使用信道服务
业务在一个路由上(如 /tunnel
)提供信道服务,只需把该路由上的请求都交给 SDK 的信道服务处理即可。
use \QCloud_WeApp_SDK\Tunnel\TunnelService; use \QCloud_WeApp_SDK\Tunnel\ITunnelHandler; class TunnelHandler implements ITunnelHandler { // TODO: 传入登录的用户信息 public function __construct($userinfo) { } // TODO: 实现 onRequest 方法,处理信道连接请求 public function onRequest($tunnelId, $tunnelUrl) { } // TODO: 实现 onConnect 方法,处理信道连接事件 public function onConnect($tunnelId) { } // TODO: 实现 onMessage 方法,处理信道消息 public function onMessage($tunnelId, $type, $content) { } // TODO: 实现 onClose 方法,处理信道关闭事件 public function onClose($tunnelId) { } } $handler = new TunnelHandler(); TunnelService::handle($handler, array('checkLogin' => TRUE));
使用信道服务需要实现处理器,来获取处理信道的各种事件,具体可参考接口 ITunnelHandler 的 API 文档以及配套 Demo 中的 ChatTunnelHandler 的实现。
MySQL 操作类
SDK 在 PDO 的基础上完成了对增删改查等常用操作的封装,并默认会在初始化 SDK 的时候连接数据库,直接通过如下代码可以快速使用 MySQL 操作类:
**注意:**MySQL 操作类为静态类
use \QCloud_WeApp_SDK\Mysql\Mysql as DB; // 查询数据 $res = DB::row('cSessionInfo', ['*'], ['open_id' => '1234567890']); // 查询一条 $res = DB::select('cSessionInfo', ['*'], ['open_id' => '1234567890']); // 查询多条 // 插入数据 $res = DB::insert('cSessionInfo', ['open_id' => '1234567890']); // 更新数据 $res = DB::update('cSessionInfo', ['open_id' => '1234567890'], ['uuid' => '1']); // 删除数据 $res = DB::delete('cSessionInfo', ['open_id' => '1234567890']);
具体配置项说明请查看:API 文档。
COS 实例
SDK 导出了一个 COS V5 API 实例,可以使用以下代码获取:
use \QCloud_WeApp_SDK\Cos\CosAPI as Cos; $cosClient = Cos::getInstance(); $cosClient->upload('mybucket', 'test.txt', 'Hello World')->toArray();
更多关于 Cos::getInstance()
返回 COS 实例的 API,可以查看 COS PHP SDK V5 文档