決済方法識別子

W3C勧告

この文書の詳細
このバージョン:
https://www.w3.org/TR/2022/REC-payment-method-id-20220908/
最新公開バージョン:
https://www.w3.org/TR/payment-method-id/
最新編集者草案:
https://w3c.github.io/payment-method-id/
履歴:
https://www.w3.org/standards/history/payment-method-id
コミット履歴
テストスイート:
https://wpt.live/payment-method-id/
実装報告:
https://w3c.github.io/test-results/payment-method-id/all.html
編集者:
Marcos Cáceres (Apple Inc.)
以前の編集者:
Adrian Bateman (Microsoft Corporation)
Domenic Denicola (Google)
Zach Koch (Google)
Roy McElmurry (Facebook)
フィードバック:
GitHub w3c/payment-method-id (プルリクエスト, 新しい課題, 未解決の課題)
正誤表:
正誤表があります

関連項目 翻訳


概要

この仕様は、決済方法識別子と、それらがどのように 検証され、該当する場合には発行され、W3C に正式に登録されるかを 定義します。他の 仕様(例: Payment Request API)は、Web プラットフォーム上での 金銭取引を容易にするために、これらの 識別子を利用します。

この文書のステータス

この節は、この文書の公開時点における ステータスを説明します。現在の W3C 公開文書の一覧と、この技術報告書の最新版は、 https://www.w3.org/TR/ にある W3C 技術 報告書一覧で確認できます。

ワーキンググループは、 実装 報告を作成することで実装経験を示しています。この報告書は、 テストスイート内の各必須テスト(すなわち、各 テストが仕様の MUST 要件に 対応しているもの)に合格する、2つ以上の独立した実装を示しています。

この仕様の開発中、他のワーキンググループへの依存関係に 変更はありませんでした。

この文書は、Web Payments Working Group により、 勧告トラックを用いた 勧告として公開されました。

W3C は、Web の標準として この仕様が広く展開されることを推奨します。

W3C 勧告とは、広範な合意形成の後に W3C とその会員によって承認され、 ワーキンググループのメンバーから、実装に対する ロイヤリティフリーのライセンス供与 の確約を得ている仕様です。 この勧告の将来の更新には、 新機能が組み込まれる可能性があります。

この文書は、 2017年8月1日 W3C 特許 ポリシーの下で活動するグループによって作成されました。 W3C は、このグループの成果物に関連して 行われた特許開示の公開一覧を 維持しています。このページには、 特許を開示するための手順も含まれています。個人が実際に 知っている特許について、その特許が 必須請求項 を含むと考える場合、その個人は W3C 特許ポリシー第6節に従って情報を開示しなければなりません。

この文書は、 2021年11月2日 W3C プロセス文書に準拠します。

1. 決済方法識別子(PMI)

決済方法識別子PMI)は、 次のいずれかです。

1.1 妥当性

決済方法識別子に依存する仕様は、無効な決済方法 識別子を処理するための独自の規則を指定しなければなりません

文字列 pmi を用いて決済方法 識別子を検証する手順は、次のアルゴリズムで与えられます。これは、 pmi が有効な場合に true を返します。

  1. url を、pmi を用いて 基本 URL パーサーを実行した結果とします。
  2. url が failure の場合は、pmi を用いて 標準化された 決済方法識別子を検証し、その結果を返します。
  3. そうでなければ、url を渡して URL ベースの決済方法識別子を検証し、 その結果を返します。

2. URL ベースの決済方法識別子

URL ベースの決済方法識別子は、 URL であり、URL ベースの決済方法 識別子を検証する手順に従って有効なものです。

注記

サードパーティ決済ハンドラーに URL ベースの決済方法識別子を使用したい開発者には、 Payment Method Best Practice 文書を読むことが推奨されます。

2.1 検証

URL ベースの決済方法 識別子を検証する手順は、次のアルゴリズムで与えられます。このアルゴリズムは URL url を入力として受け取り、URL が 有効な場合に true を返します。

  1. urlスキームが "https" でない場合は、false を返します。
  2. urlユーザー名またはパスワードが空文字列でない 場合は、false を返します。
  3. そうでなければ、true を返します。
1: 有効および無効な URL ベースの PMI
const valid = [
  {
    supportedMethods: "https://example.com/pay",
  },
  {
    supportedMethods: "https://example.com/pay?version=1",
  },
  {
    supportedMethods: "https://example.com/pay/version/1",
  },
];

const invalid = [
  {
    // ❌ http://、ユーザー名、パスワードを使用しています。
    supportedMethods: "http://username:password@example.com/pay",
  },
  {
    // ❌ 不明な URI スキームを使用しています。
    supportedMethods: "unknown://example.com/pay",
  },
];

2.2 比較

ユーザーエージェントは、URL ベースの決済方法識別子の比較を、 [URL] の等価を用いて行わなければなりません

2.3 取得(参照解決)

ユーザーエージェントが取得することは 任意です。対象は URL ベースの決済方法識別子です。

3. 標準化された決済方法識別子

標準化された決済方法識別子とは、 標準化された決済方法を表す文字列です。

標準化された決済方法識別子の構文は、 次の [ABNF] で与えられます。

stdpmi = part *( "-" part )
part = 1loweralpha *( DIGIT / loweralpha )
loweralpha =  %x61-7A

ユーザーエージェントは、第 標準化された決済方法識別子を 0 個以上サポートしてもよく、それらは 4. 標準化された決済方法のレジストリに列挙されます。

3.1 妥当性

標準化された決済方法 識別子を検証する手順は、次のアルゴリズムで与えられます。このアルゴリズムは string を入力として受け取り、その識別子が 有効な場合に true を返します。

  1. string標準化された 決済方法識別子の構文に適合する場合は true を返します。そうでなければ false を返します。
注記

3.2 比較

標準化された決済方法 識別子について、ユーザーエージェントは is を用いて文字列比較を行わなければなりません

4. 標準化された決済方法のレジストリ

この節は非規範的です。

注記

標準化された決済方法とは、 W3C で標準化を経て、この レジストリに掲載されている決済方法です。

現時点では、標準化された決済方法 識別子はありません。

5. URL ベースの PMI とサードパーティ決済ハンドラー

この節は非規範的です。

サードパーティ決済ハンドラーに URL ベースの決済方法識別子を使用したい開発者には、 Payment Method Manifest 仕様と Payment Method Best Practice wiki ページを読むことが推奨されます。これらの文書は合わせて、 ブラウザーによるジャストインタイムの決済ハンドラーインストールを含め、 決済方法のために認可された決済ハンドラーのエコシステムを管理する方法を 説明しています。

6. セキュリティに関する考慮事項

この仕様は、新たなセキュリティ上の考慮事項を導入しません。

7. プライバシーに関する考慮事項

現時点で考慮すべき既知のプライバシー上またはセキュリティ上の懸念はありません。

8. 適合性

非規範的として示されている節に加え、この仕様に含まれるすべての作成ガイドライン、図、例、注記は 非規範的です。この仕様内のそれ以外のすべては規範的です。

この文書におけるキーワード MAYMUST、および OPTIONAL は、 ここに示すようにすべて大文字で現れる場合に限り、 BCP 14 [RFC2119] [RFC8174] に記述されているとおりに解釈されます。

A. 索引

A.1 この仕様で定義される用語

A.2 参照により定義される用語

B. 参考文献

B.1 規定参考文献

[ABNF]
Augmented BNF for Syntax Specifications: ABNF. D. Crocker, Ed.; P. Overell. IETF. January 2008. Internet Standard. URL: https://www.rfc-editor.org/rfc/rfc5234
[fetch]
Fetch Standard. Anne van Kesteren. WHATWG. Living Standard. URL: https://fetch.spec.whatwg.org/
[infra]
Infra Standard. Anne van Kesteren; Domenic Denicola. WHATWG. Living Standard. URL: https://infra.spec.whatwg.org/
[RFC2119]
Key words for use in RFCs to Indicate Requirement Levels. S. Bradner. IETF. March 1997. Best Current Practice. URL: https://www.rfc-editor.org/rfc/rfc2119
[RFC8174]
Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words. B. Leiba. IETF. May 2017. Best Current Practice. URL: https://www.rfc-editor.org/rfc/rfc8174
[URL]
URL Standard. Anne van Kesteren. WHATWG. Living Standard. URL: https://url.spec.whatwg.org/

B.2 参考参考文献

[payment-method-manifest]
Payment Method Manifest. Dapeng(Max) Liu; Domenic Denicola; Zach Koch. W3C. 12 December 2017. W3C Working Draft. URL: https://www.w3.org/TR/payment-method-manifest/
[payment-request]
Payment Request API. Marcos Caceres; Rouslan Solomakhin; Ian Jacobs. W3C. 30 September 2021. W3C Proposed Recommendation. URL: https://www.w3.org/TR/payment-request/