我一直在嘗試將亞馬遜支付作為我網站上客戶的一種付款方式,但遇到了檔案中詳細介紹的一些問題。我希望更好地理解與呼叫 amazon pay api 相關聯的請求標頭。
我正在向“https://pay-api.amazon.com/v2/checkoutSessions/checkoutSessionId”發出請求并收到 CORS 政策錯誤。
從源“http://localhost:3000”訪問“https://pay-api.amazon.com/v2/checkoutSessions/d9b4418d-0c6f-4085-8c37-08bef6da6807”已被 CORS 政策阻止:回應預檢請求未通過訪問控制檢查:請求的資源上不存在“Access-Control-Allow-Origin”標頭。如果不透明回應滿足您的需求,請將請求的模式設定為“no-cors”以在禁用 CORS 的情況下獲取資源。
這是我嘗試發出請求的獲取請求
fetch(`https://pay-api.amazon.com/v2/checkoutSessions/${this.$route.query.amazonCheckoutSessionId}`, {
method: 'GET',
headers: {
'Content-Type': 'application/json',
'authorization': 'Px2e5oHhQZ88vVhc0DO/sShHj8MDDg=EXAMPLESIGNATURE',
'x-amz-pay-date': `${new Date()}`
}
})
this.$route.query.amazonCheckoutSessionId 在用戶使用亞馬遜支付按鈕創建結賬會話后參考回傳的 url 擴展。
該檔案概述了應按如下方式提出請求
curl "https://pay-api.amazon.com/:version/checkoutSessions/:checkoutSessionId"
-X GET
-H "authorization:Px2e5oHhQZ88vVhc0DO/sShHj8MDDg=EXAMPLESIGNATURE"
-H "x-amz-pay-date:20201012T235046Z"
有人可以解釋一下我應該在哪里獲取授權字串及其格式嗎?另外,有沒有辦法輕松地將日期字串格式化為檔案中顯示的格式?或者日期字串格式無關緊要?
我已經通過與 Amazon pay 相關的堆疊溢位帖子(其中很少)進行了廣泛的搜索,并搜索了其他 Amazon 和 AWS 檔案以詳細說明如何設定身份驗證字串的格式。不幸的是,我似乎無法找到答案。我也試過將我的按鈕簽名??作為我的授權字串傳遞,但這似乎沒有幫助。
感謝您提供的任何幫助。
uj5u.com熱心網友回復:
您的問題有兩個部分:
- 該 API 并非設計為像您的示例中那樣偵聽 Browser JS (AJAX) 請求。CORS 限制是為了防止這種情況發生。而這部分程序將在服務器端完成
- 要使用 API,我強烈建議使用其中一種 SDK (

uj5u.com熱心網友回復:
Amazon Pay API 不支持直接的客戶端請求,因此您需要在服務器端發出這些請求。這就是您看到 CORS 錯誤的原因。
您可以在此處找到對每個 API 請求進行簽名所需的簽名生成的詳細介紹:https : //developer.amazon.com/docs/amazon-pay-api-v2/signing-requests.html
您應該能夠利用 Amazon Pay Node.js SDK,這將節省大量編碼 - https://developer.amazon.com/docs/amazon-pay-checkout/get-set-up-for-integration .html#nodejstab
我還建議使用開發人員暫存器作為一種方式來檢查您的作業并獲取有關所需代碼的提示,因為它會為您發出請求并生成代碼片段! https://pay-api.amazon.com/tools/scratchpad/index.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/340265.html
