簡體   English   中英

Paypal-Express gem Rails集成

[英]Paypal-Express gem Rails integration

我正在嘗試使用paypal-express gem實現Paypal Express付款。 但是,很困惑。

這是事務控制器中create方法的代碼

      elsif params[:purchase][:payment_method] == "Paypal"
          #paypal payment
          request = Paypal::Express::Request.new(
              :username   => "xxxxxxxxxxxxxxxxx",
              :password   => "xxxxxxxxxxxxxxxx",
              :signature  => "xxxxxxxxxxxxxxxx"
                )
                payment_request = Paypal::Payment::Request.new(
                  :currency_code => "#{@current_user.currency}",   # if nil, PayPal use USD as default
                  :description   => "Purchase of SMS",    # item description
                  :quantity      => 1,      # item quantity
                  :amount        => "#{@total}",   # item value
                )
                response = request.setup(
                  payment_request,
                  success_url,
                cancel_url
                )
                transaction.tracking_id = response.token 
                transaction.save
                response.redirect_uri

和成功方法

  def success   
    token = params[:token]
    payer_id = params[:payer_id]
    request = Paypal::Express::Request.new(
                  :username   => "xxxxxxxxxxxxxxx",
                  :password   => "xxxxxxxxxxxxxxx",
                  :signature  => "xxxxxxxxxxxxxxx"
                    )
    response = request.details(token)
    transaction = Transaction.find_by_tracking_id(token)
    transaction.merchant_reference = payer_id
    transaction.status = "Completed"
    transaction.save
    user = User.find(transaction.user_id)
        user.balance = (user.balance+response.amount.to_i)
        user.save()
        response = request.checkout!(
      token,
      payer_id,
      payment_request
        )
      flash[:notice] = 'Payment Transaction Completed'
      user_home_path(@current_user)   
  end

和取消方法

 def cancel   
      flash[:warn] = 'Payment Request Canceled'
      user_home_path(@current_user)     
  end

我該如何在create方法中提出適當的請求,獲得令牌作為響應並存儲它,以便能夠在成功方法中使用它來搜索特定交易。

另外,我該如何在成功方法中執行適當的DoExpressCheckoutPayment

先感謝您。

我從未使用過paypal-express gem,因此對於create方法如何使用response.token(底部第三行:transaction.tracking_id = response.token),我有些困惑。 這項任務感覺很早。

無論如何,您的問題與gem無關,而與您的應用程序有關。 您的基本問題是“如何在兩個或多個操作之間保留數據?” 如我所見,您有兩種可能的方法。

首先,您可以將response.token或transaction.tracking_id放入會話中。 如果付款的用戶不是每次訪問您網站的一部分,則此方法可能不起作用。

其次,您可以將token / tracking_id存儲在用於跟蹤訂單的任何DB支持的模型上。 這樣,您可以根據token / tracking_id查找活動訂單,並為Paypal響應獲取應用程序的上下文。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM