版本升级接口

common.php

<?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

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

时间: 2024-12-16 20:50:41

版本升级接口的相关文章

App版本升级接口设计注意事项

做App开发时,避免不了需要版本升级的情况,而且有些情况下因为产品重大改变,需要强制升级. 1:由于AppStore貌似不支持强制升级,所以务必用后台来提供升级接口 2:在版本升级中,可能会其中某个版本需要强制升级 比如, V3--->V4->>>V5--->V6. V3可以选择性的升级到V4,V4必须升级到V5,V5可以选择性的升级到V6. 如果服务器的接口只提供最新版本的版本号和是否强制升级标识(由运营设置),然后由客户端来比较是否要升级. 如果最新版本是V5, 那么是没

小蚂蚁学习APP接口开发(9)—— APP版本升级的接口方法——处理客户端发来的请求数据

今天的笔记主要来记录最后的一个知识要点,APP客户端版本升级的接口开发. APP的开发主要由伟大而神圣的用户来更新,更新的流程应该是这样的: 开启APP--请求初始化接口init.php--检测是否需要更新---否--首页 ---是--更新 在初始化接口的时候,需要客户端发送几个数据: app_id            客户端id,比如: 1,安卓手机 2,iphone手机 version_id        大版本号id version_mini     小版本号id did        

PHP开发APP接口(七)

APP接口实例 单例模式连接数据库首页接口的开发以及客户端app的演示APP版本升级接口APP错误日志的接口 单例模式连接数据库学习要点:掌握单例模式设计php连接数据库 单例模式:一个类只能拥有一个实例:<?php class Db{    puclic function __construct(){ }} $db=new Db();$db1=new Db();普通的类可以产生多个实例 单例模式三大原则:1.构造函数需要标记为非Public(防止外部使用new操作符创建对象),单例类不能在其他

如何用php写app接口[原创]

人生就如一列永不停止的列车,no one knows when or where to stop.总有那些美好,值得永远怀念.也总有那些希望,值得你无怨无悔的付出,追逐.去年年底带着女儿一起坐火车会湖北老家,她在火车上,三岁的样子,活泼,调皮,可爱的样子,永远停在那儿,不会有一样的了吧.cherish this memory forever. 现在app这么火,作为一个phper,应该知道如何写app的接口,下面做一个讲解. Index: 第1章 APP接口简介-第2章 封装通信接口方法 2-1

php Android 使用简介 JSON XML 区别

一个app通信接口三要素: 1.接口地址:(http://app.com/api.php?format=xml) 2.接口文件 :(api.php处理一些业务逻辑) 3.接口通信数据 App如何进行通信 1.App发送http请求给服务器 2.服务器处理后返回数据给App 与b/s访问方式不同: b/s模式访问服务器页面的地址可以在地址栏看到而app访问看不到地址,已经被封装起来. b/s模式返回数据通常是html,而要给app返回的数据格式和 JSON和XML JSON和XML XML:扩展标

国内值得关注的官方API集合

项目地址:https://github.com/marktony/Awesome_API 本页仅收集国内部分官方API,如需查看其他版本,请点击这里. 目录 笔记 出行 词典 电商 地图 电影 后端云 即时通讯 开发者网站 快递查询 旅游 社交 视频 天气 图片与图像处理 外卖 消息推送 音乐 云 语音识别 综合 笔记 为知笔记 - 为知笔记Windows客户端开放了大量的API,其中绝大部分,都通过COM提供,可以在javascript, C#, C++, Delphi等语言中使用.接口通过I

【开发必备】2018最新中国国内可用API合集

中国国内可用API合集 笔记 OneNote - OneNote支持获取,复制,创建,更新,导入与导出笔记,支持为笔记添加多媒体内容,管理权限等.提供SDK和Demo. 为知笔记 - 为知笔记Windows客户端开放了大量的API,其中绝大部分,都通过COM提供,可以在javascript, C#, C++, Delphi等语言中使用.接口通过IDL(Interface description language)语言描述. 印象笔记 - 印象笔记提供了ActionScript 3, Androi

PHP开发高可用高安全App后端 视频教程

1-1 App项目功能介绍1-2 项目功能需求分析1-3 数据表ER关系总图对应讲解2-1 项目环境搭建及postman等工具介绍2-2 thinkphp5.0的安装2-3 项目后台模板的搭建3-1 后台用户表的设计3-2 新增后台用户功能开发3-3 后台验证码功能开发3-4 后台登录功能开发(上)3-5 后台登录功能开发(下) 3-6 后台退出登录功能开发3-7 后台权限控制功能的实现4-1 娱乐新闻表结构设计4-2 上传图片插件准备工作介绍4-3 新闻内容添加--图片上传到本地服务4-4 高

[1.30] 保持的力量:接口开发最佳实践

神啊,求你赐给我平静的心,去接受我无法改变的事:赐给我勇气,去做我能改变的事:赐给我智慧,去分辨两者的不同. --平静之祷 1.30.1 论保持的力量 追到一个心仪的女生不难,难于如何保持和培养一份真挚的感情:获得一时的财富也不难,难于如何长久保持收益:创业的公司很容易博得一时媒体的关注以及某次天使的投资,但难于如何排除各种障碍.充分利用各方资源发展成中企业及至上市公司. 同样,提供一时的接口很容易,但当我们需要不断为接口提供升级,以及当我们维护提供一整套接口时,面临的困难和问题会越来越大.所以