Java 集成 速卖通开发.

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

一、申请成为开发者

申请入口: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上整了一套,自己搞了下、

附上Github地址:https://github.com/jvbo/aliexpress

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

 AliExpressTypeModel aliExpressTypeModel = orderService.queryAliExpressTypeByCode("12345678");
        if (aliExpressTypeModel!=null) {
            String host = "gw.api.alibaba.com";
            String redirect_uri = "http://authhz.alibaba.com/auth/authCode.htm";

            Map<String, String> params1 = new HashMap<>();
            params1.put("client_id", aliExpressTypeModel.getAppKey());
            params1.put("redirect_uri", redirect_uri);
            params1.put("client_secret", aliExpressTypeModel.getAppSecret());
            params1.put("code", aliExpressTypeModel.getOneCode());

            String getTokenResult = AuthService.getToken(host, params1, true);
            if (getTokenResult == null) {
                LOG.info("临时令牌超过两分钟已失效......");
                //临时令牌已失效,用refresh_token去获取access_token
                params1.put("refresh_token", aliExpressTypeModel.getRefreshToken());
                String refreshTokenResult = AuthService.refreshToken(host, params1);
                if (refreshTokenResult == null) {
                    LOG.info("长时令牌超过半年已失效,请重新授权并执行脚本导入......");
                } else {
                    JSONObject refreshJsonObject = JSONObject.parseObject(refreshTokenResult);
                    LOG.info("获取到的授权令牌是:" + refreshJsonObject.get("access_token").toString());
                    aliExpressTypeModel.setAccessToken(refreshJsonObject.get("access_token").toString());
                    modelService.save(aliExpressTypeModel);

                    //如果refresh_token只有30天的有效期了,则刷新refresh_token、
                    String refreshokenimeout = aliExpressTypeModel.getRefreshokenimeout();
                    if (refreshokenimeout != null) {
                        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddHHmmssSSSZ");
                        TimeZone utcZone = TimeZone.getTimeZone("UTC");
                        simpleDateFormat.setTimeZone(utcZone);
                        try {
                            Date date = simpleDateFormat.parse(refreshokenimeout);
                            Date now = new Date();
                            int days = (int) ((date.getTime() - now.getTime()) / (1000 * 3600 * 24));
                            if (days < 30) {
                                params1.put("refresh_token", aliExpressTypeModel.getRefreshToken());
                                params1.put("access_token", aliExpressTypeModel.getAccessToken());
                                String postponeToken = AuthService.postponeToken(host, params1);
                                JSONObject postponeTokenObject = JSONObject.parseObject(postponeToken);
                                aliExpressTypeModel.setRefreshToken(postponeTokenObject.get("refresh_token").toString());
                                aliExpressTypeModel.setRefreshokenimeout(postponeTokenObject.get("refresh_token_timeout").toString());
                                modelService.save(aliExpressTypeModel);
                            }
                        } catch (ParseException e) {
                            e.printStackTrace();
                        }
                    }
                    return refreshJsonObject.get("access_token").toString();
                }
            } else {
                JSONObject codeJsonObject = JSON.parseObject(getTokenResult);
                LOG.info("获取到的授权令牌是:" + codeJsonObject.get("access_token").toString());
                aliExpressTypeModel.setRefreshToken(codeJsonObject.get("refresh_token").toString());
                aliExpressTypeModel.setAccessToken(codeJsonObject.get("access_token").toString());
                aliExpressTypeModel.setRefreshokenimeout(codeJsonObject.get("refresh_token_timeout").toString());
                modelService.save(aliExpressTypeModel);
                return codeJsonObject.get("access_token").toString();
            }
        }
        return null;

 

目录
相关文章
|
9天前
|
前端开发 安全 开发工具
【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
136 90
【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
|
1天前
|
JavaScript 安全 Java
智慧产科一体化管理平台源码,基于Java,Vue,ElementUI技术开发,二开快捷
智慧产科一体化管理平台覆盖从备孕到产后42天的全流程管理,构建科室协同、医患沟通及智能设备互联平台。通过移动端扫码建卡、自助报道、智能采集数据等手段优化就诊流程,提升孕妇就诊体验,并实现高危孕产妇五色管理和孕妇学校三位一体化管理,全面提升妇幼健康宣教质量。
27 12
|
25天前
|
存储 缓存 Java
Java中的分布式缓存与Memcached集成实战
通过在Java项目中集成Memcached,可以显著提升系统的性能和响应速度。合理的缓存策略、分布式架构设计和异常处理机制是实现高效缓存的关键。希望本文提供的实战示例和优化建议能够帮助开发者更好地应用Memcached,实现高性能的分布式缓存解决方案。
38 9
|
2月前
|
人工智能 自然语言处理 Java
FastExcel:开源的 JAVA 解析 Excel 工具,集成 AI 通过自然语言处理 Excel 文件,完全兼容 EasyExcel
FastExcel 是一款基于 Java 的高性能 Excel 处理工具,专注于优化大规模数据处理,提供简洁易用的 API 和流式操作能力,支持从 EasyExcel 无缝迁移。
214 9
FastExcel:开源的 JAVA 解析 Excel 工具,集成 AI 通过自然语言处理 Excel 文件,完全兼容 EasyExcel
|
24天前
|
前端开发 Java 程序员
菜鸟之路day02-04拼图小游戏开发一一JAVA基础综合项目
本项目基于黑马程序员教程,涵盖面向对象进阶、继承、多态等知识,历时约24小时完成。项目去除了登录和注册模块,专注于单机游戏体验。使用Git进行版本管理,代码托管于Gitee。项目包含窗体搭建、事件监听、图片加载与打乱、交互逻辑实现、菜单功能及美化界面等内容。通过此项目,巩固了Java基础并提升了实际开发能力。 仓库地址:[https://gitee.com/zhang-tenglan/puzzlegame.git](https://gitee.com/zhang-tenglan/puzzlegame.git)
42 6
|
27天前
|
Java 应用服务中间件 API
【潜意识Java】javaee中的SpringBoot在Java 开发中的应用与详细分析
本文介绍了 Spring Boot 的核心概念和使用场景,并通过一个实战项目演示了如何构建一个简单的 RESTful API。
38 5
|
27天前
|
前端开发 Java 数据库连接
【潜意识Java】深度解读JavaWeb开发在Java学习中的重要性
深度解读JavaWeb开发在Java学习中的重要性
28 4
|
27天前
|
SQL Java API
|
27天前
|
前端开发 Java 数据库连接
Java后端开发-使用springboot进行Mybatis连接数据库步骤
本文介绍了使用Java和IDEA进行数据库操作的详细步骤,涵盖从数据库准备到测试类编写及运行的全过程。主要内容包括: 1. **数据库准备**:创建数据库和表。 2. **查询数据库**:验证数据库是否可用。 3. **IDEA代码配置**:构建实体类并配置数据库连接。 4. **测试类编写**:编写并运行测试类以确保一切正常。
52 2
|
1月前
|
Java API Apache
java集成stable diffusion
通过REST API和JNI两种方法,我们可以在Java应用程序中集成Stable Diffusion模型。REST API方法更加简单和易于维护,而JNI方法则提供更高的性能。根据具体应用场景和需求,选择合适的集成方法,可以充分利用Stable Diffusion的强大功能,实现高效的图像生成和处理。
66 15

热门文章

最新文章