支付方式标识符

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áceresApple Inc.
前任编辑:
Adrian BatemanMicrosoft Corporation
Domenic DenicolaGoogle
Zach KochGoogle
Roy McElmurryFacebook
反馈:
GitHub w3c/payment-method-id拉取请求新议题未解决议题
勘误:
存在勘误

另请参阅 翻译版本


摘要

本规范定义了支付方式标识符及其验证方式, 并在适用情况下定义了如何创建这些标识符并将其正式注册到 W3C。其他 规范(例如 Payment Request API)会使用这些 标识符,以便在 Web 平台上促成 货币交易。

本文档状态

本节描述了本文档在发布时的状态。当前 W3C 出版物列表以及本技术报告的最新修订版可在 W3C 技术 报告索引中找到,网址为 https://www.w3.org/TR/。

工作组通过产出 实现 报告来展示实现经验。该报告表明,有两个或更多独立实现 通过了测试套件中的每项强制性测试(即每个 测试 都对应于本规范的一项 MUST 要求)。

在本规范的制定过程中,对其他工作组的依赖 没有发生变化。

本文档由 Web Payments Working Group 使用 推荐标准轨道 发布为推荐标准。

W3C 建议将本规范作为 Web 标准进行广泛部署。

W3C 推荐标准是一种规范,它在经过广泛 共识建立后,由 W3C 及其成员认可,并且 获得了工作组成员对实现进行 免版税许可 的承诺。 本推荐标准的未来更新可以纳入 新特性

本文档由一个按照 2017 年 8 月 1 日 W3C 专利 政策运作的工作组产出。 W3C 维护了一个 与专利 披露有关的公开列表, 其中列出了与该组交付成果相关的披露;该页面还包含 披露专利的说明。任何实际 知悉某项专利,并认为该专利包含 必要权利要求 的个人,都必须按照 W3C 专利政策第 6 节 披露该信息。

本文档受 2021 年 11 月 2 日 W3C 流程文档约束。

1. 支付方式标识符(PMI)

支付方式标识符PMI) 是以下二者之一:

1.1 有效性

依赖于支付方式标识符的规范MUST 规定其自身处理无效支付方式 标识符的规则。

使用字符串 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. 如果 urlscheme 不是 "https",则返回 false。
  2. 如果 urlusernamepassword 不是空 字符串,则返回 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 比较

用户代理MUST使用 [URL] 的 equal基于 URL 的支付方式标识符 执行比较。

2.3 获取(解引用)

用户代理可以选择OPTIONAL获取基于 URL 的支付方式标识符

3. 标准化支付方式标识符

标准化支付方式标识符是一个 表示标准化支付方式的字符串。

标准化支付方式标识符的语法 由以下 [ABNF] 给出:

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

用户代理MAY支持第 4. 标准化支付方式注册表中列出的零个或多个标准化支付方式标识符

3.1 有效性

验证标准化支付方式 标识符的步骤由以下算法给出。该算法 以 string 作为输入,如果该标识符 有效,则返回 true:

  1. 如果 string 符合标准化 支付方式标识符的语法,则返回 true。否则,返回 false。

3.2 比较

对于标准化支付方式 标识符,用户代理MUST 使用 is 执行字符串比较。

4. 标准化支付方式注册表

本节为非规范性内容。

标准化支付方式是 已在 W3C 完成标准化并列入本注册表的 支付方式。

目前没有标准化支付 方式标识符

5. 基于 URL 的 PMI 与第三方支付处理器

本节为非规范性内容。

希望为第三方支付处理器使用基于 URL 的支付方式标识符的 开发者,建议阅读 Payment Method Manifest 规范 以及 Payment Method Best Practice wiki 页面。这些文档 共同描述了如何管理支付方式的授权支付处理器生态系统, 包括浏览器即时安装支付处理器。

6. 安全注意事项

本规范未引入任何新的安全注意事项。

7. 隐私注意事项

目前没有已知需要考虑的隐私或安全方面的 问题。

8. 一致性

除标记为非规范性的章节外,本规范中的所有创作指南、图表、示例和注释 均为非规范性内容。本规范中的其他所有内容均为规范性内容。

本文档中的关键词 MAYMUSTOPTIONAL 应按照 BCP 14 [RFC2119] [RFC8174] 中的说明解释,但仅当它们像此处所示以全大写形式出现时才如此。

A. 索引

A.1 本规范定义的术语

A.2 通过引用定义的术语

B. 参考文献

B.1 规范性引用

[ABNF]
Augmented BNF for Syntax Specifications: ABNF。D. Crocker,编辑;P. Overell。IETF。2008 年 1 月。互联网标准。URL:https://www.rfc-editor.org/rfc/rfc5234
[fetch]
Fetch Standard。Anne van Kesteren。WHATWG。 现行标准。URL:https://fetch.spec.whatwg.org/
[infra]
Infra Standard。Anne van Kesteren;Domenic Denicola。WHATWG。现行标准。URL:https://infra.spec.whatwg.org/
[RFC2119]
Key words for use in RFCs to Indicate Requirement Levels。S. Bradner。IETF。1997 年 3 月。最佳当前实践。URL:https://www.rfc-editor.org/rfc/rfc2119
[RFC8174]
Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words。B. Leiba。IETF。2017 年 5 月。最佳当前实践。URL:https://www.rfc-editor.org/rfc/rfc8174
[URL]
URL Standard。Anne van Kesteren。WHATWG。 现行标准。URL:https://url.spec.whatwg.org/

B.2 资料性引用

[payment-method-manifest]
Payment Method Manifest。 Dapeng(Max) Liu;Domenic Denicola;Zach Koch。W3C。2017 年 12 月 12 日。W3C 工作草案。URL:https://www.w3.org/TR/payment-method-manifest/
[payment-request]
Payment Request API。Marcos Caceres;Rouslan Solomakhin;Ian Jacobs。W3C。2021 年 9 月 30 日。W3C 候选推荐。URL: https://www.w3.org/TR/payment-request/