我对脑子有问题,
假设客户在我的网站上登录,然后我为该客户创建客户端令牌(通过BraintreeClientToken::generate()
函数传递客户ID),因此,如果他有任何现有付款方式,那么它将自动在客户端加载。
但是,如果客户选择了已经在金库中的新付款方式:
对于卡相同的卡号,对于PayPal相同的电子邮件地址,
然后,它会在该客户中自动添加在Vault中,要么不存在,
因此,在我的情况下,我不想为同一用户两次或更多,
存储相同的付款方式(贝宝或卡),我该如何限制,以便相同的付款方式不应多次存储在保险库中?
全面披露:我在Braintree工作。如果您还有其他问题,请随时联系支持。
实际上,您可以在客户端令牌生成的选项中设置一个参数,称为failOndUplicatePaymentMethod。如果此选项以真实方式传递,并且已经将付款方式添加到保管库中,则请求将失败。仅当客户_ID也通过时,才能通过。如果支票失败,则此选项将阻止倒入payment_method_nonce。不幸的是,这对PayPal付款方式不起作用,并且有一些解决方法。
不存储在保险库中
您首先需要在客户端回调中收集客户的PayPal电子邮件帐户。当付款类型是PayPalacCount时,您可以在用户的电子邮件中运行BrainTree :: Customer.search()请求。如果这会带来您指定的PayPal电子邮件帐户的任何客户(从客户端集成中检索到),则您无需估计帐户,您可以简单地继续对现有令牌创建另一笔交易。<<<<<<<<<<<<<<<<
删除重复帐户
第二种解决方法与第一个解决方法相似。您像往常一样收集客户的贝宝付款方式(收集nonce并将其传递给服务器),然后在braintree :: paymentmethod.creat.creat.creat.creat.creat.creat.create.creat.creat.creat.creat.creat.creat.creat.creat.creat.creat.creat.creat.creat.creat.creat.creat.creat.creat.creat.creat.creat. :: customent。像往常一样创建API请求。在返回的结果对象中,您可以检查此PayPal交易的详细信息,Paypal_details,然后检查一下以查找电子邮件地址。如果此电子邮件匹配该客户的PayPal帐户,则可以选择立即删除新的付款方式。
如果您需要更多帮助,请随时接触Braintree支持。