Hf.php 3.47 KB
<?php
use Action\AbstractAction;

/**
 * 专为APP客户端调用的 hf(hotfix) Api
 * 
 * @name HfController
 * @package 
 * @copyright yoho.inc
 * @version 1.0 (2016-2-3 11:34:40)
 * @author fei.hong <fei.hong@yoho.cn>
 */
class HfController extends AbstractAction
{
    /* 私钥 */
    const PRIVATE_KEY = 'fd4ad5fcsa0de589af23234ks1923ks';
    
    /**
     * V1版本
     * 
     * 参数列表
     * -------------------------------------------------------------------------
     * 字段             描述                                    类型	示例
     * app_version	当前版本号                              string	3.8.0
     * uid              用户ID                                  string	13423331
     * client_type	用户手机系统:Android,IOS                string	Android
     * screen_size	屏幕尺寸                                string	1080x1920
     * udid             设备唯一码                              string	1d123sadao3
     * os_version	设备版本号                              string	1d123sadao3
     * patchv           补丁版本号,如果本地没有补丁,传空	string	100
     * 
     * 返回列表
     * -------------------------------------------------------------------------
     * 字段             描述                                    类型	示例
     * code             返回的code,200,304等,具体的服务器定义	int	200
     * message          信息                                    string	"Config Success"
     * md5              当前请求的唯一码                        string	"1234567890123456"
     * data             配置参数数据,参考data列表              object	
     * [
     *   url            补丁url地址,没有传空                   string	http://yohocdn.com/fpath/fpkk.js
     *   patchv         当前补丁的版本号,没有就传空            string	"100"
     *   filecode       md5(md5(文件内容) + "yohopatch2016")    string	"1233321121212332"
     * ]
     * echo md5(file_get_contents('http://cdn.yoho.cn/app-hotfix/yohobuy/4.0.1/main.js')); exit;
     */
    public function v1Action()
    {
        $result = array('code' => 200, 'message' => 'Config Success', 'md5' => '', 'data' => array());
        
        // 根据版本号返回补丁文件信息
        $version = $this->post('app_version');
        switch ($version) {
            case '4.0.1': // 版本
                $result['data']['url'] = 'http://cdn.yoho.cn/app-hotfix/yohobuy/4.0.1/main-3.js';
                $result['data']['patchv'] = '103';
                $result['data']['filecode'] = md5('8e28e7b0c69e803b28b61e2e373ae162' . 'yohopatch2016');
                $result['md5'] = md5(self::PRIVATE_KEY . ':' . json_encode($result['data']));
                break;
            case '4.0.0': // 版本
                $result['data']['url'] = 'http://cdn.yoho.cn/app-hotfix/yohobuy/4.0.0/main2.js';
                $result['data']['patchv'] = '102';
                $result['data']['filecode'] = md5('dddd71eed2754a53ad843a78587dc1f5' . 'yohopatch2016');
                $result['md5'] = md5(self::PRIVATE_KEY . ':' . json_encode($result['data']));
                break;
            default: // 默认
                $result['data']['url'] = '';
                $result['data']['patchv'] = '';
                $result['data']['filecode'] = '';
                $result['md5'] = md5(self::PRIVATE_KEY . ':' . json_encode($result['data']));
                break;
        }
        
        $this->echoJson($result);
    }

}