Payment Handler API には CSP の connect-src が必要

Rouslan Solomakhin
Rouslan Solomakhin

Payment Handler API 決済機関は、独自の支払いエクスペリエンスを Payment Request API をご覧ください。

このページの情報は、CSP(Content-Security-Policy)の両方を使用しているウェブサイトにのみ適用されます。 Payment Request API(英語)もあります。どちらも使用しないか、どちらか一方しか使用しないと、 この手順をスキップできます。

ご利用の決済機関が Payment Handler API を使用しているかどうかを確認するには、決済機関にお問い合わせください 画面の指示に沿って操作します。

Payment Handler API と CSP(コンテンツ セキュリティ ポリシー)を セキュリティを強化するには、送信元の HTTP リクエストのドメインが ブラウザが CSP ヘッダーの connect-src ディレクティブに追加されます。

たとえば、JavaScript コードで new PaymentRequest([{supportedOrigins: ‘https://example.com/pay’}], details) を呼び出す場合、次のようになります。 CSP connect-srchttps://example.com または https://example.com/pay:

Content-Security-Policy: connect-src https://example.com/pay

https://example.com/pay がクロスオリジン リダイレクトの場合、リンク先は CSP に含める必要もあります。たとえば https://example.com/payhttps://pay.example.com にリダイレクトされ、次にその両方 オリジンを CSP に含める必要があります。

Content-Security-Policy: connect-src https://example.com/pay https://pay.example.com

ローカルで試す

出荷前にローカルでこの機能を有効にするには:

  1. Chrome で chrome://flags/#web-payment-api-csp にアクセスします。
  2. 「Web Payment API の CSP ポリシー」の変更[デフォルト] から[有効] に変更します。
  3. Chrome を再起動します。

リクエスト URL を確認する

Payment Handler API から送信されたリクエストの URL を確認するには:

  1. chrome://flags/#web-payment-api-csp を有効にする。
  2. 購入手続きページに移動して、Chrome のデベロッパー ツールを開きます。
  3. 次のようなエラー メッセージを探します。 text RangeError: Failed to construct 'PaymentRequest': https://example.com/pay payment method identifier violates Content Security Policy.
  4. 指定されたメソッド識別子を CSP に追加します。

写真撮影: Eduardo SoaresUnsplash より)