当前位置: 首页 > 知识库问答 >
问题:

如何授权亚马逊支付请求“获取结帐会话”?

白宏放
2023-03-14

我一直试图在我的网站上将Amazon pay集成为客户的一种支付方式,但在文档中的一些细节方面遇到了问题。我希望更好地理解与amazon pay api调用相关联的请求头。

我正在请求https://pay-api.amazon.com/v2/checkoutSessions/checkoutSessionId并收到CORS策略错误。

CORS策略阻止了在https://pay-api.amazon.com/v2/checkoutSessions/d9b4418d-0c6f-4085-8c37-08bef6da6807从源http://localhost:3000获取的访问:对预检请求的响应未通过权限改造检查:请求的资源上不存在“访问控制-允许-源”标头。如果不透明的响应满足您的需求,请将请求的模式设置为“no-cors”以在禁用CORS的情况下获取资源。

这是我尝试发出请求的获取请求

fetch(`https://pay-api.amazon.com/v2/checkoutSessions/${this.$route.query.amazonCheckoutSessionId}`, {
    method: 'GET',
    headers: {
      'Content-Type': 'application/json',
      'authorization': 'Px2e5oHhQZ88vVhc0DO%2FsShHj8MDDg%3DEXAMPLESIGNATURE',
      'x-amz-pay-date': `${new Date()}`
    }
  })

这个$路线查询amazonCheckoutSessionId在用户使用amazon pay按钮创建结账会话后引用返回的url扩展名。

文件概述了应按以下方式提出的请求

curl "https://pay-api.amazon.com/:version/checkoutSessions/:checkoutSessionId"
-X GET
-H "authorization:Px2e5oHhQZ88vVhc0DO%2FsShHj8MDDg%3DEXAMPLESIGNATURE"
-H "x-amz-pay-date:20201012T235046Z"

有人能解释一下我应该从哪里获得授权字符串及其格式吗?此外,是否有一种方法可以轻松地将日期字符串格式化为文档中显示的格式?还是日期字符串格式无关紧要?

我已经通过与Amazon pay相关的堆栈溢出帖子(其中很少有)进行了广泛的搜索,还搜索了其他Amazon和AWS文档,以了解如何格式化auth字符串。不幸的是,我似乎找不到答案。我还尝试将我的按钮签名作为授权字符串传递,但这似乎没有帮助。

谢谢你能给予的任何帮助。

共有2个答案

晋安国
2023-03-14

Amazon Pay API不支持直接客户端请求,因此您需要将这些请求设置为服务器端。这就是为什么您会看到CORS错误。

您可以在此处找到签署每个API请求所需的签名生成的详细演练:https://developer.amazon.com/docs/amazon-pay-api-v2/signing-requests.html

您应该能够利用亚马逊支付节点。js SDK,这将节省大量的代码-https://developer.amazon.com/docs/amazon-pay-checkout/get-set-up-for-integration.html#nodejstab

我还建议使用开发人员scratchpad来检查您的工作,并获得所需代码的提示,因为它会向您发出请求并生成代码片段!https://pay-api.amazon.com/tools/scratchpad/index.html

孙嘉
2023-03-14

您的问题有两部分:

  1. API的设计目的并不是像示例中那样侦听浏览器JS(AJAX)请求。CORS限制已到位,以防止出现这种情况。相反,这部分过程将在服务器端完成
 类似资料:
  • 我正在为web集成amazon pay SDK python。 我已经阅读了亚马逊支付的所有留档,但是我不知道如何在前端/后端代码中给出或创建按钮签名。这是我的前端代码,用于创建亚马逊支付一次性结账按钮。 如果有人实现了这一点,请给出您有价值的答案...

  • 下面是我的php实现代码: 这是用于生成Amazon Pay按钮的JS实现代码。

  • 希望在应用程序中集成amazon pay(基于美国)。已经有了贝宝和刷卡选项。当提到亚马逊支付沙箱时,它说要先在亚马逊支付注册。注册过程将通过其他步骤进入亚马逊卖家中心帐户,在这些步骤中会询问与业务相关的问题。 从开发的角度来看,我们如何将amazon pay集成到我们的应用程序中?是否有可用的示例api/代码及其程序?欢迎任何指导。

  • 实施亚马逊支付小部件没有地址引用文档https://developer.amazon.com/docs/eu/amazon-pay-onetime/no-address-widget.html 用seller central的注册应用程序值替换了clientid和sellerid,但得到的错误是“您无法使用与您的卖家帐户关联的用户名和密码。请使用其他买家帐户。” 这是使用的代码

  • 我已经将Pay与Amazon与我的Web应用程序集成在一起,但我已经确定,只有在我执行代码调试时才能捕获资金,如果我没有断点,则不会发生。对我来说,这表明有必要暂停。我正在使用定期付款。相关代码部分如下: 因此,如果在捕获行的

  • 因此,我试图将登录和支付与Amazon小部件集成,但遇到了一些问题。 所以,我把我的卖家帐户都设置在 https://sellercentral.amazon.de/gp/ 我有权访问我的API凭据,我需要获得一个LWA客户端。所以,我已经在 https://sellercentral.amazon.com/gp/homepage.htm 以创建应用程序。我已经设置了应用程序,在web设置上我已经