使用Braintree v.zero SDK设置付款表单:
braintree.setup(response.value, 'dropin', {
container : 'xyz',
onPaymentMethodReceived : function(payment) {
pay(payment.nonce);
},
});
输入付款信息后,表格会显示:
...但仅在重新加载页面之前。有没有办法初始化dropin支付表单以列出客户现有的支付方式?
答案 0 :(得分:4)
完全披露:我在Braintree工作。如果您有任何其他问题,请随时联系support。
关键似乎在于您的response.value
(即您的客户端令牌)。我猜你用来生成它的服务器代码并没有为该用户指定customerId。
来自Braintree documentation on generating client tokens:
您的服务器负责生成客户端令牌,其中包含客户端初始化客户端SDK以与Braintree通信所需的所有授权和配置信息。在生成客户端令牌时包括customerId允许返回的客户从以前使用的付款方式选项中进行选择,从而改善多次结账的用户体验。设置您的客户端涵盖交易所的客户端。
底线:如果您使用与您的客户匹配的customer_id
生成客户端令牌,则Drop-in将显示多张卡片。
client_token = braintree.ClientToken.generate({
"customer_id": a_customer_id
})