2015-12-04 70 views
1

问题是:收集客户信息并将其存储在保险库中的正确方法是什么?Braintree-javascript - 收集更多客户信息?

我希望在填写和提交嵌入式UI表单时将客户的结算信息存储在Braintree的保管库中,以便创建定期的未来交易。未来的交易将会收取不定额/不同的金额。

目前,我已经配置的嵌入式用户界面只有一个贝宝按钮和输入字段的cc#和到期日期。这是我目前有插入式用户界面:

Drop-in ui I have configured

按照docs,布伦特里插入式用户界面只允许收集:CC#,进出口日期,邮政编码/ CVV,贝宝acc和venmo acc。

我一直在思考创建表单和使用jquery从输入字段收集并将其提供给Braintree的transaction API,但不确定这是符合PCI/SAQ-A的。我也发现我可以store a new customer in the vault upon a successful transaction

Work in progress form

代码如下所示:

<div class="container-fluid"> 
<div class="container"> 
    <form class="form-horizontal" role="form" id="checkout" method="post" action="/checkout"> 

    <!-- billing information --> 
    <div class="container" style="width: 50%"> 
     <div class="form-group"> 
     <label class="control-label col-xs-3" for="Full Name">Full Name:</label> 
      <div class="col-sm-9"> 
      <input type="text" class="form-control" id="fullname" placeholder="Full Name"> 
      </div> 
     <br> 
      <label class="control-label col-xs-3" for="Address">Address:</label> 
      <div class="col-sm-9"> 
      <input type="text" class="form-control" id="Address" placeholder="Address"> 
      </div> 
     <br> 
     zip | city 
     <br> 
     country 
     </div> 
    </div> 
     <hr> 
     <!-- braintree drop-in ui form--> 
     <div class="text-center" id="payment-form"></div> 

     <!-- TOS --> 
     <div class="container"> 
     <h4>TOS Place holder</h4> 
     This will be where the TOS goes. It's a pretty good space is it not? 
     <br> 
     <h4>TOS Place holder</h4> 
     This will be where the TOS goes. It's a pretty good space is it not? 
     <br> 
     <h4>TOS Place holder</h4> 
     This will be where the TOS goes. It's a pretty good space is it not? 
     </div> 
     <hr> 
     <div class="text-center"> 
     <input type="submit" value="Submit Payment" class="btn btn-primary btn-lg"> 
     </div> 
    </form> 
    </div> 
</div> 
<!-- braintree sdk --> 
<script src="https://js.braintreegateway.com/v2/braintree.js"></script> 

<!-- braintree setup --> 
<script> 

/* 
* Uncomment when no longer in sandbox 
*/ 
//Get client token 
// $.get("/client_token", function(clientToken) { 
// braintree.setup(clientToken, 'dropin', { 
//  container: 'payment-form' 
// }); 
// }); 


var clientToken = *removed*; 
braintree.setup(
    // Replace this with a client token from your server 
    clientToken, 
    "dropin", { 
     container: "payment-form", 
     form: "checkout", 
    }); 
</script> 

任何帮助,非常感谢!感谢您花时间阅读。

回答

2

完全披露:我在布伦特里工作。如果您有任何其他问题,请随时致电contact support

Braintree Drop-in UI负责收集PCI和其他敏感付款信息。您提到的方法是,在表单中收集帐单信息,然后通过服务器的API(使用transaction.salepaymentMethod.create)通过API将结算信息提交给Braintree,这是填充此信息的正确方法。这种方法完全符合PCI标准。

此外,经过form属性braintree.setup因为你payment-form DIV是你checkout表单中是不是在你的榜样必要的。

+0

非常感谢! – c0de