3

私の Web サイトで顧客の支払い方法として Amazon Pay を統合しようとしていますが、ドキュメントに記載されている内容の一部で問題が発生しています。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 ポリシーによってブロックされました: 応答to preflight リクエストがアクセス制御チェックに合格しません: 要求されたリソースに「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%2FsShHj8MDDg%3DEXAMPLESIGNATURE',
      'x-amz-pay-date': `${new Date()}`
    }
  })

this.$route.query.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 のドキュメントを検索したりしました。残念ながら、私は答えを見つけることができないようです。また、ボタンの署名を認証文字列として渡そうとしましたが、役に立たなかったようです。

あなたが与えることができるどんな助けにも感謝します.

4

2 に答える 2