我目前正致力于将 Braintree 与我们的产品相集成。我们通常的做法是存储初始付款调用生成的 Token,以便在跟踪付款问题时使用它。这就是我们使用 PayPal 所做的。 尽管使用 Braintree,我还是有点困惑。
- Braintree 生成两个不同的字符串。第一个称为“ token ”,在与 Braintree 进行通信之前使用。第二个称为“随机数”,用于完成交易。
- 正如我所见,生成的 token 超过 1500 个字符,而我们的数据库设计为最多容纳 250 个字符。存储更多对我来说没有意义。
所以我的问题是:
- 将 token 存储在我们的系统中是否有意义,或者它会在 3-4 小时后失去值(value)吗?
- 或者如果我在支付成功后只存储随机数,它会起作用吗?在任何情况下,交易都不会在没有随机数的情况下发生。
最佳答案
完全披露:我在 Braintree 工作。如果您还有任何疑问,请随时联系support .
当 Braintree 在您的保险库中创建付款方式时,它会返回 Payment Method
response object .此响应对象仅包含一个属性,即 token
.此 token 唯一标识您保险库中的付款方式。您可以存储此 token ,然后在以后使用它来引用已保存的付款方式。通常,付款方式 token 不超过 7 个字符。
这是在 Ruby 中创建支付方式并引用它的 token 的方式:
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
请注意,“ token ”一词也用于 client token
,用于配置客户端集成。这些通常很长。这很可能是您引用的 1500 个字符的“ token ”。客户端 token 与任何支付方式都没有关系,通常没有理由存储它。
一个payment method nonce
只能使用一次,之后,它被标记为“已消耗”。如果您在消费后尝试使用付款方式随机数,您将收到验证错误:93107: Cannot use a payment_method_nonce more than once
.考虑到这一点,您通常不应存储付款方式随机数。
关于payment-gateway - 将 Braintree token 存储为引用是否有意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41220682/