dee0912

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

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

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

 

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

 

init.html 测试接口

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <form action="init.php" method="post">
        APP类型:<input type="text" name=\'app_id\'>
        版本号:<input type="text" name=\'version_id\'>
        <input type="submit" value=\'提交\'>
    </form>
</body>
</html>

 

分类:

技术点:

相关文章: