【问题标题】:Passing sever side zip/postcode to Stripe checkout将服务器端邮政编码传递给 Stripe 结帐
【发布时间】:2013-10-01 19:23:24
【问题描述】:

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

【问题讨论】:

标签: stripe-payments


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    $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...
    

    【讨论】:

      猜你喜欢
      • 2016-10-20
      • 2018-05-12
      • 1970-01-01
      • 2021-08-05
      • 2021-11-08
      • 2018-04-02
      • 2017-09-18
      • 2022-07-12
      • 2016-01-16
      相关资源
      最近更新 更多