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

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

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

common.php 处理接口公共业务

/**

* 处理接口公共业务

*/

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;

}

}

init.php 处理版本升级

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();

init.html 测试接口

Document

APP类型:

版本号:

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

  1. 【vn.py学习笔记(二)】vn.py底层接口 学习笔记

    [vn.py学习笔记(二)]vn.py底层接口 学习笔记 1 CTP API的工作原理 1.1 CTP介绍 1.2 API功能介绍 1.3 CTP API文件 1.4 API 通用规则 2 CTP A ...

  2. Slicer学习笔记(二十一)slicer的python接口说明

    Slicer学习笔记(二十一)slicer的python接口说明 1.python接口 1.python接口 slicer package Submodules slicer.ScriptedLoad ...

  3. 零基础学习Java开发,这些学习笔记送给你

    因为Java具备很多特点,并且在企业中被广泛应用为此很多小伙伴选择学习Java基础开发,但是零基础学习Java技术开发需要我们制定Java学习路线图对于我们之后的学习会非常有帮助. 零基础学习Java ...

  4. PHPWeb开发入门体验学习笔记

    PHPWeb开发入门体验学习笔记 4 一.PHP web应用开发须知 1.入门要点 程序员三个阶段:码农(速成技能)->工程师(长期知识)->专家(研究论文) 编程三要素:声明变量(系统. ...

  5. BOLT.NET 学习笔记(一) 开篇 用.net winform 快速开发 炫酷的界面

    BOLT.NET 学习笔记(一) 开篇 用.net winform 快速开发 炫酷的界面 bolt 基本介绍 Bolt界面引擎是迅雷公司从2009年开始开发的第四代界面库.迅雷7是首个采用该引擎成功开 ...

  6. iOS App Clips学习笔记

    一.什么是App Clip? App Clip是一个App的轻量版,用来提供一些用户所需功能,我们可以把它看成苹果的小程序.它不需要下载就直接能打开.这样即可达到不下载完整版APP便可体验APP的部分 ...

  7. Harmony 开发基础——Harmony 学习笔记

    Harmony 开发基础--Harmony 学习笔记 前言 最近跟着3.6 HAR | 3.6 HAR | EBG2021CCHW1100031 课程页面 | Huawei iLearningX学习了 ...

  8. 《疯狂前端开发讲义jQuery+Angular+Bootstrap前端开发实践》学习笔记

    <疯狂前端开发讲义jQuery+Angular+Bootstrap前端开发实践>学习笔记 二〇一九年二月十三日星期三2时28分54秒 前提:本书适合有初步HTML.CSS.JavaScri ...

  9. 人力资源开发与管理学习笔记

    人力资源开发与管理学习笔记 授课:石志夫 资源:人.财.物.信息. 基亨尼:国家实际统治权在于行政, 行政推进力在于人事, 行政领导权=人权+财权+决策权 ×××:政治路线确定之后,干部就是决定的因素 ...

  10. Polyworks脚本开发学习笔记(十六)-用C#进行Polyworks二次开发

    Polyworks脚本开发学习笔记(十六)-用C#进行Polyworks二次开发 Polyworks支持C#二次开发,用对应的SDK文档试着做一下开发样例. 新建一个C#项目,在解决方案中右键添加引用 ...

最新文章

  1. 一起走进计算机视觉的世界
  2. 玩转Python大数据分析 《Python for Data Analysis》的读书笔记-第05页
  3. element-ui中用el-dialog+el-table+el-pagination实现文件默认选中且在分页的条件下有记忆功能...
  4. 五子棋人机对战_原生JS+Canvas实现五子棋游戏
  5. 【Leetcode | 235】 235. 二叉搜索树的最近公共祖先
  6. 【bzoj2806】 Ctsc2012—Cheat
  7. linux 运行库 编译参数,Linux/CentOS 升级C基本运行库CLIBC的注意事项(当想解决GLIBC_2.x找不到的编译问题)...
  8. 宋宝华:Linux的任督二脉——进程调度和内存管理
  9. Mybatis什么时候用resultMap,什么时候用resultType
  10. 深度学习——词汇embedded、Beam Search
  11. 学习树莓派的几个推荐站点
  12. 数据可视化之设计经验分享:轻松三步教你学会制作数据可视化大屏思路
  13. Zero Requiem
  14. e1000网卡驱动小结
  15. ZZULI - 小新三连(二):小新在努力
  16. Delphi 2005 发布!
  17. Core Techniques And Algorithms In Game Programming
  18. 小程序 mathjs渲染公式_地平线:黎明时分中的云渲染技术
  19. 从微信的成功看移动AppUI设计的精髓
  20. 基于javaweb的医院分诊挂号住院管理系统(java+springboot+freemarker+mysql)

热门文章

  1. sqlmap源码阅读系列检查是否满足依赖
  2. 使用Pass提高效率
  3. python是值传递还是引用传递_Python里参数是值传递还是引用传递?
  4. python3cookbook_python3-cookbook读书笔记(四)
  5. matlab入门4-mdlInitializeSizes解析
  6. 【Python】基础总结
  7. python代码编辑工具pycharm的使用技巧
  8. 使用OpenExif修改jpeg图片信息
  9. javascript框架比较(一)
  10. Security Tutorials系列文章第七章:User-Based Authorization(下)