主页
支付优化工具
支付优化工具
Real-Time Account Updater 实时账户更新

Real-Time Account Updater 实时账户更新

Checkout.com 提供的 Real-Time Account Updater 服务,可以在付款卡详细信息发生变化时自动更新,从而提高支付成功率。

Checkout.com 提供三种 Real-Time Account Updater 选项,每种选项都可以单独开通:

  • Visa Real-Time Account Updater - 在付款授权过程中接收并应用来自 Visa 的卡信息更新。因此,只有活跃的卡才能获得更新。该选项支持使用付款工具或完整卡详细信息所请求的付款。
  • Mastercard Update & Retry - 在付款授权过程中,根据 Mastercard 提供的拒绝后建议代码,来更新卡详细信息,然后立即用更新的卡重新尝试授权。因此,只有出现某些拒绝代码的活跃卡才能获得更新。该选项支持使用付款工具或完整卡详细信息所请求的付款。
  • Mastercard Store & Update - 异步更新在 Checkout.com 中储存的卡片,而与支付流程无关。因此,无论使用与否,所有储存的卡都能获得更新。如果需要在没有付款(入账)活动情况下更新卡信息,建议使用此选项。例如,用于支持卡支付。

更新银行卡信息

以下情况会导致银行卡信息更新:

  • 账户关闭
  • 有效期变更
  • 因挂失、被盗或过期而换卡
注意只有 Mastercard Store & Update 才支持发卡行的组合转换。从 Mastercard 到 Visa 的组合转换,将报告为card_closed。不支持从 Visa 到 Mastercard 的组合转换。Visa Real-Time Account Updater 或 Mastercard Update & Retry 均不支持发卡行组合转换。

更新卡信息时,可能会出现以下情况之一:

  • 卡号变更,有效期不变
  • 卡号不变,有效期变更
  • 卡号和有效期均变更

或者,账户可能关闭,这表示账号和有效期均告失效。

开始之前

要从 Real-Time Account Updater 接收卡更新,必须满足以下条件:

信息如需了解更多信息,请联系您的客户经理或  support@checkout.com。

检索卡更新

提供卡更新信息的途径包括:

  • Request a payment 响应
  • Get payment details 响应
  • webhook 通知

payment_approved 和 payment_declined webhook 通知

在 webhook 的 payment_approved 和 payment_declined 事件类型中提供卡更新信息,包含在以下字段中:

  • bin
  • expiry_month
  • expiry_year
  • fingerprint
  • last4

card_updated 通知

要接收包含旧卡详情和新卡详情的信息,您需要:

在 webhook 中,reason_type将指示更新的原因。

可能的值包括:

  • card_updated - 卡号已更改
  • card_expiry_updated - 卡有效期已更改
  • card_closed - 发卡行已关闭该卡账户,并且未开设新账户(联系持卡人获取新卡详细信息)
  • contact_cardholder - 该卡已更新,但持卡人通过发卡行选择退出 Account Updater 服务(联系持卡人以获取新卡详细信息)

Webhook card_updated 示例

在付款响应中检索卡更新

您的账户启用 Real-Time Account Updater 后,卡更新信息将反映在以下付款响应字段中:

  • bin
  • expiry_month
  • expiry_year
  • fingerprint
  • last4
注意为提高授权成功率,自 2022 年 12 月起,Checkout.com 不再阻止已过到期日的付款。

响应示例

信息以下示例并非完整的响应,只显示了与 Real-Time Account Updater 有关的部分响应。

接收付款响应中的加密更新完整卡信息

注意要在付款响应中接收更新后的完整 PAN(FPAN),必须符合 PCI SAQ D 要求。

当一张卡通过我们的 Real-Time Account Updater 进行更新后,将会在付款响应的source.encrypted_card_number字段中,返回加密更新的卡号。

响应示例

信息当提供了 encrypted_card_number 时,响应中不会返回 PAN 的 BIN 和最后 4 位数字。

创建公钥和私钥对
‍

  1. 生成 RSA 公钥/私钥对。此 RSA 密钥对必须使用至少 2048 位的密钥大小。作为 PCI 合规商户,您必须负责任地管理 Real-Time Account Updater 所用的加密密钥的生命周期,包括密钥的创建、保护和轮换,并且必须指定密钥保管人,并根据 PCI DSS 第 3.6.8 条规定,以书面或电子方式正式确认这一责任。
信息Checkout.com 建议使用适当的 HSM 生成 RSA 密钥,并使用强加密技术存储密钥,同时设定适当的访问控制和审计。如果没有现成系统,包括 AWS KMS、Azure Key Vault、Google Cloud KMS 在内的云服务商可以提供生成或存储密钥对的能力。

‍

  1. 记录钥匙指纹,即 DER 编码 X.509 格式证书的 base64 编码 SHA-256 摘要(根据 RFC 7515:JSON Web Signature (JWS) 生成),并作为 JWE 响应的标头,以指示使用了哪个密钥。
  1. 将公钥发送给您的客户经理或联系  support@checkout.com,并附上您作为密钥保管人的书面确认。
注意Checkout.com 将在最长一年内使用相同的公钥。如果您在之前的公钥过期时没有更换密钥,则有效负载将不再包含 encrypted_card_number 字段。您的密钥保管人需要每年至少一次向 Checkout.com 提供一个新密钥。

如何解密更新后的 PAN

一旦 Checkout.com 设置了公钥,当进行实时账户更新时,加密的卡号将在源对象的 encrypted_card_number 字段中返回。这是使用您之前提供的 RSA 公钥进行加密的卡号。该加密使用 JWE,并使用 256 GCM 加密有效负载和 RSA OAEP 256 加密密钥。

代码示例

许多语言框架都支持 JOSE(JavaScript Object Signing and Encryption)。

以下 Node.js 示例演示了如何以编程方式解密卡号,并验证 RSA 公钥指纹:

‍

分享
复制链接
通过邮件分享
页面内容概览