将 Braintree 令牌存储为参考是否有意义?

Ana*_*dya 3 payment-gateway braintree

我目前正在将 Braintree 与我们的产品集成。我们通常的做法是存储初始支付调用生成的令牌,以便在跟踪支付问题时使用它。这就是我们对 PayPal 所做的。虽然有了布伦特里,我有点困惑。

  1. Braintree 生成两个不同的字符串。第一个称为“令牌”,在与 Braintree 进行通信之前使用。第二个称为“nonce”,用于完成交易。
  2. 正如我所见,生成的 Token 超过 1500+ 个字符,我们的数据库设计为最多容纳 250 个字符。存储更多对我来说没有意义。

所以我的问题是:

  1. 将代币存储在我们的系统中是否有意义,或者在 3-4 小时后它会失去价值吗?
  2. 或者,如果我在付款成功后只存储随机数,它会起作用吗?在任何情况下,交易都不会在没有 nonce 的情况下发生。

小智 5

完全披露:我在布伦特里工作。如果您有任何其他问题,请随时联系支持

当 Braintree 在您的保险库中创建付款方式时,它会返回一个Payment Method响应对象。此响应对象仅包含一个属性,即token. 此令牌唯一标识您的保管库中的付款方式。您可以存储此令牌,然后稍后使用它来引用保存的付款方式。通常,付款方式令牌不超过 7 个字符。

这是在 Ruby 中创建付款方式并引用它的令牌的方式:

result = Braintree::PaymentMethod.create(
    :customer_id => "42",
    :payment_method_nonce => nonce_from_the_client
)

if result.success?
    payment_method_token = result.payment_method.token
end
Run Code Online (Sandbox Code Playgroud)

请注意,“令牌”一词也用于client token,用于配置客户端集成。这些通常很长。这很可能是您引用的 1500 个字符的“令牌”。客户端令牌与任何支付方式都没有关系,通常没有理由存储它。

Apayment method nonce只能使用一次,之后将被标记为“已使用”。如果您在消费后尝试使用支付方式 nonce,您将收到验证错误:93107: Cannot use a payment_method_nonce more than once。考虑到这一点,您通常不应存储付款方式随机数。