当前位置:  开发笔记 > 编程语言 > 正文

在Braintree中,是否可以仅为一个客户而不是整个保险库验证重复的付款方式?

如何解决《在Braintree中,是否可以仅为一个客户而不是整个保险库验证重复的付款方式?》经验,为你挑选了1个好方法。

对于Braintree_PaymentMethod :: create()函数,其中一个选项是:

'failOnDuplicatePaymentMethod', bool

如果传递此选项并且已将支付方法添加到Vault,则请求将失败.此选项不适用于PayPal付款方式.

这似乎是一个全球比较.即,如果保险库中存在信用卡信息,无论客户ID如何,这都将失败.

有没有办法检查特定客户的重复项?



1> Raymond Berg..:

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

您和Evan是正确的:无论客户创建,这都是唯一预先构建的重复创建方式.但是,您可以实现自己尝试使用自己的自动化.

为此,只需从客户对象中收集已存在的信用卡唯一ID.然后,在创建新的付款方式时,将其与现有卡进行比较:

function extractUniqueId($creditCard){ 
    return $creditCard->uniqueNumberIdentifier;
}

$customer = Braintree_Customer::find('your_customer');
$unique_ids = array_map(extractUniqueId,$customer->creditCards);

$result = Braintree_PaymentMethod::create(array(
    'customerId' => 'your_customer',
    'paymentMethodNonce' => 'fake-valid-discover-nonce',
));

if ($result->success) {
    if(in_array(extractUniqueId($result->paymentMethod), $unique_ids)) {
        echo "Do your duplicate logic";
    } else {
        echo "Continue with your unique logic";
    }
} 

根据您的目的,您可以删除新的付款方式或其他任何您需要的方法.

推荐阅读
手机用户2502852037
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有