From 8dc70e13293f5486a510abbb882c5e667089cc9d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=81=9A=E4=B8=AA=E6=9C=89=E7=94=A8=E7=9A=84=E4=BA=BA?= <819389547@qq.com> Date: Mon, 26 Feb 2024 16:24:01 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0-=E5=AF=B9=E6=8E=A5=E7=B4=A0?= =?UTF-8?q?=E6=8F=8F=E9=80=9A=E5=9B=BE=E7=89=87=E6=9C=8D=E5=8A=A1=E6=BC=94?= =?UTF-8?q?=E7=A4=BA=E6=B5=8B=E8=AF=95=E6=96=B9=E6=B3=95=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 001.jpg | Bin 0 -> 26170 bytes README.md | 10 +- .../aliexpress/AliexpressDemoController.java | 50 ++++++ .../java/com/ruoyi/ap/AliexpressTest.java | 155 ++++++++++++++++++ 4 files changed, 214 insertions(+), 1 deletion(-) create mode 100644 001.jpg create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/web/controller/aliexpress/AliexpressDemoController.java create mode 100644 ruoyi-admin/src/test/java/com/ruoyi/ap/AliexpressTest.java diff --git a/001.jpg b/001.jpg new file mode 100644 index 0000000000000000000000000000000000000000..97db9eee6c047b520f8e6fe790c94215ba351019 GIT binary patch literal 26170 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 literal 0 HcmV?d00001 diff --git a/README.md b/README.md index 935d79c..2c41875 100644 --- a/README.md +++ b/README.md @@ -18,4 +18,12 @@ ## 对接接口整理,以及工期评估 https://shimo.im/sheets/wV3VM9r189Sxb0Ay/MODOC ### 协作链接 - https://shimo.im/file-invite/6bxRUFBtaBLwA9cq66ZuyEPQp9wl6/ +8618750905359 邀请您协作《对接速卖通接口API》,点击链接开始编辑 \ No newline at end of file + https://shimo.im/file-invite/6bxRUFBtaBLwA9cq66ZuyEPQp9wl6/ +8618750905359 邀请您协作《对接速卖通接口API》,点击链接开始编辑 + +## 速卖通 卖家账号 + zyjwish21@163.com + vogocm2019 + 厦门旺嘉创亿电子商务有限公司 + +## 速卖通开发信息 +https://www.yuque.com/xiaoxuesheng-4pior/cioqum/ngy0836sxw13f6ag?singleDoc# 《速卖通接口对接》 \ No newline at end of file diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/aliexpress/AliexpressDemoController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/aliexpress/AliexpressDemoController.java new file mode 100644 index 0000000..55e9034 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/aliexpress/AliexpressDemoController.java @@ -0,0 +1,50 @@ +package com.ruoyi.web.controller.aliexpress; + +import com.global.iop.api.IopClient; +import com.global.iop.api.IopClientImpl; +import com.global.iop.api.IopRequest; +import com.global.iop.api.IopResponse; +import com.global.iop.domain.Protocol; +import com.global.iop.util.ApiException; +import com.ruoyi.common.annotation.Log; +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.common.core.domain.entity.SysUser; +import com.ruoyi.common.core.page.TableDataInfo; +import com.ruoyi.common.enums.BusinessType; +import com.ruoyi.system.service.ISysUserService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + * 用户信息 + * + * @author ruoyi + */ +@RestController +@Api("对接速卖通图片演示") +@RequestMapping("/aliexpress/img") +public class AliexpressDemoController extends BaseController +{ + + /** + * 获取图片银行分页查询 + */ + @Log(title = "查询图片", businessType = BusinessType.SELECT) + @ApiOperation("获取用户列表") + @GetMapping("/list") + public String list(SysUser user) throws ApiException { + IopClient iopClient = new IopClientImpl("https://api-sg.aliexpress.com", "500516", "5KD1nXaPxADnXUxISAImi1gcgPqbKMN4");; + IopRequest request = new IopRequest(); + request.setApiName("aliexpress.photobank.redefining.listimagepagination"); + request.addApiParameter("aeop_image_pagination_request", "{\"group_id\":\"0\", \"current_page\":\"1\",\"location_type\":\"0\",\"page_size\":\"10\"}"); + IopResponse response = iopClient.execute(request, "50000100810eAzdp7j9nwt11e7586aQDBYn1hnSitvhdCbyemVxjhEPKZHhuGq44F3KQ", Protocol.TOP); + System.out.println("list:" + response.getGopResponseBody()); + return response.getGopResponseBody(); + } +} diff --git a/ruoyi-admin/src/test/java/com/ruoyi/ap/AliexpressTest.java b/ruoyi-admin/src/test/java/com/ruoyi/ap/AliexpressTest.java new file mode 100644 index 0000000..5d1253c --- /dev/null +++ b/ruoyi-admin/src/test/java/com/ruoyi/ap/AliexpressTest.java @@ -0,0 +1,155 @@ +package com.ruoyi.ap; + +import cn.hutool.json.JSONObject; +import cn.hutool.json.JSONUtil; +import com.global.iop.api.IopClient; +import com.global.iop.api.IopClientImpl; +import com.global.iop.api.IopRequest; +import com.global.iop.api.IopResponse; +import com.global.iop.domain.Protocol; +import com.global.iop.util.ApiException; +import com.global.iop.util.Constants; +import com.global.iop.util.FileItem; + +/** + * @ClassName AliexpressTest + * @Description TODO + * @Author xxs + * @Date 2024/2/22 15:32 + * @Version 1.0 + **/ +public class AliexpressTest { + private static IopClient iopClient = new IopClientImpl("https://api-sg.aliexpress.com", "500516", "5KD1nXaPxADnXUxISAImi1gcgPqbKMN4");; + private static String token; + + public static void init() throws ApiException { + iopClient = new IopClientImpl("https://api-sg.aliexpress.com", "500516", "5KD1nXaPxADnXUxISAImi1gcgPqbKMN4"); + IopRequest request = new IopRequest(); + request.setApiName("/auth/token/create"); + request.addApiParameter("code", "0_2DL4DV3jcU1UOT7WGI1A4rY91"); + request.addApiParameter("uuid", "uuid"); + IopResponse response = iopClient.execute(request, Protocol.GOP); + token = response.getGopResponseBody(); + } + + // 4.换取access_token 调用: /auth/token/create 获取access_token。 + public static void authToke() throws ApiException { +// iopClient = new IopClientImpl("https://api-sg.aliexpress.com", "500516", "5KD1nXaPxADnXUxISAImi1gcgPqbKMN4"); + IopRequest request = new IopRequest(); + request.setApiName("/auth/token/create"); + request.addApiParameter("code", "3_500516_dfXuvcFlRyBdEptp8jE2f4xx6122"); +// request.addApiParameter("uuid", "uuid"); + IopResponse response = iopClient.execute(request, Protocol.GOP); + System.out.println("response:" + response); + String responseBody = response.getGopResponseBody(); + JSONObject entries = JSONUtil.parseObj(responseBody); + System.out.println("token:" + token); + token = entries.get("access_token").toString(); + System.out.println("accessToken:" + token); + } + + + public static void getProductList() throws ApiException { + IopRequest request = new IopRequest(); + request.setApiName("aliexpress.solution.product.list.get"); + request.addApiParameter("aeop_a_e_product_list_query", "{\"gmt_modified_start\":\"2012-01-01 12:13:14\",\"gmt_modified_end\":\"2012-01-01 12:13:14\",\"off_line_time\":\"7\",\"gmt_create_start\":\"2012-01-01 12:13:14\",\"subject\":\"knew odd\",\"have_national_quote\":\"n\",\"ws_display\":\"expire_offline\",\"product_status_type\":\"onSelling\",\"owner_member_id\":\"aliqatest01\",\"gmt_create_end\":\"2012-01-01 12:13:14\",\"group_id\":\"1234\",\"product_id\":\"123\",\"excepted_product_ids\":[\"[32962333569,32813963253]\",\"[32962333569,32813963253]\"],\"sku_code\":\"123ABC\",\"current_page\":\"2\",\"page_size\":\"30\"}"); + IopResponse response = iopClient.execute(request, "50000101922g2UZqpeWbbweOUTkniPJ4fx18c3d40fxGDxHPqENvxQrQZZvqiUibKx01", Protocol.TOP); + System.out.println(response.getGopResponseBody()); + } + + public static void main(String[] args) throws Exception { +// authToke(); + + token = "50000100810eAzdp7j9nwt11e7586aQDBYn1hnSitvhdCbyemVxjhEPKZHhuGq44F3KQ"; +// testUpload(); +// testQuery(); +// group(); + updateImg(); + imgList(); +// getPhotoInfo(); + } + + public static void updateImg() throws ApiException { + IopRequest request = new IopRequest(); + request.setApiName("aliexpress.photobank.redefining.uploadimage"); + request.addApiParameter("file_name", "001.jpg"); + request.addApiParameter("group_id", "0"); + request.addFileParameter("image_bytes",new FileItem("E:\\工作资料\\图片素材\\001.jpg")); + IopResponse response = iopClient.execute(request, token, Protocol.TOP); + System.out.println(response.getGopResponseBody()); + } + + public static void testQuery() throws Exception { +// IopRequest iopRequest = new IopRequest("aliexpress.photobank.redefining.queryphotobankimagebypaths"); +// iopRequest.setHttpMethod(Constants.METHOD_POST); +// iopRequest.addApiParameter("paths", "001.jpg"); +// //tip:请注意simplify为请求公共参数,在设置该参数时请作为一级参数单独设置,不要作为任意子参数放到业务参数下(即单独使用下面一行代码) +//// iopRequest.addApiParameter("simplify", "true"); +// IopResponse rsp = iopClient.execute(iopRequest, token, Protocol.TOP); +// System.out.println("testQuery:" + JSONUtil.toJsonStr(rsp)); + + IopRequest request = new IopRequest(); + request.setApiName("aliexpress.photobank.redefining.queryphotobankimagebypaths"); + request.addApiParameter("paths", "001.jpg"); + IopResponse response = iopClient.execute(request, token, Protocol.TOP); + System.out.println("testQuery:" + JSONUtil.toJsonStr(response.getGopResponseBody())); + } + + public static void imgList() throws ApiException { + IopRequest request = new IopRequest(); + request.setApiName("aliexpress.photobank.redefining.listimagepagination"); + request.addApiParameter("aeop_image_pagination_request", "{\"group_id\":\"0\", \"current_page\":\"1\",\"location_type\":\"0\",\"page_size\":\"10\"}"); + IopResponse response = iopClient.execute(request, token, Protocol.TOP); + System.out.println("list:" + response.getGopResponseBody()); + } + + public static void group() throws ApiException { + IopRequest request = new IopRequest(); + request.setApiName("aliexpress.photobank.redefining.listgroup"); +// request.addApiParameter("group_id", "8401"); + IopResponse response = iopClient.execute(request, token, Protocol.TOP); + System.out.println(response.getGopResponseBody()); + } + + public static void getPhotoInfo() throws ApiException { + IopRequest request = new IopRequest(); + request.setApiName("aliexpress.photobank.redefining.getphotobankinfo"); + IopResponse response = iopClient.execute(request, token, Protocol.TOP); + System.out.println(response.getGopResponseBody()); + } + + public static void testUpload() throws Exception { + IopRequest iopRequest = new IopRequest("aliexpress.image.redefining.uploadtempimage"); + iopRequest.setHttpMethod(Constants.METHOD_POST); + iopRequest.addFileParameter("file_data", new FileItem("E:\\工作资料\\图片素材\\001.jpg")); + iopRequest.addApiParameter("src_file_name", "001.jpg"); + iopRequest.addApiParameter("simplify", "true"); + // 如果是TOP协议下的老api 则选择top协议,apiName以'.'为分隔符的是TOP协议 比如aliexpress.image.redefining.uploadtempimage + // 如果是在新开放平台(GOP)配置的api,则选择GOP协议,apiName以'/'为分隔符 + // 具体某个API属于哪一种协议请参考每个API页面的sample code + IopResponse rsp = iopClient.execute(iopRequest, token, Protocol.TOP); + System.out.println("testUpload:" + JSONUtil.toJsonStr(rsp)); + } + + + public void testGopTraditionalApi() throws Exception { + IopRequest iopRequest = new IopRequest("/globalopen/api/get/a"); + iopRequest.setHttpMethod(Constants.METHOD_GET); + iopRequest.addApiParameter("apiId", "1"); + iopRequest.addApiParameter("simplify", "true"); + IopResponse rsp = iopClient.execute(iopRequest, Protocol.GOP); + System.out.println(JSONUtil.toJsonStr(rsp)); + } + + public void testGopRestfulApi() throws Exception { + // path参数 + IopRequest iopRequest = new IopRequest("/globalopen/api/getApiDsl/{region}/{env}/{apiId}"); + iopRequest.setHttpMethod(Constants.METHOD_PUT); + iopRequest.addApiParameter("region", "global"); + iopRequest.addApiParameter("env", "PRE"); + iopRequest.addApiParameter("apiId", "1"); + iopRequest.addApiParameter("simplify", "true"); + IopResponse rsp = iopClient.execute(iopRequest, token, Protocol.REST_VND_2); + System.out.println(JSONUtil.toJsonStr(rsp)); + } +}