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

/**
 * 专为APP客户端调用的 hf(hotfix) Api
 * 
 * @name HfController
 * @package 
 * @copyright yoho.inc
 * @version 1.1 (2016-5-23 9:57:40) 增加android接口
 * @author CL
 */
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-4.js')); exit;
     */
      public function v1Action()
    {
        $result = array('code' => 200, 'message' => 'Config Success', 'md5' => '', 'data' => array());
        $clienttype = $this->post('client_type');
        $version = $this->post('app_version');

        $ios = 'ios';
        $android = 'android';
  
       // 根据版本号返回补丁文件信息
     
        if (strcasecmp($clienttype, $ios) == 0){

            switch ($version) {
    //            case '4.0.1': // 版本
    //                $result['data']['url'] = 'http://cdn.yoho.cn/app-hotfix/yohobuy/4.0.1/main-4.js';
    //                $result['data']['patchv'] = '103';
    //                $result['data']['filecode'] = md5('f9c03ec39cfb2686d2b778e444fb2306' . 'yohopatch2016');
    //                $result['md5'] = md5(self::PRIVATE_KEY . ':' . json_encode($result['data']));
    //                break;
                case '4.0.0': // 版本
                    $result['data']['url'] = '';
                    $result['data']['patchv'] = '';
                    $result['data']['filecode'] = md5('dddd71eed2754a53ad843a78587dc1f5' . 'yohopatch2016');
                    $result['md5'] = md5(self::PRIVATE_KEY . ':' . json_encode($result['data']));
                    // var_dump('ios 4.0');
                    break;
                default: // 默认
                    $result['data']['url'] = '';
                    $result['data']['patchv'] = '';
                    $result['data']['filecode'] = '';
                    $result['md5'] = md5(self::PRIVATE_KEY . ':' . json_encode($result['data']));
                     // var_dump('ios 4.1');
                    break;
            }
        
        }
        else if (strcasecmp($clienttype, $android) == 0){
            
             switch ($version) {
                case '4.4.0': // 版本
                    $result['data']['url'] = 'http://cdn.yoho.cn/app-hotfix/yohobuy/a/4.3.0/201605191600.apatch';
                    $result['data']['patchv'] = '103';
                    $result['data']['filecode'] = md5('c1edcb91fc0eb56a4699e0b31e942d06' . 'yohopatch2016');
                    $result['md5'] = md5(self::PRIVATE_KEY . ':' . json_encode($result['data']));
                    // var_dump('android 4.3.0');
                    break;
                default: // 默认
                    $result['data']['url'] = '';
                    $result['data']['patchv'] = '';
                    $result['data']['filecode'] = '';
                    $result['md5'] = md5(self::PRIVATE_KEY . ':' . json_encode($result['data']));
                     // var_dump('android noversion');
                    break;
            }

        }
        else 
        {
           // var_dump('no found app clienttype');

        }
         $this->echoJson($result);
    }

}