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

使用

加载 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 文档

详细示例

LICENSE

php qcloud sdk weapp_qcloud/相关推荐

  1. php qcloud sdk weapp_微信小程序腾讯云php后台解决方案

    微信小程序腾讯云php后台解决方案 微信小程序前段需要添加必要的文件以配合后端 (1)wafer2-client-sdk sdk提供了几种接口包括登陆,获取用户openid,图片上传等 (2)conf ...

  2. php qcloud sdk weapp_微信小程序源码+PHP后台

    [实例简介] 开源,可部署使用,学习好资料.包含微信小程序客户端还有后台PHP源码. [实例截图] [核心代码] 微信小程序源码PHP后台 └── 微信小程序源码+PHP后台 ├── __MACOSX ...

  3. 【中级】【后台】 微信小程序 - 腾讯云 - wafer2 - PHP - DEMO - 003 - 源码分析 - 03 - 腾讯后台初始化 和 CodeIgniter

    本文原创,欢迎转载,但是,务必保持原文并且给出原文链接. 前言: 本节对Wafer 服务端 SDK 是腾讯云为微信小程序开发者提供的快速开发库,SDK 封装了以下功能供小程序开发者快速调用的源码的初始 ...

  4. 【中级】 微信小程序 - 腾讯云 - wafer2 - PHP - DEMO - 003 - 源码分析 - 01 - 文件组成详细分析

    1 前言: 本文原创,欢迎转载,但是,务必保持原文并且给出原文链接. 微信小程序 - 腾讯云 - PHP - DEMO 是微信提供的一个微信小程序和腾讯云小程序云服务wafer 进行接口的例子. 本仓 ...

  5. 【基础问题】微信小程序 - 腾讯云 - 一站式方案 - PHP - wafer 和 wafer2的区别和wafer2的实践

    前言: 项目目前选择了腾讯小程序一站式部署,反而有点懵了,服务器怎么配置呢?好像接口没有,查询后,发现有的Demo有服务器配置有的没有,折腾观察了一会,原来有两个版本wafer.我把关键的地方高亮了, ...

  6. 养车记账本小程序开发教程

    前言 自微信6.5.3版本开始,小程序正式跟大家见面了.最近利用业余时间做了个小程序,命名"养车记账本".作为IT狗,经历了从注册开发者资质开始到正式上线的全过程,微信小程序官方  ...

  7. 养车记账本小程序开发实例

    前言 自微信6.5.3版本开始,小程序正式跟大家见面了.最近利用业余时间做了个小程序,命名"养车记账本".作为IT狗,经历了从注册开发者资质开始到正式上线的全过程,微信小程序官方  ...

  8. 硬盘累计通电时间存储在_在灾难期间保持通电

    硬盘累计通电时间存储在 Let's talk about power. No, not whether you can lift me over your head with one arm- ele ...

  9. 微信小程序 腾讯云 mysql 初始_微信小程序初始化怎么处理?小程序服务器域名配置...

    小程序初始化配置指引 假如您已成功创建了小程序资源,需要对现有的资源进行一些简单配置后,才能让小程序跑起来 未创建过资源的用户可以先在小程序控制台进行创建 1.配置微信小程序通信域名 首先我们在小程序 ...

  10. wafer php demo,GitHub - forging2012/wafer-php-server-demo: Wafer - 企业级微信小程序全栈方案...

    Wafer 服务端 Demo - PHP 本仓库是 Wafer 组成部分,提供 PHP 版本业务服务器示例.示例需要和微信小程序客户端示例配合一起使用. 运行示例 选择合适的方式部署 Wafer,并按 ...

最新文章

  1. vscode打造golang开发环境以及golang的debug单元测试
  2. (转)FFMPEG解码H264拼帧简解
  3. CVPR 2021 | 澳洲国立大学提出基于模型的图像风格迁移
  4. web desktop在线演示
  5. node 后台文章编辑器_我如何使用Node从报纸网站上刮掉7000篇文章
  6. vue-cli禁用eslint的方式
  7. 为什么感觉赚100万很难?
  8. 免费好用的十二个SCADA组态软件
  9. 两台电脑的文件共享方式
  10. [渝粤教育] 中国地质大学 大学语文 复习题
  11. AM系列备自投保护装置在广州中山大学附属 第一(南沙)医院配电工程中的应用
  12. C# 打印调试信息到DebugView
  13. Eclipse中文语言包安装和设置中文
  14. 梅森数 (10 分)
  15. '/',‘\\’与‘\’的区别
  16. maven-compiler-plugin如何快速打胖包和瘦包
  17. ①、HTML 简介实践学习
  18. Robo3T中批量操作数据
  19. 基于深度学习的文本摘要自动生成(自然语言处理)-本科毕业设计(附完整代码及数据集)
  20. Java微服务框架之Undertow

热门文章

  1. 分组交换(Packet Switching)和线路交换(Circuit Switching)
  2. java端口扫描器 demo_java端口扫描器
  3. Oracle触发器,删除一条数据的同时删除另一张表的关联数据
  4. 数据库课程设计矿大_中国矿业大学选课系统
  5. IDEA中maven仓库依赖报错:Cannot resolve com.example:product-server:0.0.1-SNAPSHOT
  6. Win10关闭安全中心的病毒和威胁实时保护
  7. Kotlin协成的简单理解
  8. python如何进行md5解密_python写一个md5解密器
  9. 解决学术打不开的方法
  10. 北漂小斌和你分享宋代建筑模数斗拱材分制的学习方法以及CAD案例图纸