eBay 接口开发

SpringBoot 专栏收录该内容
18 篇文章 0 订阅

一、ebay的认证方式
ebay有两种认证方式,一种是通过通过sdk的方式去进行店铺授权,另外一种是通过ebay提供的restful方式的调用进行认证,ebay同样也提供了jar用于授权。下面进行介绍;
首先需要申请开发者账号,获取到appId,devId,certId.通过获取创建userToken可以获取到ruName,通过这几个key就可以完成一个店铺授权了;
1.传统sdk的授权方式:
首先进入ebay开发者页面:ebay开发者页面,如下图
ebay开发者首页
然后找到页面最下方

api及工具集
进入之后可以找到对应sdk工具包
对应的工具包
下载需要的版本即可,然后将sdk解压,将sdk解压后的文件中lib文件夹中的三个jar以及externalLib文件夹下除了optional文件夹之外的jar全部导入到项目中即可;

在这里插入图片描述
这样就完成基本工具的准备,可以进行开发了;
主要分三个步骤

` public static String GetSessionId() throws Exception {
        String AppID="";
        ApiContext localContext = new ApiContext();
        ApiAccount apiAccount = new ApiAccount();
        apiAccount.setApplication(your appId);
        apiAccount.setDeveloper(your devId);
        apiAccount.setCertificate(your certId);
        localContext.getApiCredential().setApiAccount(apiAccount);
        localContext.setApiServerUrl("https://api.ebay.com/wsapi");
        localContext.setTimeout(50000);
        localContext.setSite(SiteCodeType.US);
        GetSessionIDCall apiCall = new GetSessionIDCall(localContext);
		//在getuserToken中查询
        apiCall.setRuName(your ruName);
        String sessionId = apiCall.getSessionID();
        String aaa="https://signin.ebay.com/ws/eBayISAPI.dll?SignIn&runame=your ruName&SessID="+sessionId;
        return  aaa;
    }

 

通过这个可以拼接成带有sessionId的url,此时的sessionId是一个未经授权的id,需要去访问这个url即可访问到ebay的授权页面,进行手动授权,授权成功后的sessionId就已经生效了,我们通过这个sessionId来获取token(注意:此sessionId只需一次授权即可,就是永久有效的,只需定时去刷新token即可)

public static String GetUserTokenBySessionId ( String sessionId) {
        ApiContext localContext = new ApiContext();
        ApiAccount apiAccount = new ApiAccount();
       	apiAccount.setApplication(your appId);
        apiAccount.setDeveloper(your devId);
        apiAccount.setCertificate(your certId);
        localContext.getApiCredential().setApiAccount(apiAccount);
       	apiCall.setRuName(your ruName);
        localContext.setApiServerUrl("https://api.ebay.com/wsapi");

        localContext.setTimeout(50000);
        localContext.setSite(SiteCodeType.US);
        FetchTokenCall apiCall = new FetchTokenCall(localContext);
        apiCall.setSessionID(sessionId);
        try {
            String token = apiCall.fetchToken();
            return token;
        }catch (Exception e) {
           e.printStackTrace();
        }
        return null;
    }

这样就完成了sdk方式的授权,就可以调用api接口去获取相应的信息了;

下面测试下获取订单信息接口:

 public static void getOrders() throws Exception {
        ApiContext apiContext = new ApiContext();
        // set API Token to access eBay API Server
        ApiCredential cred = apiContext.getApiCredential();
        cred.seteBayToken(your token);
        apiContext.setApiServerUrl("https://api.ebay.com/wsapi");// Pointing to product for testing.

        apiContext.getApiLogging().setLogSOAPMessages(true);
        apiContext.setSite(SiteCodeType.US); // Set site
        GetOrdersCall getOrders = new GetOrdersCall(apiContext);

        getOrders.setOrderRole(TradingRoleCodeType.SELLER);
        getOrders.setOrderStatus(OrderStatusCodeType.ALL);

        java.util.Calendar calTo = java.util.Calendar.getInstance();
        java.util.Calendar calFrom = (java.util.Calendar)calTo.clone();
        calFrom.add(java.util.Calendar.DATE, -1);//设置你要获取订单的时间,这个具体的可以参考api信息
        getOrders.setCreateTimeFrom(calFrom);
        getOrders.setCreateTimeTo(calTo);
        getOrders.getOrders();
       

这样便获取到了订单信息,sdk有对应的解析包,我们可以直接获取到数据,类似GetOrdersCall有很多,获取其他信息的一些类,在sdk中都进行了封装;

下篇会讲下restful方式的店铺授权方式;

 

链接来源:

https://blog.csdn.net/weixin_38656862/article/details/103560793

  • 0
    点赞
  • 3
    评论
  • 3
    收藏
  • 扫一扫,分享海报

©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值