[英]Rails 4 Paypal REST API integration
我已經安裝了gem和GitHub所說的。 我已經創建了一個用於創建付款說明的單獨模型,但是不確定如何從我的訂單控制器中調用付款 。 另外,我還需要能夠從訂單中動態設置“付款”屬性,但是我嘗試了幾種不同的嘗試來實現這一點,但是沒有運氣。
我嘗試在訂單控制器中調用Payments.pay,但出現錯誤,提示不存在方法pay,但在Payments類中確實有該方法。 Payments類的部分代碼為:
class Payments < PayPal::SDK::REST::Payment
def pay
@payment = Payment.new({
:intent => "sale",
:payer => {
:payment_method => "credit_card",
:funding_instruments => [{
:credit_card => {
:type => "visa",
:number => "4567516310777851",
:expire_month => "11",
:expire_year => "2018",
:cvv2 => "874",
:first_name => order.first_name, # Need to do something similar to this but doesn't work
# etc...
end
end
總結一下,我需要幫助的是如何在另一個控制器或模型中調用此方法,以便可以處理付款以及如何動態設置字段?
我看到了一些潛在的問題。
首先,您將方法用作類方法,因此應該
def self.pay結束
為了使Payments.pay正常工作。 當前定義它的方式是作為實例方法。
如果要在控制器中調用此方法並動態傳遞字段,則需要編輯pay函數以接受參數。 並可能將此類導入控制器。
您可能只想在其中一個控制器中創建一個before_action:pay回調並定義方法/調用Paypal SDK,如下所示。 這將允許您獲取參數並在方法中使用它們(盡管我不認為您應該處理抄送號碼,但Paypal可能會處理此事並傳遞給您某種您隨后使用的令牌)。 還請注意Paypal命名空間庫的方式,在調用Paypal :: SDK :: REST等時可能會很棘手。
class PaymentsController < ApplicationController
before_action :pay
def create
@order = Order.find(params[:id])
end
private
def pay
@payment = PayPal::SDK::REST::Payment.new({
:intent => "sale",
:payer => {
:payment_method => "credit_card",
:funding_instruments => [{
:credit_card => {
:type => "visa",
:number => params[:number],
:expire_month => params[:month],
:expire_year => params[:year],
:cvv2 => params[:cvv],
:first_name => @order.first_name, # Need to do something similar to this but doesn't work
# etc...
end
end
end
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.