我正在使用Stripe和Rails为小型在线业务创建支付系统。我正在使用Stripe的Checkout功能,这使得设置基本付款非常容易。
由于企业销售物理对象,我需要收集用户的送货地址信息并将其包含在付款提交中。我注意到Stripe有关于如何实现这一点的非常糟糕的文档。我之前没有使用Stripe所以我对从这里去哪里没有很大的直觉。这是我的代码:
充电/ new.html.erb
<%= form_tag charges_path do %>
<article>
<label class="amount">
<span>Amount: <%= @order.subtotal %></span>
</label>
</article>
<script src="https://checkout.stripe.com/checkout.js" class="stripe-button"
data-key="<%= Rails.configuration.stripe[:publishable_key] %>"
data-image="http://www.fairmountbagel.com/images/bagels/pavot2.png"
data-description="Your Bagel Clock"
data-name="Bagel-O-Clock"
data-amount="<%= @amount %>"></script>
<% end %>
控制器/ chargers_controller.rb
class ChargesController < ApplicationController
before_filter :load_order
def new
if !@order.order_items.empty?
@amount = (@order.subtotal.to_f * 100).to_i
else
redirect_to root_path
end
end
def create
@amount = (@order.subtotal.to_f * 100).to_i
customer = Stripe::Customer.create(
:email => @order.customer_info.email,
:card => params[:stripeToken]
)
charge = Stripe::Charge.create(
:customer => customer.id,
:amount => @amount,
:description => 'Rails Stripe customer',
:currency => 'cad'
)
@order.order_items.destroy_all
rescue Stripe::CardError => e
flash[:error] = e.message
redirect_to charges_path
end
private
def load_order
@order = current_order
end
end
我是否应该将收货信息保存到地址模型中,然后将信息传递给客户或收费对象?或者我可以在Stripe Checkout模式中创建字段吗?感谢
答案 0 :(得分:1)
万一您不知道可以创建测试费用并在dashboard中查看。使用test card number之类的4242424242424242.上面的代码对我来说很好。
一个选项
让条纹处理送货地址(check this posts)并点击付款卡片以查看它的外观。
提交付款后,Stripe会生成一个JSON响应,您可以处理并保存到您的数据库,请查看此帖子post。
另一种选择:
您对应用程序进行编码,以便用户无法下订单而不输入送货地址,并且一旦用户键入送货地址,您就可以使用Stripe付款
如果这有帮助或者您遇到困难,请告诉我。我相信你已经看过条纹文档,但以防万一这里是link