确定使用braintree dropin ui进行购买的客户

时间:2016-09-20 05:07:28

标签: javascript php braintree gateway

我们正在尝试使用Braintree的dropin ui来收取客户付款。

我们可以从客户那里收到付款(并到达“成功”页面),现在需要确定哪个客户付款并将其反映在我们的数据库中。

自定义字段似乎无法使用dropin ui来传递我们的客户端ID等。

成功'是否有变数? dropin ui的页面,用于标识在结帐页面中进行购买的用户?

1 个答案:

答案 0 :(得分:2)

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

访问与交易相关联的客户

Braintree_Transaction对象中返回的$result记录确实具有customerDetails属性。因此,可以识别进行交易的客户:

$result->transaction->customerDetails

将新客户与交易相关联

create a customer, store their payment method, and create a transaction at once只能使用Braintree_Transaction::sale()。只需传递您从客户端收到的付款方式nonce,并将storeInVaultOnSuccess设置为true。 (可选)您可以指定客户ID和其他customer parameters。 (如果您未指定客户ID,网关将为您创建一个。

$result = Braintree_Transaction::sale([
  'amount' => '10.00',
  'paymentMethodNonce' => nonceFromTheClient,
  'customer' => [
    'id' => 'a_customer_id'
  ],
  'options' => [
    'storeInVaultOnSuccess' => true,
  ]
]);

将现有客户与交易相关联

使用Drop-in UI时,您可以通过在生成client token时包含该客户的ID来指定哪个返回客户进行了交易:

  

Drop-in UI支持使用已保存的付款方式呈现回头客。要为保险库中的客户生成令牌,请提供客户的ID。 1

$clientToken = Braintree_ClientToken::generate([
    "customerId" => $aCustomerId
]);

您只能为保管库中已存在的客户指定ID。