第一步、登陆 Paypal开发者官网,创建一个买家账号和一个卖家账号
'[email protected]' :是我们开发环境下的卖家账号
'[email protected]' : 用来测试的买家账号
第二步、跳转到PayPal支付页面
# 1、在 orders_controller.rb 中添加
# POST /orders/1/pay
def pay
@order = Order.find(params[:id])
redirect_to @order.paypal_url(order_path(@order))
end
# 2、在 order.rb 模型中添加
def paypal_url(return_path)
values = {
business: "[email protected]",
cmd: "payment",
upload: 1,
return: "#{Rails.application.secrets.app_host}#{return_path}",
invoice: self.id,
amount: self.price,
item_name: "payment",
item_number: self.id,
quantity: '1'
}
"#{Rails.application.secrets.paypal_host}/cgi-bin/webscr?" + values.to_query
end
# 3、在 routes.rb 中添加
resources :orders
member do
post 'pay'
end
end
# 4、在 secrets.yml 中添加
development:
paypal_host: https://www.sandbox.paypal.com
app_host: http://our_project_url
production:
paypal_host: https://www.paypal.com
app_host: https://our_project_url
第三步、让我们开始测试吧!
当我们点击页面上的支付按钮时,会跳转到paypal支付的url
<%= link_to "Pay", pay_order_path(@order), method: :post %>