接口文档

1. 接口概述

系统提供两类主要接口:

  • 微信公众号/小程序消息接口:处理微信服务器推送的消息和事件
  • 业务数据API接口:供前端页面调用的业务数据接口

2. 微信消息接口 (api.php)

2.1 接口说明

这是微信服务器推送消息的统一入口接口。

接口地址/api.php

请求方式:GET/POST

2.2 接口验证 (GET请求)

用于验证服务器地址的有效性。

请求参数

参数名 类型 必填 说明
signature string 微信加密签名
timestamp string 时间戳
nonce string 随机数
echostr string 随机字符串

响应:直接返回 echostr 参数内容

2.3 消息接收 (POST请求)

接收微信服务器推送的各类消息和事件。

请求参数:XML格式的消息体

响应:XML格式的响应消息

2.4 支持的消息类型

消息类型 说明
text 文本消息
image 图片消息
voice 语音消息
video 视频消息
shortvideo 小视频消息
location 地理位置消息
link 链接消息

2.5 支持的事件类型

事件类型 说明
subscribe 关注事件
unsubscribe 取消关注事件
SCAN 扫描二维码事件
LOCATION 上报地理位置事件
CLICK 自定义菜单点击事件
VIEW 跳转链接事件
TEMPLATESENDJOBFINISH 模板消息发送完成

2.6 消息处理流程

1. 接收微信POST请求
2. 验证签名有效性
3. 解析XML消息体
4. 判断消息/事件类型
5. 匹配关键词规则
6. 调用对应模块处理
7. 生成响应消息
8. 返回给微信服务器

3. 业务API接口

3.1 基础数据接口

3.1.1 获取用户列表

接口地址/api/basedata/getuserlist.php

请求方式:GET/POST

请求参数

参数名 类型 必填 说明
i int 公众号/小程序ID

响应示例

{
  "status": 1,
  "message": "success",
  "data": [
    {
      "uid": 1,
      "nickname": "张三",
      "avatar": "http://example.com/avatar.jpg"
    }
  ]
}

3.1.2 获取部门列表

接口地址/api/basedata/getdeptlist.php

请求方式:GET/POST

请求参数

参数名 类型 必填 说明
i int 公众号/小程序ID

4. 内部函数接口 (框架核心函数)

4.1 数据库操作函数

4.1.1 pdo_get - 获取单条记录

/**
 * 获取单条记录
 * @param string $tablename 表名 (不含前缀)
 * @param array $condition 查询条件
 * @param string $fields 字段名
 * @return array/false
 */
pdo_get($tablename, $condition = array(), $fields = '*');

// 示例
$user = pdo_get('users', array('uid' => 1), 'username,email');

4.1.2 pdo_fetch - 查询单条记录

/**
 * 执行SQL查询单条记录
 * @param string $sql SQL语句
 * @param array $params 参数
 * @return array/false
 */
pdo_fetch($sql, $params = array());

// 示例
$user = pdo_fetch("SELECT * FROM " . tablename('users') . " WHERE uid = :uid", array(':uid' => 1));

4.1.3 pdo_fetchall - 查询多条记录

/**
 * 执行SQL查询多条记录
 * @param string $sql SQL语句
 * @param array $params 参数
 * @param string $keyfield 用字段做键名
 * @return array
 */
pdo_fetchall($sql, $params = array(), $keyfield = '');

// 示例
$users = pdo_fetchall("SELECT * FROM " . tablename('users'));

4.1.4 pdo_insert - 插入记录

/**
 * 插入记录
 * @param string $tablename 表名
 * @param array $data 数据数组
 * @param boolean $replace 是否REPLACE
 * @return int/boolean
 */
pdo_insert($tablename, $data = array(), $replace = false);

// 示例
$data = array('username' => 'test', 'email' => 'test@example.com');
$new_id = pdo_insert('users', $data);

4.1.5 pdo_update - 更新记录

/**
 * 更新记录
 * @param string $tablename 表名
 * @param array $data 数据数组
 * @param array $condition 条件
 * @param int $limit 限制条数
 * @return int
 */
pdo_update($tablename, $data = array(), $condition = array(), $limit = 0);

// 示例
pdo_update('users', array('email' => 'new@example.com'), array('uid' => 1));

4.1.6 pdo_delete - 删除记录

/**
 * 删除记录
 * @param string $tablename 表名
 * @param array $condition 条件
 * @param int $limit 限制条数
 * @return int
 */
pdo_delete($tablename, $condition = array(), $limit = 0);

// 示例
pdo_delete('users', array('uid' => 1));

4.1.7 tablename - 获取表全名

/**
 * 获取带前缀的表名
 * @param string $table 表名
 * @return string
 */
tablename($table);

// 示例
$sql = "SELECT * FROM " . tablename('users');

4.2 缓存操作函数

4.2.1 cache_write - 写入缓存

/**
 * 写入缓存
 * @param string $key 缓存键
 * @param mixed $data 缓存数据
 * @return boolean
 */
cache_write($key, $data);

// 示例
cache_write('cache_key', array('name' => 'value'));

4.2.2 cache_read - 读取缓存

/**
 * 读取缓存
 * @param string $key 缓存键
 * @return mixed
 */
cache_read($key);

// 示例
$data = cache_read('cache_key');

4.2.3 cache_delete - 删除缓存

/**
 * 删除缓存
 * @param string $key 缓存键
 * @return boolean
 */
cache_delete($key);

// 示例
cache_delete('cache_key');

4.3 全局函数

4.3.1 is_error - 判断是否为错误

/**
 * 判断是否为错误对象
 * @param mixed $data 数据
 * @return boolean
 */
is_error($data);

// 示例
if (is_error($result)) {
    message('操作失败');
}

4.3.2 message - 显示提示消息

/**
 * 显示提示消息并跳转
 * @param string $msg 消息内容
 * @param string $redirect 跳转地址
 * @param string $type 类型 success/error/info
 */
message($msg, $redirect = '', $type = '');

// 示例
message('操作成功', url('site/display'), 'success');

4.3.3 url - 生成URL

/**
 * 生成URL
 * @param string $segment 路由
 * @param array $params 参数
 * @param boolean $noredirect 是否加api参数
 * @return string
 */
url($segment, $params = array(), $noredirect = false);

// 示例
$url = url('site/display', array('id' => 1));

4.4 加载器函数

4.4.1 load()->model - 加载模型

/**
 * 加载模型
 * @param string $name 模型名
 */
load()->model('user');

// 示例
load()->model('mc'); // 加载会员模型

4.4.2 load()->func - 加载函数库

/**
 * 加载函数库
 * @param string $name 函数库名
 */
load()->func('file');

// 示例
load()->func('communication'); // 加载通信函数库

4.4.3 load()->classs - 加载类

/**
 * 加载类
 * @param string $name 类名
 */
load()->classs('weixin.account');

// 示例
load()->classs('pay'); // 加载支付类

5. 响应格式规范

5.1 成功响应

{
  "status": 1,
  "message": "success",
  "data": {
    // 业务数据
  }
}

5.2 错误响应

{
  "status": 0,
  "message": "错误描述",
  "errno": 1001
}

6. 错误码说明

错误码 说明
0 成功
1 失败(通用)
1001 参数错误
1002 未登录/无权访问
1003 数据不存在
1004 数据已存在
1005 数据库操作失败

7. 调用示例

7.1 调用数据库操作

<?php
define('IN_API', true);
require __DIR__ . '/framework/bootstrap.inc.php';

// 查询用户
$user = pdo_get('users', array('uid' => 1));

// 返回JSON
header('Content-Type: application/json');
echo json_encode(array('status' => 1, 'data' => $user));

7.2 加载模型并调用

<?php
define('IN_API', true);
require __DIR__ . '/framework/bootstrap.inc.php';

// 加载会员模型
load()->model('mc');

// 获取会员信息
$member = mc_fetch(1);

// 返回JSON
header('Content-Type: application/json');
echo json_encode(array('status' => 1, 'data' => $member));

作者:周珊  创建时间:2026-05-05 22:59
最后编辑:周珊  更新时间:2026-05-05 23:04