使用我自己的应用程序集成Amazon Product Advisement API,它工作正常,但问题是:
要访问API,我们需要时间戳,当我将代码放在服务器(在其他国家/地区),并使用服务器时间戳时,API在XML中出现以下错误:“请求已过期。时间戳日期为XXXX-XX-XXTXX:XX:XXZ“,
但是当我进入我现在的时区时,它开始正常工作。为什么API在客户端时间戳上工作正常,另一方面,所有与API相关的计算都发生在服务器端。
我查阅了Amazon API的以下开发人员文档,但没有avial。 Product Advertising API Developer GuideAPI Version 2011-08-01
答案 0 :(得分:3)
var currentdate = new Date();
currentdate.toISOString();
这就是我获得Product Advertising Api的时间戳的方式。
答案 1 :(得分:2)
我查阅了Amazon API的以下开发人员文档,但没有avial。产品广告API开发人员指南API版本2011-08-01
嗯,这个文件明确说明时间戳参数必须用世界时(UTC)表示;您不能发送当地时间,除非偶然(您的个人所在地可能属于这种情况),您恰好与UTC同时发生:
“•Timestamp-Required。没有默认值。您在请求中使用的时间戳必须是a dateTime对象,包括完整日期加上小时,分钟和秒(有关更多信息,请转到 to http://www.w3.org/TR/NOTE-datetime).This是ISO定义的格式的固定长度子集 8601,以世界时(GMT)表示:YYYY-MM-DDThh:mm:ssZ(其中T和Z是文字)。 重要 如果您使用的是.NET,则由于不同,您不得发送过于具体的时间戳 解释应该如何删除额外的时间精度。避免过度具体的时间 标记,手动构造不超过毫秒精度的dateTime对象。“