一、申请成为开发者

申请入口:http://isvhz.aliexpress.com/isv/index.htm

说明文档:http://activities.aliexpress.com/open/applyisv.phphttp://gw.api.alibaba.com/dev/doc/intl/sys_join.htm?ns=aliexpress.open

 二、获得店铺授权并获得临时code临牌(两分钟有效)

网址链接:http://gw.api.alibaba.com/dev/tools/app_signature.html

输入店铺信息后,速卖通就会返回给你临时Token

 三、用临时Token获取授权Token和refresh_token

参考网址:http://gw.api.alibaba.com/dev/doc/intl/sys_auth.htm?ns=aliexpress.open

备注 :临时令牌code只有两分钟的有效时间,access_token 有10个小时的有效时间,refresh_token 有半年的有效时间,所以呢,超过了两分钟,以上的接口就不能用了哦!那要怎么办呢?总不能我每次用的时候都走一遍授权吧?当然不用咯,可以用refresh_token去获取access_token (具体的接口内容就在以上文档的下面,可以自己去看哦,就不细讲了)。这里不禁还是要问:半年授权一次也很让人头疼啊!不要急。当 refresh_token  在30天内就要过期的时候,可以重新刷新时间呢(接口内容也在那个文档下面哦,至于refresh_token_timeout  到期时间接口里就有哦)

四、Java SDK 开发

说明:官网的SDK实在不想吐槽了,不知道是那个开发团队整的,根本没法使。我去Github上整了一套,自己搞了下、

这位哥们已经写的很详细了,大家仔细看下就行,最后附上我获得签名认证过程的代码,我是在hybris上开发的,所以可能有点不一样,不过核心内容都一样,主要是参考那个哥们的......

  1. AliExpressTypeModel aliExpressTypeModel = orderService.queryAliExpressTypeByCode("12345678");
  2. if (aliExpressTypeModel!=null) {
  3. String host = "gw.api.alibaba.com";
  4. String redirect_uri = "http://authhz.alibaba.com/auth/authCode.htm";
  5.  
  6. Map<String, String> params1 = new HashMap<>();
  7. params1.put("client_id", aliExpressTypeModel.getAppKey());
  8. params1.put("redirect_uri", redirect_uri);
  9. params1.put("client_secret", aliExpressTypeModel.getAppSecret());
  10. params1.put("code", aliExpressTypeModel.getOneCode());
  11.  
  12. String getTokenResult = AuthService.getToken(host, params1, true);
  13. if (getTokenResult == null) {
  14. LOG.info("临时令牌超过两分钟已失效......");
  15. //临时令牌已失效,用refresh_token去获取access_token
  16. params1.put("refresh_token", aliExpressTypeModel.getRefreshToken());
  17. String refreshTokenResult = AuthService.refreshToken(host, params1);
  18. if (refreshTokenResult == null) {
  19. LOG.info("长时令牌超过半年已失效,请重新授权并执行脚本导入......");
  20. } else {
  21. JSONObject refreshJsonObject = JSONObject.parseObject(refreshTokenResult);
  22. LOG.info("获取到的授权令牌是:" + refreshJsonObject.get("access_token").toString());
  23. aliExpressTypeModel.setAccessToken(refreshJsonObject.get("access_token").toString());
  24. modelService.save(aliExpressTypeModel);
  25.  
  26. //如果refresh_token只有30天的有效期了,则刷新refresh_token、
  27. String refreshokenimeout = aliExpressTypeModel.getRefreshokenimeout();
  28. if (refreshokenimeout != null) {
  29. SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddHHmmssSSSZ");
  30. TimeZone utcZone = TimeZone.getTimeZone("UTC");
  31. simpleDateFormat.setTimeZone(utcZone);
  32. try {
  33. Date date = simpleDateFormat.parse(refreshokenimeout);
  34. Date now = new Date();
  35. int days = (int) ((date.getTime() - now.getTime()) / (1000 * 3600 * 24));
  36. if (days < 30) {
  37. params1.put("refresh_token", aliExpressTypeModel.getRefreshToken());
  38. params1.put("access_token", aliExpressTypeModel.getAccessToken());
  39. String postponeToken = AuthService.postponeToken(host, params1);
  40. JSONObject postponeTokenObject = JSONObject.parseObject(postponeToken);
  41. aliExpressTypeModel.setRefreshToken(postponeTokenObject.get("refresh_token").toString());
  42. aliExpressTypeModel.setRefreshokenimeout(postponeTokenObject.get("refresh_token_timeout").toString());
  43. modelService.save(aliExpressTypeModel);
  44. }
  45. } catch (ParseException e) {
  46. e.printStackTrace();
  47. }
  48. }
  49. return refreshJsonObject.get("access_token").toString();
  50. }
  51. } else {
  52. JSONObject codeJsonObject = JSON.parseObject(getTokenResult);
  53. LOG.info("获取到的授权令牌是:" + codeJsonObject.get("access_token").toString());
  54. aliExpressTypeModel.setRefreshToken(codeJsonObject.get("refresh_token").toString());
  55. aliExpressTypeModel.setAccessToken(codeJsonObject.get("access_token").toString());
  56. aliExpressTypeModel.setRefreshokenimeout(codeJsonObject.get("refresh_token_timeout").toString());
  57. modelService.save(aliExpressTypeModel);
  58. return codeJsonObject.get("access_token").toString();
  59. }
  60. }
  61. return null;

Java 集成速卖通开发.的更多相关文章

  1. Java 集成 速卖通开发.

    一.申请成为开发者 申请入口:http://isvhz.aliexpress.com/isv/index.htm 说明文档:http://activities.aliexpress.com/open/ ...

  2. 外贸开发,用java调用速卖通api第一步,token的获取。

     第一步 定义速卖通api的常量  public String client_id;  public String client_key;  public String site;   第二步 获取登 ...

  3. 速卖通API开发步骤

    http://gw.api.alibaba.com/dev/doc/intl/sys_auth.htm?ns=aliexpress.open#concept 关键字段说明 1.appKey和appSe ...

  4. 速卖通AE平台+聚石塔+奇门 完整教程V2

    公司是跨境电商,在阿里马马的速卖通平台上开有店铺,并且基于速卖通开放平台,自主研发了ERP系统,居今已有3年多的时间了,一直很稳定. 今年初,速卖通AE开放平台改版,并入淘宝开放平台中,我们的麻烦就开 ...

  5. 速卖通api--获取商品信息

    <? $productId    = 'xxxx';//你的产品id    $access_token = 'xxxxx';//你的授权码    $appSecret    = 'xxxx';/ ...

  6. 速卖通api--发起授权

    <? $reqURL_onLine = "https://gw.api.alibaba.com/openapi/http/1/system.oauth2/getToken/494739 ...

  7. 使用速卖通开放平台云API调用菜鸟组件实现云打印

    公司是跨境电商,使用速卖通平台卖玩具,我们自己研发的ERP是基于速卖通开放平台API,实现订单的发货提交,打印面单等功能 近期公司要求使用菜鸟组件云打印,去平台里看下,有这个API,如下图所示 实现也 ...

  8. 速卖通---发布商品aeopAeProductPropertys这个字段值报07004013的错误

    由于文档的说明很少,导致里面改填写那些值都是靠自己推敲出来,当然可以根据他们的错误提示了研究,他们的错误提示也给出了相关的帮助了, 例如通过categoryid的200000001获取到"i ...

  9. 【JAVA零基础入门系列】Day2 Java集成开发环境IDEA

    开发环境搭建好之后,还需要一个集成开发环境也就是IDE来进行编程.这里推荐的IDE是IDEA,那个老掉牙的Eclipse还是先放一边吧,(手动滑稽). IDEA的下载地址:http://www.jet ...

随机推荐

  1. 不同浏览器对cookie大小与个数的限制

    一.浏览器允许每个域名所包含的cookie数: Microsoft指出InternetExplorer8增加cookie限制为每个域名50个,但IE7似乎也允许每个域名50个cookie. Firef ...

  2. nginx 配置实例-反向代理

    反向代理实例一 虚拟机IP:192.168.116.129实现效果:使用 nginx 反向代理,访问 www.123.com 直接跳转到 虚拟机的192.168.116.129:8080  实验代码  ...

  3. C语言程序设计100例之(23):数列求和

    例23  数列求和 问题描述 已知某数列前两项为2和3,其后继项根据前面最后两项的乘积,按下列规则生成: ① 若乘积为一位数,则该乘积即为数列的后继项: ② 若乘积为二位数,则该乘积的十位上的数字和个 ...

  4. 深入浅出14个Java并发容器

    前言 不考虑多线程并发的情况下,容器类一般使用ArrayList.HashMap等线程不安全的类,效率更高.在并发场景下,常会用到ConcurrentHashMap.ArrayBlockingQueu ...

  5. 巧妙利用label标签实现input file上传文件自定义样式

    提到上传文件,一般会想到用input file属性来实现,简单便捷,一行代码即可    但input file原生提供的默认样式大多情况下都不符合需求,且在不同浏览器上呈现的样式也不尽相同   我们往 ...

  6. easyui treegrid数据重复加载问题

    在使用easyui的时候,出现了数据重复加载的问题.如下图 关于这个问题有两种说法,第一种说法是 easyui-datagrid 类在html和js中重复定义,数据渲染时会加载两次.另一种是$(&qu ...

  7. 数据显示按规格向datatable中增加空白记录

    /// <summary> /// 按前台分页样式为datatable增加空行 /// </summary> /// <param name="gridPage ...

  8. WM消息大全,windows消息大全

    WM消息大全 消息名 消息值 说明 WM_CREATE 0x0001 应用程序创建一个窗口 WM_DESTROY 0x0002 一个窗口被销毁 WM_MOVE 0x0003 移动一个窗口 WM_SIZ ...

  9. SVN 回滚提交的代码

    有的时候,代码提交错了,我们可以通过SVN回滚到指定的版本,然后在提交回滚后的代码,即为撤销提交. 回滚代码 重新提交刚才回滚后的代码

  10. 利用Azure虚拟机安装Dynamics 365 Customer Engagement之四:组织单位服务安装账号设置

    我是微软Dynamics 365 & Power Platform方面的工程师罗勇,也是2015年7月到2018年6月连续三年Dynamics CRM/Business Solutions方面 ...