0

アプリに IPN 通知を設定して、すべての情報をアプリに送り返すのに問題があります。私の支払いは正常に機能しており、機能しています。notify_action に問題があります。支払いの情報を取得してアプリに送り返し、支払いからすべての情報を取得したいと考えています。

 def checkout
  ....
  response = @gateway.setup_purchase(
     :return_url => "http://localhost:3000",
     :cancel_url => "http://localhost:3000",
     :ipn_notification_url => orders_notify_action_url,
     :receiver_list => recipients
     )
  ..
  redirect_to (@gateway.redirect_url_for(response["payKey"]))
 end

 def notify_action
     notify =  ActiveMerchant::Billing::Integrations::PaypalAdaptivePayment::Notification.new(request.raw_post)
    p "Notification object is #{notify}"
    if notify.acknowledge
      p "Transaction ID is #{notify.transaction_id}"
      p "Notification object is #{notify}"
      p "Notification status is #{notify.status}"
    end
    render :nothing => true
end

https://gist.github.com/8acceeee72fe12312c09

4

1 に答える 1

1

どのような問題が発生しているかを特定していただけると、非常に役立ちます。例えば、notify_action が Paypal の IPN に当たらないという問題でしょうか。または、notify.acknowledge が false を返していますか?

厳密にIPNの場合、これは私の作業中のコントローラーがどのように見えるかです:

class PayController < ApplicationController
    include ActiveMerchant::Billing::Integrations   

    def paypal
        notify = Paypal::Notification.new(request.raw_post)
        logger.debug "Notification object is #{notify}"
        if notify.acknowledge
            logger.debug "Transaction ID is #{notify.transaction_id}"
            logger.debug "Notification object is #{notify}"
            logger.debug "Notification status is #{notify.status}"
        end        
        render :nothing => true
    end
end

次に、私が Paypal に提供した URL は www.yourwebsite.com/pay/paypal です。

次に、route.rb のルートを単純に一致させます。

match 'pay/paypal' => 'pay#paypal'

通知オブジェクトには、特定の購入に関するすべてのデータが含まれている必要があります。

重要: ログ ファイルを見て、関数が呼び出されているかどうかを確認します。もしそうなら、何が出力されていますか?

于 2012-07-26T14:34:24.703 に答える