<?php

/**
 * 联想 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/payResp.php';                # 导入通用返回值结构
include_once __DIR__ . '/../Mo/payRequest.php';          # 导入通用订单请求结构
require_once __DIR__ . '/config_lenovo.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_for_Lenovo::Inst();
    $params = array('lpsust' => $req->access_token, 'realm' => $cfg->appid);
    $result = HttpUtil::makeRequest($cfg->verifySession_url, $params, array(), array(), $cfg->verifySession_method);
    if ($result['result']) {
        $xml = simplexml_load_string($result['msg']);                           # 联想的返回值是xml需要转换下格式
        if (isset($xml->verified)) {                                            # 登录校验通过
            echo payResp::ok($xml);
        } else {
            echo payResp::err($xml->Error, $cfg->ErrMsg($xml->Code));              # 错误信息
        }
    } else {
        echo payResp::err($result['errno'], $msg);                                 # 通讯失败
    }
} catch (\Exception $e) {                                                       # 其他异常
    echo payResp::err($e->getCode(), $e->getMessage());
}
