我打算为亚马逊的Marketplace webservices(MWS)开发一个客户端.我的要求是更新订单,同步订单状态,使用他们拥有的API获取订单详细信息.
但是,我找不到Sandbox环境来测试这些场景.亚马逊有一个我理解的Sandbox付款,但是有一个沙箱可以测试这些网络服务吗?如果没有,有关如何使用亚马逊MWS测试上述方案的任何指示?
非常感谢您的期待.
我知道这个问题并不新鲜,但我得到的所有解决方案都是在PHP中,或者我的问题与它们不同.
我正在使用MWS Feed API提交价格和数量更新的平面文件,并始终收到以下错误:
您为Feed传递的Content-MD5 HTTP标头与我们为您的Feed计算的Content-MD5不匹配
我想在这里问3个问题: -
ContentMD5Value参数是doc中给出的可选参数,但如果我没有传递,那么它会说你必须输入ContentMD5Value.
正如ContentFeed我们给予亚马逊的doc那样.Amazon contentMD5为该文件创建,然后将该contentMD5值与contentMD5我们发送给Amazon 的值进行比较.
如果两者都匹配则OK,否则会抛出错误.但是如果假设我不发送文件,那么同样的错误也会与MD5不匹配.怎么可能?他们在为哪个文件计算MD5?因为我还没有发送文件ContentFeed.
如果我发送contentMD5标题以及参数并发送ContentFeed正文,我仍然会收到错误.
注意: - 我contentMD5使用请求模块发送标题以及表单中的参数,并使用它计算签名然后传入contentFeed正文.
我正在使用JavaScript(Meteor),我使用crpyto模块计算md5 .
首先,我认为我的md5是错的,但后来我尝试了一个在线网站,它会给我一个文件md5的md5.
对于我的文件是:
MD5值:d90e9cfde58aeba7ea7385b6d77a1f1e
Base64Encodevalue:ZDkwZTljZmRlNThhZWJhN2VhNzM4NWI2ZDc3YTFmMWU =
我从价格和数量更新下载的平面文件: -
https://sellercentral.amazon.in/gp/help/13461?ie=UTF8&Version=1&entries=0&
我在计算签名时也通过给ContentMD5Value出来计算签名.
的FeedType: '_ POST_FLAT_FILE_PRICEANDQUANTITYONLY_UPDATE_DATA_'
因为,我读了文档,我在标题中传递了MD5标题,并作为参数发送.
亚马逊医生说:
以前,亚马逊MWS接受MD5哈希作为Content-MD5标头而不是参数.将其作为参数传递可确保MD5值是方法签名的一部分,从而防止网络上的任何人篡改Feed内容.
无论是否包含ContentMD5Value参数,亚马逊MWS仍将接受Content-MD5标头.如果使用标头和参数,并且它们不匹配,您将收到InvalidParameterValue错误.
我正在使用request模块进行http请求.
我正在以请求模块的形式传递所有必需的密钥,卖方ID等,并传递FeedContent正文.
我尝试发送文件如下:
submitFeed的方法是: -
submitFeed : function(){
console.log("submitFeedAPI running..");
app = mwsReport({auth: {sellerId:'A4TUFSCXD64V3', accessKeyId:'AKIAJBU3FTBCJUIZWF', secretKey:'Eug7ZbaLljtrnGKGFT/DTH23HJ' }, marketplace: 'IN'});
app.submitFeedsAPI({FeedType:'_POST_FLAT_FILE_PRICEANDQUANTITYONLY_UPDATE_DATA_'},Meteor.bindEnvironment(function(err,response){ …Run Code Online (Sandbox Code Playgroud) 我正在尝试计算签名以进行亚马逊商城API调用,但我不断收到以下错误:
我们计算的请求签名与您提供的签名不匹配.检查您的AWS Secret Access Key和签名方法.有关详细信息,请参阅服务文档
我已将签名创建过程包装到一个类中:
<?php
namespace App\Marketplace\Amazon;
class Signature
{
protected $signedString;
public function __construct($url, array $parameters, $secretAccessKey)
{
$stringToSign = $this->calculateStringToSign($url, $parameters);
$this->signedString = $this->sign($stringToSign, $secretAccessKey);
}
protected function calculateStringToSign($url, array $parameters)
{
$url = parse_url($url);
$string = "POST\n";
$string .= $url['host'] . "\n";
$string .= $url['path'] . "\n";
$string .= $this->getParametersAsString($parameters);
return $string;
}
protected function sign($data, $secretAccessKey)
{
return base64_encode(hash_hmac('sha256', $data, $secretAccessKey, true));
}
protected function getParametersAsString(array $parameters)
{
uksort($parameters, 'strcmp');
$queryParameters = [];
foreach …Run Code Online (Sandbox Code Playgroud) 我正在使用ebay和amazon api做一个项目.
我已经使用api将产品上传到ebay沙盒.
但我搜索api在amazon api中添加产品.
是否有任何文件或参考资料?
请帮我解决这个问题.
谢谢
我在C#中测试亚马逊MWS API的 API样本用于提交提要,但是在设置AWS密钥,访问密钥等代码后我收到了RequestThrottled的错误,所以有详细信息是什么,但找不到任何代码示例如何解决了这一点
我想将feed.xml上传到amazon卖家帐户
<?xml version="1.0" encoding="iso-8859-1"?>
<AmazonEnvelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="amzn-envelope.xsd">
<Header>
<DocumentVersion>1.01</DocumentVersion>
<MerchantIdentifier>M_EXAMPLE_123456</MerchantIdentifier>
</Header>
<MessageType>Product</MessageType>
<PurgeAndReplace>true</PurgeAndReplace>
<Message>
<MessageID>1</MessageID>
<OperationType>Insert</OperationType>
<Product>
<SKU>56789</SKU>
<StandardProductID>
<Type>ASIN</Type>
<Value>B0EXAMPLEG</Value>
</StandardProductID>
<ProductTaxCode>A_GEN_NOTAX</ProductTaxCode>
<DescriptionData>
<Title>Example Product Title</Title>
<Brand>Example Product Brand</Brand>
<Description>This is an example product description.</Description>
<BulletPoint>Example Bullet Point 1</BulletPoint>
<BulletPoint>Example Bullet Point 2</BulletPoint>
<MSRP currency="USD">25.19</MSRP>
<Manufacturer>Example Product Manufacturer</Manufacturer>
<ItemType>example-item-type</ItemType>
</DescriptionData>
<ProductData>
<Health>
<ProductType>
<HealthMisc>
<Ingredients>Example Ingredients</Ingredients>
<Directions>Example Directions</Directions>
</HealthMisc>
</ProductType>
</Health>
</ProductData>
</Product>
</Message>
</AmazonEnvelope>
Run Code Online (Sandbox Code Playgroud)
如下所示出错
Caught Exception: Request from SubmitFeed:AKIAJI4PSK4HXY6UCNMA;A2DNAGZJ1EWQLW …Run Code Online (Sandbox Code Playgroud) 我正在尝试在亚马逊上自动添加和管理我们的产品.查看MWS API的API文档,看起来没有办法确定某个产品是否已被其他卖家添加到亚马逊,如果是,那么它的属性是什么.
我们正在为我们销售的所有产品构建新的产品数据库,并拥有专门针对亚马逊属性数据字段(ASIN等)的表格.如果产品信息已经在亚马逊上,我们希望通过API提取数据并将其存储到我们自己的数据库中.
如果您尝试通过CSV添加产品,该产品已经存在于亚马逊(和你的属性是不同的任何方式("M"!="中等"),您会收到和错误.在这种情况下你可以捎带现有的产品信息,只是上传CSV与你的价格和数量对特定ASIN/SKU/UPC.我们想废除上传CSV文件并再次,有我们为亚马逊自己的产品表的属性.
我是否还需要利用亚马逊的产品广告API来确定这一点,还是可以通过MWS来完成?
亚马逊API的文档并不是很精彩,而且尝试对其进行排序的速度很慢.
其他信息:我们正在与Ruby合作.
我需要编写一个Excel宏来获取我的客户的订单和库存详情(使用亚马逊MWS).
但我的客户需要我的开发人员ID才能授予我访问其帐户的权限.
我搜索了很多,但没有找到任何链接,我可以注册为开发人员,并获得我的亚马逊开发人员标识符.
从哪里可以注册为开发人员并获取我的开发人员ID?
参考:https://developer.amazonservices.ca/gp/mws/faq.html#developForSeller
亚马逊提供了一批描述我们可以通过MWS发送的源的格式的文档,但是,我们还需要知道他们的响应中会发生什么,可以报告什么状态代码或报告错误时XML的结构等等. ...
我在哪里可以获得这些信息?
我想知道是否有办法将我的亚马逊MWS 暂存器查询转换为API调用
例如,当使用MWS暂存器时,我给了一个String来签名
"mws.amazonservices.co.uk"
."/Products/2011-10-01"
."AWSAccessKeyId=xxx&Action=ListMatchingProducts"
."&MarketplaceId=xxx&Query=star%20wars&SellerId=xxx"
."&SignatureMethod=HmacSHA256&SignatureVersion=2
."&Timestamp=2012-07-27T18%3A59%3A30Z&Version=2011-10-01
Run Code Online (Sandbox Code Playgroud)
花了好几天试图让Amazons命令API工作后我已经放弃并一直希望以下函数会返回一个xml字符串......但没有运气
function callAmazon(){
$apicall = "mws.amazonservices.co.uk"
."/Products/2011-10-01"
."AWSAccessKeyId=xxx&Action=ListMatchingProducts"
."&MarketplaceId=xxx&Query=star%20wars&SellerId=xxx"
."&SignatureMethod=HmacSHA256&SignatureVersion=2
."&Timestamp=2012-07-27T18%3A59%3A30Z&Version=2011-10-01
$resp = simplexml_load_file($apicall); //make the call
}
Run Code Online (Sandbox Code Playgroud)
有没有人有任何可能的建议?
我开始使用亚马逊MWS,我似乎无法看到有关将项目列为现有ASIN的正确流程的任何真实信息.比如说我卖的是"Vulli Sophie the Giraffe Teether".我使用"listMatchingProducts"进行初始查找,并发现我的项目已经与ASIN"B000IDSLOG"一起存在.这个过程的下一个阶段是什么?所有文档都讨论了这样一个事实:产品Feed旨在使我们的SKU与亚马逊ASIN相匹配,但我没有看到任何明确的信息来说明这实际上是如何工作的 - 特别是在你已经知道你想要的ASIN的情况下使用.
理想情况下,我有兴趣看到每个场景的正确流程(找到/未找到搜索的现有产品),应该按什么顺序进行API调用.
谢谢