亚马逊MWS开发套路演示
MWS是商城网络服务的缩写,具体介绍看这里http://docs.developer.amazonservices.com/zh_CN/dev_guide/DG_IfNew.html。MWS就是一组API,提供给开发者调用,实现卖家的数据上传、获取报告、库存、订单等。上面的贴出来的链接里有关于MWS开发者的详细说明,建议先好好通读下“程序员开发指南”,先了解下需要怎么去拼接请求地址和必传参数,否则会走很多弯路。
在构造一个请求MWS的url之前,你必须得有一个卖家ID(merchantId),如果你自己就是卖家,那么就拿你的卖家ID去注册一个开发者账号,亚马逊会给你一个开发者ID、一个访问秘钥ID(accessKeyId)和一个访问秘钥(secretAccessKey),我们只需要用到3个信息:merchantId、accessKeyId和secretAccessKey。如果卖家是你的朋友,那么同上,由他去注册开发者账号,把这3个信息给你即可。如果是第三方开发者(他已经自己注册了开发者账号),那么卖家需要拿第三方开发者的账号进行授权,授权他能访问卖家账号,这种情况需要把授权令牌(sellerDevAuthToken)拼接到请求地址中。最后作为开发者,你还得知道卖家的MWS究竟是在哪个国家开的,是在美国,欧洲,还是中国?每个地方对应不同的链接地址。
亚马逊 MWS 文档 » 程序开发员指南 » 亚马逊 MWS Scratchpad(测试工具),点开之后有不同国家MWS对应测试链接,可以要求把对应的参数输进去,看下API返回信息对不对。假设我的店开在中国区,那么就到https://developer.amazonservices.com.cn/这里去点开“导航 -> 亚马逊 MWS Scratchpad(测试工具)”。如果是国外的MWS会慢一些,毕竟传输路径比较长嘛。假如我现在是在北美注册的卖家账号,那么点开https://developer.amazonservices.com(等待n秒) -> Amazon MWS Scratchpad -> SellerId填merchantId、AWSAccessKeyId填accessKeyId、Secret Key填secretAccessKey -> 最后选对应API操作后,点击提交即可。
如果你想下载客户端代码,直接点开“API与文档 -> 报告(随便点开一个接口即可)-> Java客户端(选择你想要的语言)-> download”。下好了代码直接就拿来主义好了,改改上面的请求字段就可以跑起来了,看一下获取报告条数的API:
/*******************************************************************************
* Copyright 2009 Amazon Services.
* Licensed under the Apache License, Version 2.0 (the "License");
*
* You may not use this file except in compliance with the License.
* You may obtain a copy of the License at: http://aws.amazon.com/apache2.0
* This file is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
* CONDITIONS OF ANY KIND, either express or implied. See the License for the
* specific language governing permissions and limitations under the License.
* *****************************************************************************
*
* Marketplace Web Service Java Library
* API Version: 2009-01-01
* Generated: Wed Feb 18 13:28:48 PST 2009
*
*/ package com.amazonaws.mws.samples; import java.util.List;
import java.util.ArrayList;
import com.amazonaws.mws.*;
import com.amazonaws.mws.model.*;
import com.amazonaws.mws.mock.MarketplaceWebServiceMock; /**
*
* Get Report Count Samples
*
*
*/
public class GetReportCountSample { /**
* Just add a few required parameters, and try the service
* Get Report Count functionality
*
* @param args unused
*/
public static void main(String... args) { /************************************************************************
* Access Key ID and Secret Access Key ID, obtained from:
* http://aws.amazon.com
***********************************************************************/
final String accessKeyId = "WWWWWWLLLLLLFFFFFFFF";
final String secretAccessKey = "WWWWWWLLLLLLFFFFFFFFWWWWWWLLLLLLFFFFFFFF"; final String appName = "AmazonJavascriptScratchpad";
final String appVersion = "1.0"; MarketplaceWebServiceConfig config = new MarketplaceWebServiceConfig(); /************************************************************************
* Uncomment to set the appropriate MWS endpoint.
************************************************************************/
// US
config.setServiceURL("https://mws.amazonservices.com/");
// UK
// config.setServiceURL("https://mws.amazonservices.co.uk/");
// Germany
// config.setServiceURL("https://mws.amazonservices.de/");
// France
// config.setServiceURL("https://mws.amazonservices.fr/");
// Italy
// config.setServiceURL("https://mws.amazonservices.it/");
// Japan
// config.setServiceURL("https://mws.amazonservices.jp/");
// China
// config.setServiceURL("https://mws.amazonservices.com.cn/");
// Canada
// config.setServiceURL("https://mws.amazonservices.ca/");
// India
// config.setServiceURL("https://mws.amazonservices.in/"); /************************************************************************
* The argument (35) set below is the number of threads client should
* spawn for processing.
***********************************************************************/ config.setMaxAsyncThreads(35); /************************************************************************
* You can also try advanced configuration options. Available options are:
*
* - Signature Version
* - Proxy Host and Proxy Port
* - User Agent String to be sent to Marketplace Web Service
*
***********************************************************************/ /************************************************************************
* Instantiate Http Client Implementation of Marketplace Web Service
***********************************************************************/ MarketplaceWebService service = new MarketplaceWebServiceClient(
accessKeyId, secretAccessKey, appName, appVersion, config); /************************************************************************
* Uncomment to try out Mock Service that simulates Marketplace Web Service
* responses without calling Marketplace Web Service service.
*
* Responses are loaded from local XML files. You can tweak XML files to
* experiment with various outputs during development
*
* XML files available under com/amazonaws/mws/mock tree
*
***********************************************************************/
// MarketplaceWebService service = new MarketplaceWebServiceMock(); /************************************************************************
* Setup request parameters and uncomment invoke to try out
* sample for Get Report Count
***********************************************************************/ /************************************************************************
* Marketplace and Merchant IDs are required parameters for all
* Marketplace Web Service calls.
***********************************************************************/
final String merchantId = "WWWWLLLLLFFFFF";
final String sellerDevAuthToken = "<Merchant Developer MWS Auth Token>"; GetReportCountRequest request = new GetReportCountRequest();
request.setMerchant( merchantId );
//request.setMWSAuthToken(sellerDevAuthToken); // @TODO: set request parameters here invokeGetReportCount(service, request); } /**
* Get Report Count request sample
* returns a count of reports matching your criteria;
* by default, the number of reports generated in the last 90 days,
* regardless of acknowledgement status
*
* @param service instance of MarketplaceWebService service
* @param request Action to invoke
*/
public static void invokeGetReportCount(MarketplaceWebService service, GetReportCountRequest request) {
try { GetReportCountResponse response = service.getReportCount(request); System.out.println ("GetReportCount Action Response");
System.out.println ("=============================================================================");
System.out.println (); System.out.print(" GetReportCountResponse");
System.out.println();
if (response.isSetGetReportCountResult()) {
System.out.print(" GetReportCountResult");
System.out.println();
GetReportCountResult getReportCountResult = response.getGetReportCountResult();
if (getReportCountResult.isSetCount()) {
System.out.print(" Count");
System.out.println();
System.out.print(" " + getReportCountResult.getCount());
System.out.println();
}
}
if (response.isSetResponseMetadata()) {
System.out.print(" ResponseMetadata");
System.out.println();
ResponseMetadata responseMetadata = response.getResponseMetadata();
if (responseMetadata.isSetRequestId()) {
System.out.print(" RequestId");
System.out.println();
System.out.print(" " + responseMetadata.getRequestId());
System.out.println();
}
}
System.out.println();
System.out.println(response.getResponseHeaderMetadata());
System.out.println(); } catch (MarketplaceWebServiceException ex) { System.out.println("Caught Exception: " + ex.getMessage());
System.out.println("Response Status Code: " + ex.getStatusCode());
System.out.println("Error Code: " + ex.getErrorCode());
System.out.println("Error Type: " + ex.getErrorType());
System.out.println("Request ID: " + ex.getRequestId());
System.out.print("XML: " + ex.getXML());
System.out.println("ResponseHeaderMetadata: " + ex.getResponseHeaderMetadata());
}
} }
跑完控制台输出成功日志:
GetReportCount Action Response
============================================================================= GetReportCountResponse
GetReportCountResult
Count
1593
ResponseMetadata
RequestId
ae847abb-6335-4ec3-904c-b3fdbd999979 requestId : ae847abb-6335-4ec3-904c-b3fdbd999979
responseContext : bu7253H8xUoTt/yMP7gsP5osYa5dLIQ0Av+i7ENQwKBd14/ZhdEIw6yQW+2kan0HwujlUmeuaR8=
timestamp : 2018-07-16T07:57:35.453Z
亚马逊MWS开发套路演示的更多相关文章
- 亚马逊 MWS 开发者指南 漏桶算法
流量控制与令牌桶算法|James Pan's Blog https://blog.jamespan.me/2015/10/19/traffic-shaping-with-token-bucket 服 ...
- 亚马逊开放机器学习系统源代码:挑战谷歌TensorFlow
北京时间5月17日上午消息,亚马逊在开源技术领域迈出了更大的步伐,宣布开放该公司的机器学习软件DSSTNE的源代码.这个最新项目将与谷歌的TensorFlow竞争,后者已于去年开源.亚马逊表示,在缺乏 ...
- HTML5游戏开发进阶指南(亚马逊5星畅销书,教你用HTML5和JavaScript构建游戏!)
HTML5游戏开发进阶指南(亚马逊星畅销书,教你用HTML5和JavaScript构建游戏!) [印]香卡(Shankar,A.R.)著 谢光磊译 ISBN 978-7-121-21226-0 201 ...
- python 脚本开发实战-当当亚马逊图书采集器转淘宝数据包
开发环境python2.7.9 os:win-xp exe打包工具pyinstaller 界面tkinter ============================================= ...
- Node开发文件上传系统及向七牛云存储和亚马逊AWS S3的文件上传
背景起,有奏乐: 有伟人曰:学习技能的最好途径莫过于理论与实践相结合. 初学Node这货时,每每读教程必会Fall asleep. 当真要开发系统时,顿觉精神百倍,即便踩坑无数也不失斗志. 因为同团队 ...
- 使用AWS亚马逊云搭建Gmail转发服务(三)
title: 使用AWS亚马逊云搭建Gmail转发服务(三) author:青南 date: 2015-01-02 15:42:22 categories: [Python] tags: [log,G ...
- 借助亚马逊S3和RapidMiner将机器学习应用到文本挖掘
本挖掘典型地运用了机器学习技术,例如聚类,分类,关联规则,和预测建模.这些技术揭示潜在内容中的意义和关系.文本发掘应用于诸如竞争情报,生命科学,客户呼声,媒体和出版,法律和税收,法律实施,情感分析和趋 ...
- (转)来自互联网巨头的46个用户体验面试问题(谷歌,亚马逊,facebook及微软)
原文出处: uxdesign - Eleonora Zucconi 译文出处:UXRen - 邓俊杰 如果你是个正在找工作的用户体验研究员,或是一个招聘经理正急需一些启发性问题来测试你的候选人,这 ...
- 亚马逊云科技现身世界人工智能大会,揭示AI最新技术趋势
2022世界人工智能大会(WAIC)于日前落幕.经过过去四届的发展与沉淀,今天的世界人工智能大会已成为人工智能领域最有影响力的国际盛会之一,今年大咖云集.国际大厂扎堆,充分彰显了大会的国际影响力和磁力 ...
随机推荐
- oracle数据库简单的导入导出操作
一.数据库导出 1.导出用户名/密码,,导出用户名为test_expdp.导出路径默认为oracle中的dpdump文件中 expdp test_expdp/test_expdp@orcl direc ...
- DB2导入导出数据
1.导出表数据到txt文件: export to /brcb_edp/data_public_edp/file/CCDM/file/FILE_CCDM_DR_CARD_CUST_DET.txt of ...
- UI-基本控件的简单使用
1.IBAction: //====================== 1> 能保证方法可以连线 2> 相当于void 2.IBOutlet: 1> 能保证属性可以连线 3.常 ...
- Week14《Java程序设计》第14次作业总结
Week14<Java程序设计>第14次作业总结 1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结与数据库相关内容. 2. 使用数据库技术改造你的系统 2.1 简述如何 ...
- Linux crontab使用及注意事项
渗透测试中,经常会用到crontab来执行计划任务,从而实现后门程序的隐藏,但crontab有几个坑点还是需要记录一下,方便日后使用时及时查询 1.crontab配置格式 # Example of j ...
- poscms基于list标签实现的查询分页功能
poscms系统本身有一个在查询页(search页面)实现的查询分页功能,基于系统封装的php函数dr_search_url() 但是今天的需求除了导航栏.列表页.详情页都实现查询功能外,关键是有两个 ...
- 深度学习(六十八)darknet使用
这几天因为要对yolo进行重新训练,需要用到imagenet pretrain,由于网络是自己设计的网络,所以需要先在darknet上训练imagenet,由于网上都没有相关的说明教程,特别是图片路径 ...
- ss-libev 源码解析udp篇 (2)
UDP relay的代码基本都在udprelay.c中,无论ss-local还是ss-server的代码都在一起,使用宏MODULE_LOCAL,MODULE_REMOTE等区分开.代码虽然不是很多, ...
- 【Python】下载图片
import requests import bs4 import urllib.request import urllib import os hdr = {'User-Agent': 'Mozil ...
- 百度的富文本编辑器UEDITOR
还是百度的ueditor 比较好用,文件导入后,基本不用配置就可以直接使用图片,文件上传等功能. CKeditor要注意的地方太多了 .但是相对ckeditor 样式比较好看.