4

我正在尝试设置 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 频道,所以我认为它可能是正确的。

4

2 回答 2

3

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

于 2013-10-03T23:54:27.427 回答
1

未经测试,但可能有解决方案,因为您可以在收费之前更新卡,您可以从 $token 更新客户卡,您可以在 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...
于 2014-11-27T17:53:20.617 回答