将服务器端邮编/邮政编码传递给Stripe checkout

时间:2013-10-01 19:23:25

标签: stripe-payments

我正在尝试设置Stripe结帐,这样我就可以将服务器端客户邮编/邮政编码传递给Stripe结帐。看起来应该很简单,但我无法让它发挥作用!

最简单的是,我使用的代码是:

<form action="charge.php" method="POST">
<script
  src="https://checkout.stripe.com/v2/checkout.js" class="stripe-button"
  data-key="pk_test_redacted"
  data-amount="2000"
  data-name="Demo Site"
  data-description="2 widgets (£20.00)"
  data-currency="gbp"
  data-address_zip="NG15 6UR">
</script>
</form> 

交易工作正常,但它没有传递邮编/邮政编码,因此可以进行AVS检查。

我做错了什么?

修改

所以显然你不能使用checkout.js传递地址信息 - 你只能在他们将卡的详细信息用于使用时才能获得客户提供的地址

data-address="true2"

据我所知,这意味着我可以通过让客户在我已经拥有它们时添加他们的地址详细信息来麻烦客户!

或者我必须使用stripe.js,这意味着我已经构建了自己的表单,使它看起来很漂亮,验证它等等。不是很大的事情,但是当有一个表单时我会做我需要的所有但是接受地址表单在表单创建时传递的字段,有点烦人: - (

如果有人知道,我会很乐意听到,但这些信息来自#stripe irc频道,所以我认为这可能是正确的。

2 个答案:

答案 0 :(得分:3)

如编辑中所述,我确实必须使用stripe.js并制作自己的表单。遗憾的是,这个小小的遗漏意味着相当多的额外工作 - 但仍然比Paypal的API和文档更糟糕!也便宜。

答案 1 :(得分:1)

未经测试但可能有一个解决方案,因为您可以在收费前更新卡,您可以从您传递到php中的后端处理器的$令牌更新客户卡,例如:

$cu = Stripe_Customer::retrieve($customer->id);
$card = $cu->cards->retrieve($token);
$card->address_city = $form['city'];
$card->address_line1 = $form['address_line_1'];
$card->address_line2 = $form['address_line_2'];
$card->address_state = $form['county'];
$card->address_country = "United Kingdom";
$card->address_zip = $form['postcode'];

然后收取费用

$charge = Stripe_Charge::create(array(
    'customer' => $customer->id, etc...