国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > PHP > 正文

PHP開發(fā)APP接口(六):APP版本升級(jí)以及APP演示

2019-11-06 08:19:22
字體:
供稿:網(wǎng)友

一、版本升級(jí)分析及數(shù)據(jù)表設(shè)計(jì)

學(xué)習(xí)要點(diǎn): 1. 版本升級(jí)分析 2. 掌握如何設(shè)計(jì)版本升級(jí)數(shù)據(jù)表

這里寫圖片描述

Web升級(jí):由開發(fā)工程師進(jìn)行代碼的修改上傳的操作; App更新:由用戶自行更新版本;

這里寫圖片描述

初始化接口 init.php 參數(shù)

app_id
version_id
/** * version_upgrade 版本升級(jí)信息表 */CREATE TABLE `version_upgrade` ( `id` smallint(4) unsigned NOT NULL AUTO_INCREMENT, `app_id` smallint(4) unsigned NOT NULL DEFAULT '0' COMMENT '客戶端設(shè)備id 1安卓pad', `version_id` smallint(4) unsigned DEFAULT '0' COMMENT '大版本號(hào)id', `version_mini` mediumint(8) unsigned DEFAULT '0' COMMENT '小版本號(hào)', `version_code` varchar(10) DEFAULT NULL COMMENT '版本標(biāo)識(shí) 1.2', `type` tinyint(2) unsigned DEFAULT NULL COMMENT '是否升級(jí) 1升級(jí),0不升級(jí),2強(qiáng)制升級(jí)', `apk_url` varchar(255) DEFAULT NULL, `upgrade_point` varchar(255) DEFAULT NULL COMMENT '升級(jí)提示', `status` tinyint(1) DEFAULT NULL, `create_time` int(11) NOT NULL, `update_time` int(11) NOT NULL, PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;INSERT INTO `muke`.`version_upgrade` (`id`, `app_id`, `version_id`, `version_mini`, `version_code`, `type`, `apk_url`, `upgrade_point`, `status`, `create_time`, `update_time`) VALUES ('1', '1', '2', '1', '2.1', '1', 'http://imooc.com', '有新功能了,快來更新', '1', '0', '0');/** * app表 客戶端表 */CREATE TABLE `app` ( `id` smallint(4) unsigned NOT NULL AUTO_INCREMENT COMMENT '主鍵', `name` varchar(10) DEFAULT NULL COMMENT 'APP類型名稱 如:安卓手機(jī)', `is_encryption` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否加密 1加密 0不加密', `key` varchar(20) NOT NULL DEFAULT '0' COMMENT '加密key', `image_size` text COMMENT '按json_encode存儲(chǔ)', `create_time` int(11) NOT NULL COMMENT '創(chuàng)建時(shí)間', `update_time` int(11) NOT NULL COMMENT '更新時(shí)間', `status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '狀態(tài) 1正常 0刪除', PRIMARY KEY (`id`)) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;INSERT INTO `muke`.`app` (`id`, `name`, `is_encryption`, `key`, `image_size`, `create_time`, `update_time`, `status`) VALUES ('1', '安卓pad', '1', 'ss', NULL, '0', '0', '1');INSERT INTO `muke`.`app` (`id`, `name`, `is_encryption`, `key`, `image_size`, `create_time`, `update_time`, `status`) VALUES ('2', '安卓手機(jī)', '1', 'singwa@126.com', NULL, '0', '0', '1');INSERT INTO `muke`.`app` (`id`, `name`, `is_encryption`, `key`, `image_size`, `create_time`, `update_time`, `status`) VALUES ('3', '

二、版本升級(jí)接口開發(fā)及演示

學(xué)習(xí)要點(diǎn): 1. 掌握如何封裝 check 方法; 2. check 方法用于檢測最新版本信息!

接口傳遞參數(shù):

app_id
version_id
did
version_mini
encrypt_did

基本參數(shù)傳遞方式和獲取方法

方式 獲取
get $_GET
post $_POST
header頭 $_SERVER

$_SERVER 是一個(gè)包含了諸如頭信息(header)、路徑(path)、以及腳本位置(script location)等信息的數(shù)組

檢測APP發(fā)送數(shù)據(jù)

模擬APP發(fā)送POST請求頁面:/var/www/app/init.html ~~~html

設(shè)備號(hào): 版本號(hào): 小版本號(hào): APP類型: encrypt_did:

~~~

獲取POST請求數(shù)據(jù)頁面:/var/www/app/init.php ~php /** * 處理版本升級(jí) */ require_once('./common.php'); class Init extends Common { public function index() { this->check();      }  }init = new Init(); $init->index(); ~ 處理接口公共業(yè)務(wù):/var/www/app/common.php ~~~php require_once(‘./response.php’); require_once(‘./db.php’); /** * 處理接口公共業(yè)務(wù) */ class Common { public params;publicapp;

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, '參數(shù)不合法'); } // 判定app是否需要加密 $this->app = $this->getApp($appId); if (!$this->app) { return Response::show(402, 'app_id不存在'); } // 該設(shè)備需要加密,并且對設(shè)備號(hào)did連上加密key進(jìn)行加密的結(jié)果不等于encrypt_did,則沒有權(quán)限 if($this->app['is_encryption'] && $encryptDid !=
md5($did . $this->app['key'])) { return Response::show(403, '沒有該權(quán)限'); }}// 獲取設(shè)備信息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);}

} ~~~

判斷是否升級(jí)APP

common類里增加獲取版本信息的方法

// 獲取版本信息 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); }

修改init.php首頁文件

require_once('./common.php');class Init extends Common { public function index() { $this->check(); // 獲取版本升級(jí)信息 $versionUpgrade = $this->getversionUpgrade($this->app['id']); if ($versionUpgrade) { // 要升級(jí) 并且 當(dāng)前版本號(hào)小于要升級(jí)的版本號(hào) if ($versionUpgrade['type'] && $this->params['version_id'] < $versionUpgrade['version_id']) { // 要升級(jí) $versionUpgrade['is_upload'] = $versionUpgrade['type']; } else { // 不升級(jí) $versionUpgrade['is_upload'] = 0; } return Response::show(200, '版本升級(jí)信息獲取成功', $versionUpgrade); } else { return Response::show(400, '版本升級(jí)信息獲取失敗'); } }}$init = new Init();$init->index();
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 夏津县| 喀喇沁旗| 中卫市| 广平县| 五原县| 河南省| 霞浦县| 扬中市| 时尚| 宝丰县| 溧阳市| 杨浦区| 郯城县| 道孚县| 张家界市| 丰县| 嘉定区| 汾西县| 云霄县| 长宁县| 宜君县| 彝良县| 六枝特区| 太原市| 新和县| 清水县| 英德市| 漳平市| 从江县| 黔江区| 铜陵市| 乌恰县| 江西省| 云安县| 巩留县| 合阳县| 奇台县| 韶关市| 固安县| 凤山市| 洛川县|