Payment gateway 将Braintree令牌存储为引用是否有意义?

Payment gateway 将Braintree令牌存储为引用是否有意义?,payment-gateway,braintree,Payment Gateway,Braintree,我目前正致力于将Braintree与我们的产品集成。我们通常的做法是存储初始付款调用生成的令牌,以便在跟踪付款问题时使用。这就是我们对贝宝所做的。 虽然我对Braintree有点困惑 Braintree生成两个不同的字符串。第一种称为“令牌”,在与Braintree进行通信之前使用。第二个称为“nonce”,用于完成事务 正如我所看到的,生成的令牌超过1500个字符,我们的数据库最多可容纳250个字符。对我来说,储存更多的东西是没有意义的 因此,我的问题是: 将代币存储在我们的系统中有意义吗?还

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

  • Braintree生成两个不同的字符串。第一种称为“令牌”,在与Braintree进行通信之前使用。第二个称为“nonce”,用于完成事务
  • 正如我所看到的,生成的令牌超过1500个字符,我们的数据库最多可容纳250个字符。对我来说,储存更多的东西是没有意义的 因此,我的问题是:

  • 将代币存储在我们的系统中有意义吗?还是在3-4小时后它会失去价值
  • 或者,如果我在付款成功后只存储nonce,它会起作用吗?在任何情况下,没有nonce,交易都不会发生
  • 充分披露:我在Braintree工作。如果您有任何进一步的问题,请随时联系

    当Braintree在vault中创建付款方式时,它将返回一个。此响应对象仅包含一个属性,即。此令牌唯一标识vault中的付款方式。您可以存储此令牌,然后稍后使用它引用保存的付款方式。通常,支付方法令牌的长度不超过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”也用于,用于配置客户端集成。它们通常很长。这很可能是您正在引用的1500个字符的“标记”。客户端令牌与任何支付方式都没有关系,通常没有理由存储它


    付款方式nonce
    只能使用一次,之后标记为“已消费”。如果您在使用付款方法后立即尝试使用它,您将收到验证错误:。考虑到这一点,您通常不应该存储付款方式nonce。

    谢谢!不过,我还有一个问题——是否可以使用BrainTree支付系统进行PayPal ExpressCheckout之类的支付。在PayPalEC中,我们生成一个包含所有付款信息的代币,然后客户只需转到PayPale,然后“确认”我们提供的信息。有了BT客户端框架,我看到客户端处理这项工作。有没有一种方法与贝宝电子商务完全相同?