使用Ruby上的Express Checkout PayPal在Rails上,返回空白页



我在应用程序中遇到了一些问题。我正在关注https://launchschool.com/blog/basic-paypal-checkout-processing-in-rails的教程,以使用PayPal处理付款,但是当我的应用程序重定向到Sandbox Paypal时,它会显示一个空白页。

这是我的代码

订单控制器

def create
    @order = Order.new(order_params)
    @order.add_line_items_from_cart(@cart)
    respond_to do |format|
    if @order.save
      redirect_to @order.paypal_url(orders_path(@order))
    else
      render :new 
    end
  end

订购模型

protect_from_forgery except: [:hook]
  def hook
    params.permit! # Permit all Paypal input params
    status = params[:payment_status]
    if status == "Completed"
      @order = Order.find params[:invoice]
      @order.update_attributes notification_params: params, status: status, transaction_id: params[:txn_id], purchased_at: Time.now
    end
    render nothing: true
  end

secret.yml

development:
  secret_key_base: 0351c7e4eb70df5503d739c085d7a75dae662a55e95cf257b4a2e3edaa6985623372b7d20fc3ea59fe58d9ec94243e36a7250007ad2d9734b68cf29f90cca682
  paypal_host: https://www.sandbox.paypal.com
  app_host: http://0.0.0.0:3000

Routes.rb

post "/hook" => "orders#hook"
post "/orders/:id" => "orders#show"

对不起,我的英语不好..

wespond_to需要您指定操作将响应的格式,例如

respond_to do |format|
    format.html { redirect_to .... }
end

format.any(:html, :js) { ... }

在您的情况下,您似乎不需要使用recond_to

最新更新