Braintree PHP 如何在没有 DropIn 的情况下获取 Nonce 用于 Vaulting

Braintree PHP How To Get Nonce Without DropIn for Vaulting

对于我们的用例,我们有一个捕获客户信用卡信息的现有表单。为了顺利地从一个支付处理器过渡到另一个支付处理器,因为我们不确定何时会发生这种情况,我们希望在 Braintree 中保存支付方式而不对卡收费,但保留我们现有的表格。

我看到了如何保存我们从 Drop-In UI 收到的随机数,并且我能够在 SO 上找到一个答案,其中描述了如何将支付信息直接传递给 Braintree 并对其收费,但是,我没有找到一种方法将卡信息传递给 braintree 以用于支付方式的保险(有或没有接收随机数的中间步骤)。

编辑: 我发现了 $gateway->customer()->create()$gateway->creditCard()->create() 函数,但是,从信用卡创建调用返回的各种 'unique identifiers' 函数中,none 似乎是可存储的。

它在文档中隐藏了一点,但我能够通过一个中间步骤做到这一点:

  1. 创建客户$gateway->customer()->create(...)
  2. 创建信用卡$gateway->creditCard()->create(...)
  3. 从上次调用中获取令牌并将其传递给 $gateway->paymentMethodNonce()->create(..)
  4. 然后获取客户 ID 和新创建的随机数并将它们传递给 $gateway->paymentMethod()->create(...)
  5. 必要的保管库令牌已存储在结果对象中 $result->paymentMethod->graphQLId