/**
* @title 获取eaby token
* @author 卡卡
*/
public function get_eaby_token()
{
$data = input('');
$store = Db::name('store');
$where['status'] = 1;
$where['name'] = $data['name'];
$code = $data['code'];
$result = $store->where($where)->find();
if (empty($result)) {
$msg['message'] = "未找到该店铺信息";
return errorJson($msg);
} else {
# 正式数据
$clientId = $result['seller_id'];
$clientSecret = $result['seller_secret'];
$redirect_uri = $result['seller_url'];
$credentials = base64_encode($clientId . ':' . $clientSecret);
// 第二步:用授权代码交换用户token (User Token)和更新token (refresh_token)
$postdata = http_build_query([
'grant_type' => 'authorization_code',
'code' => $code,
'redirect_uri' => $redirect_uri
]);
$options = array(
'http' => array(
'method' => 'POST',
'ignore_errors' => true,
'header' => "Host:api.sandbox.ebay.com\r\n" . "Content-type:application/x-www-form-urlencoded\r\n" . "Authorization:Basic " . $credentials . "\r\n",
'content' => $postdata,
'timeout' => 60, // 超时时间(单位:s)
)
);
$context = stream_context_create($options);
$response = file_get_contents("https://api.ebay.com/identity/v1/oauth2/token", TRUE, $context);
$response = json_decode($response);
$response = object_array($response);
// print_r($response);
$msg['response'] = $response;
if (isset($response['error'])) {
$msg['error'] = $response['error'];
$msg['error_description'] = $response['error_description'];
return errorJson($msg);
} else {
$save['access_token'] = $response['access_token'];
$save['refresh_token'] = $response['refresh_token'];
$save['expires_in'] = $response['expires_in'];
$save['refresh_token_expires_in'] = $response['refresh_token_expires_in'];
$save['update_time'] = time();
$result_update = $store->where($where)->update($save);
if ($result_update) {
$msg['message'] = "授权成功";
return successJson($msg);
} else {
$msg['message'] = "授权失败";
return errorJson($msg);
}
}
}
}
/**
*解析 JSON 对象
*/
function object_array($array)
{
if (is_object($array)) {
$array = (array)$array;
}
if (is_array($array)) {
foreach ($array as $key => $value) {
$array[$key] = object_array($value);
}
}
return $array;
}