<?php

/**
 * vivo accesstoken换取用户信息
 * @version
 *          1.0.0 Created at 2018-3-9. by --gwang
 * @author gwang (mail@wanggangzero.cn)
 * @copyright ? 2018-3-9, SJZ LoyalSoft Corporation & gwang. All rights reserved.
 */
include_once __DIR__ . '/../../../main.php';             # 导入game utils
include_once __DIR__ . '/../Mo/resp.php';                # 导入通用返回值结构
include_once __DIR__ . '/../Mo/payRequest.php';          # 导入通用订单请求结构
require_once __DIR__ . '/config_vivo.php';               # 配置文件

use loyalsoft\CLog;
use loyalsoft\JsonUtil;
use loyalsoft\HttpUtil;

HttpUtil::PostOnly();                                                           # 要求客户端必须以post方式提交数据
//参数: access_token
$str = HttpUtil::getQueryString();                                              # 提取参数字符串
//$str = \gzinflate($str);                                                      # 解压
$req = JsonUtil::decode($str);                                                  # 反序列化到对象
try {
    $cfg = config_vivo::Inst();
    $params = array('authtoken' => $req->authToken);
    $result = HttpUtil::makeRequest($cfg->vivo_api_login, $params);
    if ($result['result']) {
        $ret = JsonUtil::decode($result['msg']);                                # vivo返回JSON
        if ($ret->retcode == 0) {                                               # 登录校验通过
            echo payResp::ok($ret->data);
        } else {
            echo payResp::err($ret->retcode, '校验失败');                           # 错误信息
        }
    } else {
        echo payResp::err($result['errno'], $result['msg']);                       # 通讯失败
    }
} catch (\Exception $e) {                                                       # 其他异常
    echo payResp::err($e->getCode(), $e->getMessage());
}
