刷新Eaby Token

Ebay开发者社区  (https://www.ebay.cn/newcms/d_devdocs_apis/4)

Ebay所有API文档:https://developer.ebay.com/docs#Acc

ebay的api的开发技术笔记参考链接:https://blog.csdn.net/nittystone/article/details/38688535?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-0&spm=1001.2101.3001.4242

    /**
     * @title 刷新Eaby Token
     * @author 卡卡
     */
    public function refresh_eaby_tokentime()
    {
        $store = Db::name('store');
        $where['status'] = 1;
        $list = $store->where($where)->field('refresh_token,seller_id,seller_secret,store_id,access_token')->select();
        foreach ($list as $key => $value) {
            $refresh_token = urlencode($value['refresh_token']);
            $clientId = $value['seller_id'];
            $clientSecret = $value['seller_secret'];
            $scope = 'https://api.ebay.com/oauth/api_scope%20https://api.ebay.com/oauth/api_scope/sell.marketing.readonly%20https://api.ebay.com/oauth/api_scope/sell.marketing%20https://api.ebay.com/oauth/api_scope/sell.inventory.readonly%20https://api.ebay.com/oauth/api_scope/sell.inventory%20https://api.ebay.com/oauth/api_scope/sell.account.readonly%20https://api.ebay.com/oauth/api_scope/sell.account%20https://api.ebay.com/oauth/api_scope/sell.fulfillment.readonly%20https://api.ebay.com/oauth/api_scope/sell.fulfillment%20https://api.ebay.com/oauth/api_scope/sell.analytics.readonly%20https://api.ebay.com/oauth/api_scope/sell.finances%20https://api.ebay.com/oauth/api_scope/sell.payment.dispute';

            # 正式
            $url = sprintf("https://api.ebay.com/identity/v1/oauth2/token?grant_type=refresh_token&refresh_token=%s&scope=%s", $refresh_token, $scope);
            $context = stream_context_create(array(
                'http' => array(
                    'method' => 'POST',
                    'ignore_errors' => true,
                    'header' => sprintf("Authorization: Basic %s\r\n", base64_encode($clientId . ':' . $clientSecret)) . "Content-type: application/x-www-form-urlencoded\r\n",
                ),
            ));

            //发送请求
            $response = file_get_contents($url, TRUE, $context);
            $response = json_decode($response);
            $response = object_array($response);
            if (isset($response['error'])) {
                print_r($response);
                echo PHP_EOL;
                print_r('failed的store_id为:' . $value['store_id']);
                echo PHP_EOL;
            } else {
                $save['expires_in'] = time();
                $save['update_time'] = time();
                $save['access_token'] = $response['access_token'];
                $save_where['store_id'] =  $value['store_id'];
                $res = $store->where($save_where)->update($save);
                if ($res) {
                    print_r('success的store_id为:' . $value['store_id']);
                    echo PHP_EOL;
                } else {
                    print_r('failed的store_id为:' . $value['store_id']);
                    echo PHP_EOL;
                }
            }
        }
    }

 

上一篇:【Android 应用开发】GitHub 优秀的 Android 开源项目


下一篇:深入理解vue中的slot与slot-scope