我们正在尝试使用Braintree的dropin ui来收取客户付款。
我们可以从客户那里收到付款(并到达“成功”页面),现在需要确定哪个客户付款并将其反映在我们的数据库中。
自定义字段似乎无法使用dropin ui来传递我们的客户端ID等。
成功'是否有变数? dropin ui的页面,用于标识在结帐页面中进行购买的用户?
答案 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。