如何使用stripe创建用户银行账户?
How can I create user bank account using stripe?
使用下面的php代码,我可以很容易地添加我的用户的银行帐户与附加信息到我的条纹帐户。
<?php
try {
require_once('vendor/autoload.php');
Stripe'Stripe::setApiKey("sk_test_code");
$account = 'Stripe'Account::create(
array(
"country" => "US",
"managed" => true,
"email" => "email@gmail.com",
"legal_entity" => array(
'address' => array(
'city' => 'Carlifonia', //
'country' => 'US',
"line1" => 'Address line 1',
"line2" => 'Address line 2',
"postal_code" => '90046',
"state" => 'Denver' //
),
'business_name' => '',
'business_tax_id' => '',
'dob' => array(
'day' => '01',
'month' => '01',
'year' => '1990',
),
'first_name' => 'Test Lynn First Name',
'last_name' => 'Test Lynn Last Name',
//'personal_id_number' => '000000000',
'ssn_last_4' => '4444',
'type' => 'individual'
),
'tos_acceptance' => array(
'date' => time(),
'ip' => $_SERVER['REMOTE_ADDR']
),
'transfer_schedule' => array(
"interval" => 'weekly',
"weekly_anchor" => 'sunday'
),
'external_account' => array(
"object" => "bank_account",
"country" => "US",
"account_holder_type" => 'individual', r
"routing_number" => "111000025",
"account_number" => "000123456789"
)
)
);
//send the file, this line will be reached if no error was thrown above
echo "<h1>Account ID = ".$account['id']."</h1>";
echo "<h1>Secret Key = ".$account['keys']['secret']."</h1>";
echo "<h1>Publish Key = ".$account['keys']['publishable']."</h1>";
}
//catch the errors in any way you like
catch(Stripe_CardError $e) {
print_r($e);
}
catch (Stripe_InvalidRequestError $e) {
// Invalid parameters were supplied to Stripe's API
print_r($e);
} catch (Stripe_AuthenticationError $e) {
// Authentication with Stripe's API failed
// (maybe you changed API keys recently)
print_r($e);
} catch (Stripe_ApiConnectionError $e) {
// Network communication with Stripe failed
print_r($e);
} catch (Stripe_Error $e) {
print_r($e);
// Display a very generic error to the user, and maybe send
// yourself an email
} catch (Exception $e) {
echo '<pre>';
$e_json = $e->getJsonBody();
echo $error = $e_json['error']['message'];
echo '</pre>';
// Something else happened, completely unrelated to Stripe
}
?>
html格式如下:
<form role="form" id="bank-payment-form" method="POST" action="<?php echo esc_url(SITE_URL.'test-bank-create') ?>">
<div class="row">
<div class="col-md-12"><h3>Identity Verification<hr/></h3></div>
<div class="bank-errors"></div>
<div class="form-group col-xs-12 col-sm-4 col-md-4">
<label class="control-label" for="date-time">Date Of Birth</label>
<select class="form-control day">
<option value="">--Select Day--</option>
<?php
for ($d = 1; $d <=31; $d++) {
echo "<option value='$d'>$d</option>";
}
?>
</select>
</div>
<div class="form-group col-xs-12 col-sm-4 col-md-4">
<label class="control-label" for="date-time"> </label>
<select class="form-control month">
<option value="">--Select Month--</option>
<?php
for ($m = 1; $m <=12; $m++) {
echo "<option value='$m'>$m</option>";
}
?>
</select>
</div>
<div class="form-group col-xs-12 col-sm-4 col-md-4">
<label class="control-label" for="date-time"> </label>
<select class="form-control year">>
<option value="">--Select Year--</option>
<?php
for ($i =2010; $i > 1900 ; $i--) {
echo "<option value='$i'>$i</option>";
}
?>
</select>
</div>
<div class="form-group col-xs-12 col-sm-12 col-md-12">
<label class="control-label" for="date-time">Address</label>
<input type="text" placeholder="Address 1" class="form-control address1" value="">
</div>
<div class="form-group col-xs-12 col-sm-12 col-md-12">
<input type="text" placeholder="Address 2 (optional)" class="form-control address2" value="">
</div>
<div class="form-group col-xs-12 col-sm-6 col-md-6">
<label class="control-label" for="date-time">Country</label>
<input type="text" value="US" disabled class="form-control country">
<input type="hidden" value="USD" data-stripe="country" disabled class="form-control" data-stripe="country">
</div>
<div class="form-group col-xs-12 col-sm-6 col-md-6">
<label class="control-label" for="date-time">State</label>
<select class="form-control state" id="area" required>
<?php
$get_location = mysqli_query($conn, "SELECT * FROM product_area");
if(mysqli_num_rows($get_location) == 0 ) {
$choose = 'No state found';
} else {
$choose = 'Choose State';
}
?>
<option value=""><?php echo $choose; ?></option>
<?php
while($get_location_result = mysqli_fetch_array($get_location) ) {
$location_id = (int) $get_location_result['parea_id'];
$location_name = htmlspecialchars($get_location_result['parea_name']);
echo "<option value='$location_id'>$location_name</option>";
}
?>
</select>
</div>
<div class="form-group col-xs-12 col-sm-6 col-md-6">
<label class="control-label" for="date-time">City</label>
<select id="sub_area" class="form-control city">
<option value="">--Select City--</option>
</select>
</div>
<div class="form-group col-xs-12 col-sm-6 col-md-6">
<label class="control-label" for="date-time">Zip Code</label>
<input type="text" value="<?php echo $zip_db; ?>" placeholder="Zip Code" class="form-control zip">
</div>
<div class="form-group col-xs-12 col-sm-12 col-md-12">
<label class="control-label" for="date-time">SSN Number</label>
<input type="text" placeholder="SSN Number" class="form-control ssn" value="">
<small>Your SSN is used to verify your identity.</small>
</div>
<div class="col-md-12"><h4><b>Funds Recipient</b></h4></div>
<div class="form-group col-xs-12 col-sm-12 col-md-12">
<select class="form-control account_holder_type">
<option value="">--Select Account Holder Type--</option>
<option value="individual">Individual</option>
<option value="company">Company</option>
</select>
</div>
<div class="col-md-12"><h4><b>Bank Account</b></h4></div>
<div class="form-group col-xs-12 col-sm-6 col-md-6">
<label class="control-label" for="date-time">Routing Number</label>
<input type="text" class="form-control routing_number" value="" placeholder="123456789">
<small>Your routing number will be 9 digits</small>
</div>
<div class="form-group col-xs-12 col-sm-6 col-md-6">
<label class="control-label" for="date-time">Account Number</label>
<input type="text" class="form-control account_number" value="" placeholder="">
<small>Your routing number will be 9 digits</small>
</div>
<div class="col-md-6 col-sm-6 col-xs-12">
<input type="submit" value="Verify Identity" class="submit btn btn-booking">
</div>
<?php } ?>
</div>
</div>
</div>
</form>
我看到了stripe.js。他们使用以下js代码添加银行账户:
Stripe.bankAccount.createToken({
country: $('.country').val(),
currency: $('.currency').val(),
routing_number: $('.routing-number').val(),
account_number: $('.account-number').val(),
account_holder_name: $('.name').val(),
account_holder_type: $('.account_holder_type').val()
}, stripeResponseHandler);
但是你看到,在我的html表单中,我有额外的字段,例如出生日期。
我的问题是如何添加一个用户的银行帐户使用这个stripe.js与我所有的html表单字段?
管理帐户的legal entity
属性所需的字段不是您可以直接通过Stripe.js传递的东西。
您可以在这里做的是创建一个银行帐户令牌,将其附加到包含其他信息的表单中,然后将该表单提交到后端进行处理。
它是如何工作的:设置一个处理程序来监听表单提交或点击提交按钮,使用它来触发您的Stripe.bankAccount.createToken
调用。
在createToken调用的stripeResponseHandler
回调中,将名称为stripeToken
的隐藏输入附加到目标表单,然后提交表单。
表单将与银行账户令牌以及您在<form></form>
标签和命名之间创建的任何其他表单字段一起传递到您的后端,然后您可以使用php检索(例如,您添加的银行账户令牌为$_POST['stripeToken']
,或者如果您有一个带有属性name="dob-year"
的字段为$_POST['dob-year']
)。
你可以在这里看到基本的想法:https://jsfiddle.net/pay62y2f/
相关文章:
- 如何检查用户是否使用$routeChangeStart登录angularjs
- Rails:如何获取当前用户'使用Heroku时的时区
- 如何记录用户'使用Javascript/PHP的语音
- 当用户允许使用mic Javascript时,事件处理程序是什么
- 如何发现用户是否使用jQuery滚动到HTML容器的末尾
- 更新用户's使用PHP或JavaScript链接
- 如何查看用户正在使用的浏览器(和版本)
- 如何确保唯一的电子邮件,用户名将使用Mongoose输入MongoDB
- 检查用户在使用传单时是否共享位置's locate()
- 如何定义搜索词框来搜索用户'使用Twitter流API和meter.js的特定时间线
- Javascript如何引导用户完成使用流程
- 您可以确定用户是否使用嵌入脚本登录到Yammer吗
- 有没有办法检测用户是否使用iPhone 3GS或4浏览网站
- 在多用户中使用本地存储
- 是否有可能知道用户何时点击YouTube视频上的广告
- 角度用户界面 使用模态形式编辑数据
- 如何防止用户在使用jQuery UI和RequireJs时看到“丑陋”的HTML前体
- 通过用户仅使用 javascript 从文本框输入从 html 表中添加和删除行
- 用户登录 使用Backbonejs
- 了解用户是否使用上下文菜单打开链接