Rails中带条纹的送货地址

时间:2015-05-18 00:46:59

标签: ruby-on-rails stripe-payments

我正在使用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模式中创建字段吗?感谢

1 个答案:

答案 0 :(得分:1)

万一您不知道可以创建测试费用并在dashboard中查看。使用test card number之类的4242424242424242.上面的代码对我来说很好。

一个选项

让条纹处理送货地址(check this posts)并点击付款卡片以查看它的外观。

提交付款后,Stripe会生成一个JSON响应,您可以处理并保存到您的数据库,请查看此帖子post

另一种选择:

您对应用程序进行编码,以便用户无法下订单而不输入送货地址,并且一旦用户键入送货地址,您就可以使用Stripe付款

如果这有帮助或者您遇到困难,请告诉我。我相信你已经看过条纹文档,但以防万一这里是link