在 Google 标准付款领域,运营商结算被视为令牌化的付款方式 (FOP),这意味着 Google 和付款集成商会执行一次性的帐号身份凭据交换以建立令牌。稍后,此令牌将提供给付款集成商,以识别要收费的帐号。
其他付款方式也使用令牌化,因此我们可以大致了解令牌化 FOP,这些内容与运营商结算密切相关。该概览更详细地介绍了身份验证、关联、购买和汇款流程。本页在运营商结算相关上下文中提供了更多详细信息。
运营商通过实现构成以下流程的 API 来加入 Google 标准付款:
| 数据流 | 说明 | DCB3 规范等效值 |
|---|---|---|
| 身份验证 | 在付款集成商的系统中识别用于进行 DCB 付款的用户帐号并对其进行身份验证 | 使用 GoogleUserToken 的 SMS-MO |
| 关联 | 交换 Google 和付款集成商同意使用的长期令牌,以便通过用户的付款集成商帐号进行付款 | 使用 OperatorUserToken 和 GetProvisioning() 批准用户回调 |
| FundsTransfer | 将资金同步移出用户的付款集成商帐号。将责任转给付款集成商 | 批量请求文件中的 Auth() 和 CHARGE 行 |
| 退款 | 将与之前的 FundsTransfer 关联的部分或全部资金同步到用户的付款集成商帐号。 将责任转给 Google | 批量请求文件中的退款行 |
| 汇款 | 基于 API 的结算,最好每天结算一次 | 月度账单 PDF、月度账单详细信息文件、每日对帐文件 |
| UpdateAssociatedAccount | 通知 Google 用户付款集成商帐号发生的更改(例如交易限额或配置状态) | GetProvisioning() 轮询 |
| 欺诈 | 告知 Google 因用户争议而被撤销的交易。这用于改进 Google 的风险引擎,但不会影响货币责任 | 无 |
与 DCB3 规范的总体对比
Google 标准付款规范可解决 DCB3 规范所解决的相同问题。但是,它使用不同的技术和 API 设计来改进解决方案。以下是主要区别一览:
堆栈技术比较
所有 API 通信都是使用包含 PGP 加密和签名的 JSON 的 HTTPS POST 完成的。这意味着 Google 和付款集成商各自只需要轮替一个 PGP 密钥。此外,这些技术还能比 SOAP 提供更好的支持。如需详细了解通信堆栈,请参阅此处。
API 理念比较
DCB3 高度依赖文件来协调付款状态。Google Standard Payments 没有任何文件。API 调用会幂等且无限期地重试,直到确定最终状态。
特定幂等键的最终状态是真正的最终状态。系统不会将 bug 和不确定状态建模为拒绝,而是将其建模为非 200 HTTP 响应。这样,我们就能更快地发现 bug,并避免将其掩盖为拒绝。
新功能
Google 标准付款支持新功能,包括:
- Fraud API,用于告知 Google 的欺诈者风险引擎
- 更新 Associated Account API,告知 Google 预配、交易限制和帐号状态更改
- 在购买过程中提供更强的身份验证验证支持,例如 USSD PIN 码
- 每日汇款周期
DCB3 与 Google Standard Payments 术语对比图
在本文档和规范本身中,您会看到一些术语看起来很新,但实际上只是现有概念的用词不同。
- 运营商 -> 付款集成商
警告:为了避免与 DCB 集成商的概念混淆,本文档尝试使用“付款集成商”和“DCB 集成商”,而不是仅仅使用“集成商”。不过,常规 Google 标准付款文档基本上将“集成商”用作“付款集成商”的简写形式
- 结算协议 ID -> 付款集成商账号 ID
- OperatorUserToken (OUT) -> GooglePaymentToken (GPT)
- correlation_id -> requestId
- 收益分成 -> 费用
身份验证流程
如需大致了解令牌化 FOP 的身份验证流程,请参阅此页面。
运营商结算详细信息
对于运营商结算,身份验证流程的目标是证明用户能够控制与其运营商帐号关联的 SIM 卡。可以使用以下三种机制中的任意一种对运营商结算用户进行身份验证:
- SMS-MO 身份验证(令牌化 FOP 概览中的定义)
- 重定向身份验证(令牌化 FOP 概览中的定义)
- SMS-MT 动态密码(令牌化 FOP 中的定义)
付款集成商可以与 Google 合作,选择最适合其产品的身份验证机制。
与 DCB3 比较
身份验证流程会将对 Google 的 approveuser 回调替换为 DCB3 规范中的 OUT。
在 DCB3 中,身份验证和关联已合并到单个流程中。在 Google Standard Payments 中,身份验证与帐号关联是分开的。
关联流程
如需大致了解令牌化 FOP 的关联流程,请参阅此页面。
运营商代扣付款方式的关联流程与常规令牌化 FOP 流程之间的主要区别在于,associateAccount 方法中提供的身份验证证明会因付款集成商是否请求额外的用户验证而异。
如果付款集成商回复说他们希望进行额外的用户质询,那么身份验证证明将是 Google 用于额外验证的特定身份验证机制生成的任何身份证明。例如,SMS-MT 动态密码机制生成的身份验证证明是 sendOtp 方法的 requestId 加上动态密码本身。
付款方式属性
在一般令牌化 FOP 概览的“付款方式属性”部分中,讨论了 accountAlias、accountNickname 和 fullAccountNickname 的概念。
运营商结算详细信息
accountAlias应为用户的电话号码。当用户就其帐号致电 Google 支持团队时,此信息将用于帮助识别付款方式。accountNickname和fullAccountNickname是用于在界面中标识插桩的显示名。
与 DCB3 规范对比
关联流程取代了 DCB3 规范中的以下部分:
- GetProvisioning SOAP 调用
- GetSubscriberAddress SOAP 调用
- 运营商生成的输出
此处的一个最大区别在于,Google 会在关联流程中生成 Google 付款令牌 (GPT),而不是由运营商生成。
另外还需要注意的是,与在 DCB3 中(OUT 的范围限定为特定的 BillingAgreementId)不同,GPT 的范围不限定于任何特定的 PaymentIntegratorAccountID。
刷新令牌流程
如需大致了解令牌化 FOP 的刷新令牌流程,请参阅此页面。
运营商结算详细信息
对于运营商代扣付款方式,我们强烈建议您不要让 Google 付款令牌过期,因为这会导致订阅订单被取消。您无需使令牌过期并依靠刷新令牌流程来修复令牌,只需改用下文所述的帐号更新流程完成您的用例。
帐号更新流程
付款集成商可以通过帐号更新流程通知 Google 用户集成商帐号的更新情况。这些字段最初是在关联流程中提供给 Google 的。付款集成商可能需要更新的一些帐号数据示例包括:
- 用户的每月、每日和每件商品交易限额
- 用户的集成商帐号的配置状态
- 用户的集成商帐号类型(预付费、后付费、企业等)
- 用户的“accountAlias”“accountNickname”或“fullAccountNickname”
- 用户是否设置了、移除或更改预共享的静态 PIN 码
- 用户是否关闭了帐号或更改了电话号码 - 使用户在 Google 系统中登录的付款方式失效。
- 删除令牌流程
与 DCB3 规范对比
帐号更新流程取代了 DCB3 规范的以下部分:
- GetProvisioning SOAP 调用轮询
- 定期令牌失效
购买流程
如需大致了解令牌化 FOP 的购买流程,请参阅此页面。
运营商结算详细信息
某些运营商会在每次购买交易期间使用 USSD 或其他技术向用户索要 PIN 码。对于这些运营商,我们调用 aSYNCCapture() 而不是调用 capture()。此外,我们还留出 30 秒的时间,让运营商提示用户输入其 PIN 码并完成捕获。确定最终的付款状态后,运营商将通过调用 captureResultNotification() 将结果告知 Google。
与 DCB3 规范对比
其中有重大变化。
- 单个同步方法调用 - capture() 而不是 auth() + 批处理文件
- 没有任何批量文件
- 未提供 cancel() 方法(捕获 + 退款,而不是验证 + 取消)
- 响应中没有 user_message 字段 - 拒绝代码映射到已本地化为用户帐号语言的 Google 消息。
- 关键术语变更:
- CorrelationId -> requestId
- BillingAgreementId -> paymentIntegratorAccountId
- OperatorUserToken -> googlePaymentToken
质疑购买流程
我们一直在开发,旨在支持一种购买流程,包括在每次购买前要求用户进行身份验证。大多数可在关联流程之前使用的身份验证方法也可以在质询购买流程之前使用,以提供额外的用户身份验证。
退款流程
如需大致了解令牌化 FOP 的退款流程,请参阅此页面。
令牌化 FOP 支持单一消息退款流程。退款方法支持对全额购买交易退款或对购买交易的一部分退款。若多次办理部分退款,可针对单笔购买交易办理退款。
运营商结算详细信息
在退款流程中,运营商代扣付款方式并无特殊之处。
与 DCB3 规范对比
退款是通过同步 API 调用(而非文件)触发的。此外,您可以为单笔原始付款创建多次部分退款,而不是仅支持单笔全额退款。
汇款流程
如需大致了解令牌化 FOP 的汇款流程,请参阅此页面。
汇款流程是 Google 与付款集成商执行结算的方式。Google 是会计记录系统,负责处理汇款转账。Google 会定期向付款集成商发送汇款对账单。该对账单概要列出了付款集成商应向 Google 支付的金额,以及有关如何向 Google 付款的说明。为了使付款集成商进行对帐,付款集成商可以向 Google 查询构成汇款对账单的交易级详情。
运营商结算详细信息
运营商结算 remittanceStatementDetails 包含汇款流程的 API 定义中尚未列出的其他字段。其中包括:
- revshareCategory
- itemPrice
- tax
- 时间戳
对于与 Google 签署了 50/50 收益分成方案的运营商,remittanceStatementDetails 中显示的费用按 revshareCategory 汇总,而不是按事件显示。
与 DCB3 规范对比
汇款流程取代了 DCB3 规范中的以下概念:
- 月度费用报告/PaymentReport PDF 版
- 月度账单详细信息 CSV 文件
- 每日 Recon CSV 文件
此处的主要区别在于移除所有文件并支持每日汇款。汇款金额不是通过文件来接收,而是通过同步 API 传送。另一个 API 支持查询有关汇款对账单的详细信息。
欺诈报告流程
借助欺诈报告流程,付款集成商通过调用 fraudNotification 方法告知 Google 可能存在欺诈性交易。此流程用于更新 Google 的内部风险引擎,并且不会发起任何资金转移。
运营商结算详细信息
在付款撤消通知流程中,运营商代扣付款方式并无特殊之处。