我正在构建一个电子商务应用,并且正在使用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)
答案 0 :(得分:0)
乍一看,代码看起来很正确。我想知道为什么address_zip
行在f.text_field
行正在使用cvc
时使用text_field_tag
。这些方法的API是不同的,所以我会在浏览器中检查实际的渲染标记,以确保生成的内容。
如果失败了,您是否可以粘贴基于Stripe.js的Javascript?您是否将表单元素作为参数传递给createToken
?