php 接口升级,PHP 开发 APP 接口 学习笔记与总结 - APP 接口实例 [6] 版本升级接口开发...

判定 app 是否需要加密:通过 app 表中的 status 字段来判定,加密的字符串为 app 表中的 key 字段。

在获取的客户端和服务器端(数据库表中相应字段)的版本号不一致时,返回 data['is_upload'] = 1 提示是否升级;一致时返回 data['is_upload'] = 0 不提示升级。

common.php 中 getApp 方法可以添加缓存(静态/Redis等)缓存。

common.php 处理接口公共业务

69c5a8ac3fa60e0848d784a6dd461da6.png

/**

* 处理接口公共业务

*/

require_once('./response.php');

require_once('./db.php');

class Common {

public $params;

public $app;

public function check() {

$this->params['app_id'] = $appId = isset($_POST['app_id']) ? $_POST['app_id'] : '';

$this->params['version_id'] = $versionId = isset($_POST['version_id']) ? $_POST['version_id'] : '';

$this->params['version_mini'] = $versionMini = isset($_POST['version_mini']) ? $_POST['version_mini'] : '';

$this->params['did'] = $did = isset($_POST['did']) ? $_POST['did'] : '';

$this->params['encrypt_did'] = $encryptDid = isset($_POST['encrypt_did']) ? $_POST['encrypt_did'] : '';

if(!is_numeric($appId) || !is_numeric($versionId)) {

return Response::show(401, '参数不合法');

}

// 判断APP是否需要加密

$this->app = $this->getApp($appId);

if(!$this->app) {

return Response::show(402, 'app_id不存在');

}

if($this->app['is_encryption'] && $encryptDid != md5($did . $this->app['key'])) {

return Response::show(403, '没有该权限');

}

}

public function getApp($id) {

$sql = "select *

from `app`

where id = " . $id ."

and status = 1

limit 1";

$connect = Db::getInstance()->connect();

$result = mysql_query($sql, $connect);

return mysql_fetch_assoc($result);

}

public function getversionUpgrade($appId) {

$sql = "select *

from `version_upgrade`

where app_id = " . $appId ."

and status = 1

limit 1";

$connect = Db::getInstance()->connect();

$result = mysql_query($sql, $connect);

return mysql_fetch_assoc($result);

}

/**

* 根据图片大小组装相应图片

* @param string $imageUrl

* @param string $size

*/

public function setImage($imageUrl, $size) {

if(!$imageUrl) {

return '';

}

if(!$size) {

return $imageUrl;

}

$type = substr($imageUrl, strrpos($imageUrl, '.'));

if(!$type) {

return '';

}

$path = substr($imageUrl, 0, strrpos($imageUrl, '.'));

return $path . '_' . $size . $type;

}

}

69c5a8ac3fa60e0848d784a6dd461da6.png

init.php 处理版本升级

69c5a8ac3fa60e0848d784a6dd461da6.png

require_once('./common.php');

class Init extends Common {

public function index() {

$this->check();

// 获取版本升级信息

$versionUpgrade = $this->getversionUpgrade($this->app['id']);

if($versionUpgrade) {

if($versionUpgrade['type'] && $this->params['version_id'] < $versionUpgrade['version_id']) {

$versionUpgrade['is_upload'] = $versionUpgrade['type'];

}else {

$versionUpgrade['is_upload'] = 0;

}

return Response::show(200, '版本升级信息获取成功', $versionUpgrade);

} else {

return Response::show(400, '版本升级信息获取失败');

}

}

}

$init = new Init();

$init->index();

69c5a8ac3fa60e0848d784a6dd461da6.png

init.html 测试接口

69c5a8ac3fa60e0848d784a6dd461da6.png

Document

APP类型:

版本号:

69c5a8ac3fa60e0848d784a6dd461da6.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值