Rails 4 - Stripe Zipcode&街道验证

时间:2014-11-11 19:54:13

标签: ruby-on-rails stripe-payments

我正在构建一个电子商务应用,并且正在使用Stripe。支付系统可以工作,但此时,唯一的验证是卡号和cvc。我想添加邮政编码和街道验证。

我首先使用zip开始,然后添加地址行。我做了以下事情:

我已经检查了条带帐户中的zipcode验证框。然后,根据Stripe doc,我需要使用属性“address_zip”将zip传递给条带。以下是订单的一部分。

<%= f.text_field :zip, { :name => nil, :'data-stripe' => "address_zip", class: "form-control" } %>

当我下订单时,无论我输入什么拉链,都会收到错误。即使是正确的拉链也会给我一个错误。但错误是模型验证错误,说“Zip不能为空”。这不是条带错误。

我基于cvc代码基于上面的代码行,如下所示。这很有效。

<%= text_field_tag :card_code, nil, { :name => nil, :'data-stripe' => "cvc", class: "form-control" } %>

为什么我的拉链没有被阅读?我的旧代码是<%= f.text_field :zip, class: "form-control" },它运行正常。

更新:

jQuery ->
  Stripe.setPublishableKey($('meta[name="stripe-key"]').attr('content'))
  payment.setupForm()

payment =
  setupForm: ->
    $('#new_order').submit ->
      $('input[type=submit]').attr('disabled', true)
      Stripe.card.createToken($('#new_order'), payment.handleStripeResponse)
      false

  handleStripeResponse: (status, response) ->
    if status == 200
      $('#new_order').append($('<input type="hidden" name="stripeToken" />').val(response.id))
      $('#new_order')[0].submit()
    else
      $('#stripe_error').text(response.error.message).show()
      $('input[type=submit]').attr('disabled', false)

1 个答案:

答案 0 :(得分:0)

乍一看,代码看起来很正确。我想知道为什么address_zip行在f.text_field行正在使用cvc时使用text_field_tag。这些方法的API是不同的,所以我会在浏览器中检查实际的渲染标记,以确保生成的内容。

如果失败了,您是否可以粘贴基于Stripe.js的Javascript?您是否将表单元素作为参数传递给createToken