Rn.php 3.43 KB
<?php

use Action\AbstractAction;

/**
 * Created by PhpStorm.
 * User: Leo
 * Date: 16/2/17
 * Time: 上午11:48
 */
class RnController 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
     * rnv          bundle版本号,如果本地没有补丁,传空	string	100
     * minv         最低支持的版本号
     *
     * 返回列表
     * -------------------------------------------------------------------------
     * 字段             描述                                    类型	示例
     * 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
     *   rnv             当前bundle的版本号,没有就传空            string	"100"
     *   filecode       md5(md5(文件内容) + "yohorn2016")    string	"1233321121212332"
     * ]
     * echo md5(file_get_contents('http://cdn.yoho.cn/app-hotfix/yohobuy/4.0.0/main2.js'));
     */
    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-reactnative/4.0.1/main.zip';
                $result['data']['rnv'] = '101';
                $result['data']['minv'] = '4.0.1';
                $result['data']['filecode'] = md5('dffb998e43a33215b4c47a4ccd3cf619' . 'yohorn2016');
                $result['md5'] = md5(self::PRIVATE_KEY . ':' . json_encode($result['data']));
                break;
            case '4.1.0': // 版本号
                $result['data']['url'] = 'http://cdn.yoho.cn/app-downfiles/index.android.bundle.zip';
                $result['data']['rnv'] = '101';
                $result['data']['minv'] = '4.1.0';
                $result['data']['filecode'] = md5('47c47db1eec6159f940e2018d3a83676' . 'yohorn2016');
                $result['md5'] = md5(self::PRIVATE_KEY . ':' . json_encode($result['data']));
                break;
            default: // 默认
                $result['data']['url'] = '';
                $result['data']['rnv'] = '';
                $result['data']['filecode'] = '';
                $result['md5'] = md5(self::PRIVATE_KEY . ':' . json_encode($result['data']));
        }

        $this->echoJson($result);
    }

}