亚马逊接口测试地址:

https://mws.amazonservices.com/scratchpad/index.html

开始 test

AmazonApplicationTests

package com.example.amazon.amazon;import com.example.amazon.amazon.untils.AmazonConstant;
import com.example.amazon.amazon.untils.AmazonUntil;
import com.example.amazon.amazon.untils.GetReportListUntil;
import com.example.amazon.amazon.untils.GetReportList;
import net.sf.json.JSONArray;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;import java.math.BigDecimal;
import java.util.HashMap;@SpringBootApplication
@RunWith(SpringRunner.class)
@SpringBootTest
public class AmazonApplicationTests implements AmazonConstant {/** **AmazonUntil *Reports*/@Testpublic void Reports() {//***亚马逊提供密钥***String secretKey = "r1LaemH2Jx2x******************k2";HashMap<String, String> parameters = new HashMap<>();//***亚马逊提供访问id***parameters.put("AWSAccessKeyId", AmazonUntil.urlEncode("AK*******KA"));//***商家提供授权token***parameters.put("MWSAuthToken", AmazonUntil.urlEncode("amzn.mws.96**********b6"));//***商家提供卖家id***parameters.put("SellerId", AmazonUntil.urlEncode("A1T**************IJGDS"));//***Request URL: http://docs.developer.amazonservices.com/zh_CN/dev_guide/DG_Endpoints.html***parameters.put("ReportType", "_GET_FBA_FULFILLMENT_CURRENT_INVENTORY_DATA_");parameters.put("MarketplaceId.Id.1", "ATVPDKIKX0DER");try {String  orders = AmazonUntil.doPost( parameters, secretKey);GetReportList(orders);} catch (Exception e) {;}//todo 解析orders数组就是每一条订单的数据}/** **GetReportListUntil *GetReportRequestList*/public void GetReportList(String  ReportRequestId) {//***亚马逊提供密钥***String secretKey = "r1LaemH2Jx2xGStbTqadn1mVJwzYFLyBMKZQLKk2";HashMap<String, String> parameters = new HashMap<>();//***亚马逊提供访问id***parameters.put("AWSAccessKeyId", AmazonUntil.urlEncode("AKIAJEBONJNSXN5L5WKA"));//***商家提供授权token***parameters.put("MWSAuthToken", AmazonUntil.urlEncode("amzn.mws.96b29db4-0820-7d35-139c-ad9f3ea196b6"));//***商家提供卖家id***parameters.put("SellerId", AmazonUntil.urlEncode("A1TUEZAEMIJGDS"));//***Request URL: http://docs.developer.amazonservices.com/zh_CN/dev_guide/DG_Endpoints.html***//n为毫秒数try { Thread.sleep ( 10000 ) ;} catch (InterruptedException ie){}parameters.put("ReportRequestIdList.Id.1", ReportRequestId);String orders = "";try {orders = GetReportListUntil.doPost( parameters, secretKey);System.out.println("?????"+orders);GetReport(orders); } catch (Exception e) {;}//todo 解析orders数组就是每一条订单的数据}/** **GetReportListUntil *GetReportList*  public void GetReport(String  GetReport) {*///    @Testpublic void GetReport(String  GetReport) {//***亚马逊提供密钥***String secretKey = "r1LaemH2Jx2xGStbTqadn1mVJwzYFLyBMKZQLKk2";HashMap<String, String> parameters = new HashMap<>();//***亚马逊提供访问id***parameters.put("AWSAccessKeyId", AmazonUntil.urlEncode("AKIAJEBONJNSXN5L5WKA"));//***商家提供授权token***parameters.put("MWSAuthToken", AmazonUntil.urlEncode("amzn.mws.96b29db4-0820-7d35-139c-ad9f3ea196b6"));//***商家提供卖家id***parameters.put("SellerId", AmazonUntil.urlEncode("A1TUEZAEMIJGDS"));//***Request URL: http://docs.developer.amazonservices.com/zh_CN/dev_guide/DG_Endpoints.html***parameters.put("ReportId", GetReport);String orders = "";try {orders = GetReportList.doPost( parameters, secretKey);} catch (Exception e) {;}//todo 解析orders数组就是每一条订单的数据}}

2、RequestReport 接口调用

package com.example.amazon.amazon.untils;import net.sf.json.JSON;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import net.sf.json.xml.XMLSerializer;
import org.apache.commons.codec.binary.Base64;
import org.apache.http.HttpEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.joda.time.DateTime;
import org.joda.time.DateTimeZone;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.net.URI;
import java.net.URISyntaxException;
import java.net.URLEncoder;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.security.SignatureException;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.TreeMap;/*** @auther: hujun* @date: 2019/5/8 14:19* @email: 461214737@qq.com* @description: 亚马逊订单api请求工具类*/
public class AmazonUntil implements AmazonConstant {private static final Logger logger = LoggerFactory.getLogger(AmazonUntil.class);/**** post请求通道* @param secretKey* @param parameters* @return* @throws Exception*/public static String doPost(HashMap<String, String> parameters, String secretKey) throws Exception {String str = DateTime.now(DateTimeZone.UTC).toString(TIME_FORMAT_STR);/**++++++++++++++++++++++++++++++获取当天前00:00:00分-23:59:59的信息 查找过去一天的时间段的数据信息++++++++++++++++++++++++++++++*/// long zero = LocalDateTime.of(LocalDate.now(), LocalTime.of(8,0)).toInstant(ZoneOffset.ofHours(8)).toEpochMilli();//String after =new DateTime(zero-1000*3600*24, DateTimeZone.UTC).toString(TIME_FORMAT_STR);//String before =new DateTime(zero, DateTimeZone.UTC).toString(TIME_FORMAT_STR);/**++++++++++++++++++++++++++++++++++++以上获取过去整点一天的订单数据信息++++++++++++++++++++++++++++++++++++++++++*//***post请求地址*//****请求的Amazon方法*/String ACTION = "RequestReport";parameters.put("Timestamp", urlEncode(str));parameters.put("Action", AmazonUntil.urlEncode(ACTION));parameters.put("SignatureMethod", AmazonUntil.urlEncode(ALGORITHM));parameters.put("Version", AmazonUntil.urlEncode(VERSION));parameters.put("SignatureVersion", AmazonUntil.urlEncode(SIGNATURE_VERSION));parameters.put("StartDate", urlEncode("2020-04-02T00:00:00+00:00"));parameters.put("EndDate", urlEncode("2020-04-03T00:00:00+00:00"));parameters.put("Action", AmazonUntil.urlEncode(ACTION));String formattedParameters = calculateStringToSignV2(parameters, url);String signature = sign(formattedParameters, secretKey);parameters.put("Signature", urlEncode(signature));String paramStr = sortParams(new StringBuilder(), parameters);return doPost(url, paramStr);}/*** signV2签名内容** @param parameters* @param serviceUrl* @return* @throws SignatureException* @throws URISyntaxException*/public static String calculateStringToSignV2(Map<String, String> parameters, String serviceUrl)throws  URISyntaxException {URI endpoint = new URI(serviceUrl.toLowerCase());StringBuilder data = new StringBuilder();data.append("POST\n");data.append(endpoint.getHost());data.append("\n/Reports/2009-01-01");data.append("\n");return sortParams(data, parameters);}/**** signV2签名方式* @param data* @param secretKey* @return* @throws NoSuchAlgorithmException* @throws InvalidKeyException* @throws IllegalStateException* @throws UnsupportedEncodingException*/public static String sign(String data, String secretKey)throws NoSuchAlgorithmException, InvalidKeyException,IllegalStateException, UnsupportedEncodingException {Mac mac = Mac.getInstance(ALGORITHM);mac.init(new SecretKeySpec(secretKey.getBytes(CHARACTER_ENCODING),ALGORITHM));byte[] signature = mac.doFinal(data.getBytes(CHARACTER_ENCODING));String signatureBase64 = new String(Base64.encodeBase64(signature),CHARACTER_ENCODING);return new String(signatureBase64);}/*** url非法字符转换** @param rawValue* @return*/public static String urlEncode(String rawValue) {String value = (rawValue == null) ? "" : rawValue;String encoded = null;try {encoded = URLEncoder.encode(value, CHARACTER_ENCODING).replace("+", "%20").replace("*", "%2A").replace("%7E", "~");} catch (UnsupportedEncodingException e) {System.err.println("Unknown encoding: " + CHARACTER_ENCODING);}return encoded;}/**** post请求* @param url* @param params* @return* @throws Exception*/public static String doPost(String url, String params) throws Exception {CloseableHttpClient httpclient = HttpClients.createDefault();HttpPost httpPost = new HttpPost(url);httpPost.addHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8");httpPost.setHeader("Accept", "Accept: text/plain, */*");httpPost.addHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3724.8 Safari/537.36");httpPost.addHeader("x-amazon-user-agent", "AmazonJavascriptScratchpad/1.0 (Language=Javascript)");httpPost.addHeader("X-Requested-With", "XMLHttpRequest");String charSet = "UTF-8";StringEntity entity = new StringEntity(params, charSet);httpPost.setEntity(entity);CloseableHttpResponse response = null;try {response = httpclient.execute(httpPost);HttpEntity responseEntity = response.getEntity();InputStream is = responseEntity.getContent();return parseXML(is);} catch (Exception e) {throw e;} finally {if (response != null) {try {response.close();} catch (IOException e) {throw e;}}try {httpclient.close();} catch (IOException e) {throw e;}}}/*** 对传递参数转换** @param data* @param parameters* @return*/public static String sortParams(StringBuilder data, Map<String, String> parameters) {Map<String, String> sorted = new TreeMap<String, String>();sorted.putAll(parameters);Iterator<Entry<String, String>> pairs =sorted.entrySet().iterator();while (pairs.hasNext()) {Entry<String, String> pair = pairs.next();if (pair.getValue() != null) {data.append(pair.getKey() + "=" + pair.getValue());} else {data.append(pair.getKey() + "=");}if (pairs.hasNext()) {data.append("&");}}return data.toString();}private static String parseXML(InputStream is) {JSON xml = new XMLSerializer().readFromStream(is);JSONObject jsonObject = JSONObject.fromObject(xml);JSONArray orders = new JSONArray();if (null != jsonObject.get("RequestReportResult")) {JSONObject listOrdersResult = (JSONObject) jsonObject.get("RequestReportResult");if (listOrdersResult != null) {/***获取到所有的订单内容 list*/JSONObject orderLists =null;try {orderLists=(JSONObject) listOrdersResult.get("ReportRequestInfo");}catch (Exception e){}if (orderLists != null) {if (orderLists.size() == 1) {orders.add(orderLists.get("ReportRequestId"));} else {/***获取一个订单批次的所有订单内容*///   orders = (JSONArray) orderLists.get("ReportRequestId");orders.add(orderLists);}}}}JSONObject job=  orders.getJSONObject(0);   // 4、把里面想要的参数一个个用.属性名的方式获取到String ReportRequestId= job.getString("ReportRequestId");return ReportRequestId;}}

3、GetReportRequestList接口调用

package com.example.amazon.amazon.untils;import net.sf.json.JSON;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import net.sf.json.xml.XMLSerializer;
import org.apache.commons.codec.binary.Base64;
import org.apache.http.HttpEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.joda.time.DateTime;
import org.joda.time.DateTimeZone;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.net.URI;
import java.net.URISyntaxException;
import java.net.URLEncoder;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.security.SignatureException;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.TreeMap;/*** @auther: hujun* @date: 2019/5/8 14:19* @email: 461214737@qq.com* @description: 亚马逊订单api请求工具类*/
public class GetReportListUntil implements AmazonConstant {private static final Logger logger = LoggerFactory.getLogger(AmazonUntil.class);private static String toparams ="";static String ReportRequestId="";/**** post请求通道* @param secretKey* @param parameters* @return* @throws Exception*/public static String doPost( HashMap<String, String> parameters, String secretKey) throws Exception {String str = DateTime.now(DateTimeZone.UTC).toString(TIME_FORMAT_STR);/****请求的Amazon方法*/String ACTION = "GetReportRequestList";parameters.put("Timestamp", AmazonUntil.urlEncode(str));parameters.put("Action", AmazonUntil.urlEncode(ACTION));parameters.put("SignatureMethod", AmazonUntil.urlEncode(ALGORITHM));parameters.put("Version", AmazonUntil.urlEncode(VERSION));parameters.put("SignatureVersion", AmazonUntil.urlEncode(SIGNATURE_VERSION));//   parameters.put("ReportId", AmazonUntil.urlEncode("ef61c6b2-b103-4275-b625-eeed59746e15"));String formattedParameters = AmazonUntil.calculateStringToSignV2(parameters, url);String signature = AmazonUntil.sign(formattedParameters, secretKey);parameters.put("Signature", AmazonUntil.urlEncode(signature));String paramStr = AmazonUntil.sortParams(new StringBuilder(), parameters);return doPost(url, paramStr);}/**** post请求* @param url* @param params* @return* @throws Exception*/public static String doPost(String url, String params) throws Exception {CloseableHttpClient httpclient = HttpClients.createDefault();HttpPost httpPost = new HttpPost(url);httpPost.addHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8");httpPost.setHeader("Accept", "Accept: text/plain, */*");httpPost.addHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3724.8 Safari/537.36");httpPost.addHeader("x-amazon-user-agent", "AmazonJavascriptScratchpad/1.0 (Language=Javascript)");httpPost.addHeader("X-Requested-With", "XMLHttpRequest");String charSet = "UTF-8";System.out.println("params看"+params);toparams = params;StringEntity entity = new StringEntity(params, charSet);httpPost.setEntity(entity);CloseableHttpResponse response = null;try {String as="";response = httpclient.execute(httpPost);HttpEntity responseEntity = response.getEntity();InputStream is = responseEntity.getContent();return parseXML(is);} catch (Exception e) {System.out.println(e.getMessage());throw e;} finally {if (response != null) {try {response.close();} catch (IOException e) {throw e;}}try {httpclient.close();} catch (IOException e) {throw e;}}}private static String parseXML(InputStream is) throws Exception {JSON xml = new XMLSerializer().readFromStream(is);JSONObject jsonObject = JSONObject.fromObject(xml);JSONArray orders = new JSONArray();if (null != jsonObject.get("GetReportRequestListResult")) {JSONObject listOrdersResult = (JSONObject) jsonObject.get("GetReportRequestListResult");if (listOrdersResult != null) {/***获取到所有的订单内容 list*/JSONObject orderLists =null;try {orderLists=(JSONObject) listOrdersResult.get("ReportRequestInfo");}catch (Exception e){}if (orderLists != null) {if (orderLists.size() == 1) {orders.add(orderLists.get("ReportRequestId"));} else {/***获取一个订单批次的所有订单内容*///   orders = (JSONArray) orderLists.get("ReportRequestId");orders.add(orderLists);}}}}JSONObject job=  orders.getJSONObject(0);   // 4、把里面想要的参数一个个用.属性名的方式获取到if(job.getString("ReportProcessingStatus").equals("_DONE_")) {System.out.println("ReportProcessingStatus为:"+job.getString("ReportProcessingStatus"));ReportRequestId= job.getString("GeneratedReportId");}else {if(job.getString("ReportProcessingStatus").equals("_IN_PROGRESS_")) {//n为毫秒数try { Thread.sleep ( 5000 ) ;} catch (InterruptedException ie){}System.out.println("ReportProcessingStatus"+job.getString("ReportProcessingStatus"));doPost(url,toparams);}else {System.err.println("ReportProcessingStatus"+job.getString("ReportProcessingStatus"));}}System.out.println("ReportRequestId\n"+ReportRequestId);return ReportRequestId;}}

4、最后一步 GetReport 接口调用

package com.example.amazon.amazon.untils;import net.sf.json.JSON;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import net.sf.json.xml.XMLSerializer;
import org.apache.commons.codec.binary.Base64;
import org.apache.http.HttpEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.joda.time.DateTime;
import org.joda.time.DateTimeZone;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.URI;
import java.net.URISyntaxException;
import java.net.URLEncoder;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.security.SignatureException;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.TreeMap;
import java.util.stream.Collectors;/*** @auther: hujun* @date: 2019/5/8 14:19* @email: 461214737@qq.com* @description: 亚马逊订单api请求工具类*/
public class GetReportList implements AmazonConstant {private static final Logger logger = LoggerFactory.getLogger(AmazonUntil.class);private static final String params ="";/**** post请求通道* @param secretKey* @param parameters* @return* @throws Exception*/public static String doPost( HashMap<String, String> parameters, String secretKey) throws Exception {String str = DateTime.now(DateTimeZone.UTC).toString(TIME_FORMAT_STR);/****请求的Amazon方法*/String ACTION = "GetReport";parameters.put("Timestamp", AmazonUntil.urlEncode(str));parameters.put("Action", AmazonUntil.urlEncode(ACTION));parameters.put("SignatureMethod", AmazonUntil.urlEncode(ALGORITHM));parameters.put("Version", AmazonUntil.urlEncode(VERSION));parameters.put("SignatureVersion", AmazonUntil.urlEncode(SIGNATURE_VERSION));//   parameters.put("ReportId", AmazonUntil.urlEncode("ef61c6b2-b103-4275-b625-eeed59746e15"));String formattedParameters = AmazonUntil.calculateStringToSignV2(parameters, url);String signature = AmazonUntil.sign(formattedParameters, secretKey);parameters.put("Signature", AmazonUntil.urlEncode(signature));String paramStr = AmazonUntil.sortParams(new StringBuilder(), parameters);return doPost(url, paramStr);}/**** post请求* @param url* @param params* @return* @throws Exception*/public static String doPost(String url, String params) throws Exception {CloseableHttpClient httpclient = HttpClients.createDefault();HttpPost httpPost = new HttpPost(url);httpPost.addHeader("Content-Type", "application/x-www-form-urlencoded;charset=utf-8");httpPost.setHeader("Accept", "Accept: text/plain, */*");httpPost.addHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3724.8 Safari/537.36");httpPost.addHeader("x-amazon-user-agent", "AmazonJavascriptScratchpad/1.0 (Language=Javascript)");httpPost.addHeader("X-Requested-With", "XMLHttpRequest");String charSet = "UTF-8";StringEntity entity = new StringEntity(params, charSet);httpPost.setEntity(entity);CloseableHttpResponse response = null;try {response = httpclient.execute(httpPost);HttpEntity responseEntity = response.getEntity();InputStream is = responseEntity.getContent();return parseXML(is);} catch (Exception e) {throw e;} finally {if (response != null) {try {response.close();} catch (IOException e) {throw e;}}try {httpclient.close();} catch (IOException e) {throw e;}}}private static String parseXML(InputStream is) throws Exception {System.out.println("正在获取……请稍等");String result = new BufferedReader(new InputStreamReader(is)).lines().parallel().collect(Collectors.joining("\n"));result=result.replace("2020-","  2020-");String [] a1=result.split("  ");JSONObject jsonParam = new JSONObject();int y=0;for(int i=0;i<a1.length;i++){if(y==0) {y++;jsonParam.put("snapshot-date",a1[i]);System.out.println("snapshot-date: "+a1[i]+"\n");}else if(y==1) {y++;jsonParam.put("fnsku",a1[i]);System.out.println("fnsku: "+a1[i]+"\n");}else if(y==2) {y++;jsonParam.put("sku",a1[i]);System.out.println("sku: "+a1[i]+"\n");}else if(y==3) {y++;jsonParam.put("product-name",a1[i]);System.out.println("product-name: "+a1[i]+"\n");}else if(y==4) {y++;jsonParam.put("quantity",a1[i]);System.out.println("quantity: "+a1[i]+"\n");}else if(y==5) {y++;jsonParam.put("fulfillment-center-id",a1[i]);System.out.println("fulfillment-center-id: "+a1[i]+"\n");}else if(y==6) {y++;jsonParam.put("snapshot-date",a1[i]);System.out.println("detailed-disposition: "+a1[i]+"\n");}else if(y==7) {y=0;jsonParam.put("country",a1[i]);System.out.println("country: "+a1[i]+"\n");}}//   System.out.println("result"+result);return null;}}

5、通用字段

package com.example.amazon.amazon.untils;/*** @auther: hujun* @date: 2019/5/8 11:23* @email: 461214737@qq.com* @description: 亚马逊请求默认参数*/
public interface AmazonConstant {String url = "https://mws.amazonservices.com/Reports/2009-01-01";/***post请求后缀*/String SUFFIX_POST_URL = "/Reports/2009-01-01";/***订单api版本*/String VERSION = "2009-01-01";/***签名方式*/String ALGORITHM = "HmacSHA256";/****时间转换格式*/String TIME_FORMAT_STR = "yyyy'-'MM'-'dd'T'HH':'mm':'ss'Z'";/****编码格式*/String CHARACTER_ENCODING = "UTF-8";String SIGNATURE_VERSION ="2";/***订单中的所有商品均已发货*/String SHIPPED ="Shipped";/***   AWSAccessKeyId=AKIAJEBONJNSXN5L5WKA*   &Action=RequestReport*   &EndDate=2020-04-07T16%3A00%3A00Z*   &MWSAuthToken=amzn.mws.96b29db4-0820-7d35-139c-ad9f3ea196b6*   &MarketplaceIdList.Id.1=ATVPDKIKX0DER*   &Merchant=A1TUEZAEMIJGDS*   &ReportType=_GET_MERCHANT_LISTINGS_ALL_DATA_*   &SignatureMethod=HmacSHA256*   &SignatureVersion=2*   &StartDate=2020-03-31T16%3A00%3A00Z*   &Timestamp=2020-04-09T09%3A21%3A21Z*   &Version=2009-01-01*  String AWSAccessKeyId="AKIAJEBONJNSXN5L5WKA";String Action="ListOrders";String EndDate="2020-04-07T16%3A00%3A00Z";String MWSAuthToken="amzn.mws.96b29db4-0820-7d35-139c-ad9f3ea196b6";String MarketplaceIdList="ATVPDKIKX0DER";String Merchant="A1TUEZAEMIJGDS";String ReportType="_GET_MERCHANT_LISTINGS_ALL_DATA_";String SignatureMethod="HmacSHA256";String SignatureVersion="2";String StartDate="2020-03-31T16%3A00%3A00Z";String Timestamp="2020-04-09T09%3A21%3A21Z";**/
}

项目拉去git地址 (此项目地址提供的是亚马逊订单api接口开发demo)

https://gitee.com/thlink/idie/tree/master

亚马逊调用Report接口全流程相关推荐

  1. 亚马逊商品详情API接口-(item_get-获得AMAZON商品详情接口),亚马逊详情API接口

    一.亚马逊商品详情API接口-(item_get-获得AMAZON商品详情接口),亚马逊详情API接口可以获取到商品价格,商品库存,商品销量,商品ID,商品图片,商品sku属性,sku详情,sku图片 ...

  2. 亚马逊跨境开店的流程是怎样的

    随着市场经济的不断发展,从事跨境电商行业的商家也越来越多,而亚马逊平台流量高.利润高,所以很多卖家纷纷涌入.那么,想要在亚马逊平台跨境开店,它的流程是什么样的呢? 一.注册营业执照 注册公司营业执照是 ...

  3. Amazon亚马逊 Vendor Central EDI对接流程是什么?

    亚马逊Amazon平台入驻主要有以下4种账号类型 Amazon Seller Central(3P账号) Amazon Business Seller(AB账号) Amazon Vendor Expr ...

  4. 亚马逊常用API接口,亚马逊国际获得AMAZON商品详情 API 返回值说明

    为了进行电商平台亚马逊的API开发,首先我们需要做下面几件事情. 1)开发者注册一个账号 2)然后为每个淘宝应用注册一个应用程序键(App Key) . 3)下载亚马逊API的SDK并掌握基本的API ...

  5. 亚马逊筋膜枪UL1647测试报告流程介绍

    亚马逊卖筋膜枪需要提供UL1647测试报告,具体的项目流程如下: 筋膜枪,又称深层肌筋膜冲击仪,是一种软组织按摩工具,通过高频率冲击放松身体的软组织.筋膜枪利用其内部特制的高速电机来带动"枪 ...

  6. 亚马逊商城最新品牌授权流程-2022年

    当需要把一个亚马逊店铺已经备案的品牌授权到另外的亚马逊店铺时,需要执行品牌授权.流程如下: 1,登陆备案过品牌的亚马逊品牌账号,记得在之前登陆的环境,不要搞错电脑,否则会导致关联死账号:https:/ ...

  7. 亚马逊点Report abuse删差评的详细方法

    亚马逊删差评最好的方法是至少5个成堆在同个LISTING下面,.然后用大量高权重买家号,每天有规律的有节奏的点Report abuse.当然在点之前也要像正常浏览一样看看商品和其他review.我们知 ...

  8. 电商api接口,淘宝/天猫、1688、拼多多、亚马逊等api接口

    测试 淘宝/天猫--item_get - 获得淘宝产品详情 Request address: https://api-gw.onebound.cn/taobao/item_get/?key=& ...

  9. 亚马逊店铺关联的申诉流程分享给大家。

    首先我们得知道啥是账号关联,这个只有做亚马逊才有这样的概念,那么什么是账号关联? 亚马逊只允许个人或者公司拥有一个账号,无论是电话.地址.邮箱.姓名.**.电脑IP.网卡.浏览器.cookie.路由器 ...

最新文章

  1. 最新的B站弹幕和评论爬虫,你们要的冰冰来啦!
  2. 深入了解Oracle前滚恢复rolling forward(一)
  3. 零基础学Python(第一章 开发工具·最简易的环境·无需配置环境变量)
  4. oracle 导入excel时间格式,将.xls或者.excel格式的数据导入到Oracle中
  5. Educational Codeforces Round 37 (Rated for Div. 2) 1
  6. 计算机组成原理,计算机系统概论,计算机基本组成
  7. 工控领域的网络攻击 食尸鬼行动深入解读Operation Ghoul
  8. java条码大小_java - ML Kit条形码扫描:无效的图像数据大小
  9. 【网络】c++ socket 学习笔记(一)
  10. ASP.NET中的OutOfMemoryException
  11. od怎么解java打包的exe_关于打包java文件并生成可执行文件的问题
  12. 让自律成为你2019年的新名片,快来看这24种建议
  13. 计算机应用水平excel考什么,全国专业技术人员计算机应用能力考试EXCEL2003中文字处理全真模拟试卷(三)...
  14. Atitit 数据分析存储位置的查找方法与流程attilax总结
  15. 软件项目经理应具备的素质和条件_一个合格的软件项目经理应该具备哪些条件?...
  16. AutoJs学习-图灵QQ自动聊天机器人
  17. layui框架弹出窗口,点击确定跳转指定地址
  18. 我辞去了年收入50万的工作,去做在线教育的老师
  19. 新猿木子李:0基础学python培训教程 Python操作Redis之有序集合类型
  20. Delphi 把字符串复制到剪贴板

热门文章

  1. STM32 —— 温湿度( AHT20 )传感器入门
  2. 前端图片裁剪 cropperjs的简单使用
  3. linux 目录的粘滞位,Linux文件和目录的粘滞位(sticky bit)
  4. 程序员如何走向自由职业
  5. scrapy爬动态网址哔哩哔哩
  6. 本地搭建织梦php,dedecms本地安装教程,如何搭建本地环境安装织梦网
  7. 汤力嘉-秒拍-10秒拍大片!
  8. 理解 React Native 中的 AJAX 请求
  9. Vue入门(五)之组件
  10. 踩坑日记第一篇:nacos作为配置中心加载带加密的数据库连接配置文件时出现报错claims to not accept jdbcUrl, mpw...