【问题标题】:Does it makes sense to store Braintree token as a reference?将 Braintree 令牌存储为参考是否有意义?
【发布时间】:2017-05-04 09:24:46
【问题描述】:

我目前正致力于将 Braintree 与我们的产品集成。我们通常的做法是存储初始支付调用生成的 Token,以便在跟踪支付问题时使用它。这就是我们使用 PayPal 所做的事情。 虽然对于 Braintree,我有点困惑。

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

所以我的问题是:

  1. 将令牌存储在我们的系统中是否有意义,还是会在 3-4 小时后失去价值?
  2. 或者如果我在支付成功后只存储随机数,它会起作用吗?无论如何,没有随机数就不会发生交易。

【问题讨论】:

    标签: payment-gateway braintree


    【解决方案1】:

    全面披露:我在 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
    

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

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

    【讨论】:

    • 谢谢!不过,我还有一个问题 - 是否可以使用 BrainTree 支付系统进行支付,例如 PayPal ExpressCheckout。在 PayPalEC 中,我们预先生成一个包含所有付款信息的令牌,然后客户只需转到 PayPal,然后“确认”我们提供的信息。使用 BT 客户端框架,我看到客户端处理这项工作。有没有和PayPal EC一样的方式?
    猜你喜欢
    • 1970-01-01
    • 2018-03-25
    • 1970-01-01
    • 1970-01-01
    • 2021-09-26
    • 1970-01-01
    • 1970-01-01
    • 2020-02-02
    相关资源
    最近更新 更多