第一步、登陸 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 %>