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

时间:2016-12-19 10:36:36

标签: payment-gateway braintree

我目前正致力于将Braintree与我们的产品集成。我们通常的做法是将我们通过初始付款电话生成的令牌存储起来,以便在跟踪付款问题时使用它。这就是我们用PayPal做的事情。 虽然有了braintree,但我有点困惑。

  1. Braintree生成两个不同的字符串,第一个叫做" token"这是在与Braintree进行沟通之前。第二个被称为" nonce"用于完成交易。
  2. 正如我所见,生成的令牌超过1500多个字符,我们的数据库最多可容纳250个字符。存储不止于此对我没有意义。
  3. 所以我的问题是

    1. 将令牌存储在我们的系统中是否有意义,或者3-4小时后它没有价值?
    2. 或者,如果我在付款成功后存储nonce,它是否会起作用。如果没有nonce,任何交易都不会发生。

1 个答案:

答案 0 :(得分:2)

完全披露:我在Braintree工作。如果您有任何其他问题,请随时联系support

当Braintree在您的保险库中创建付款方式时,它会返回Payment Method response object。此响应对象仅包含一个属性,即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

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

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