0

次のコード

    purchase = @order.authorize_payment(@credit_card, オプション)
    is_success = purchase.success?
    if is_success
        ...
    そうしないと
      flash[:notice] = "!! " + purchase.message + " 
" + purchase.params['missingField'].to_s redirect_to :action => :payment, :id => @order.id 終わり

flash[:notice] で "!! Failed with 500 Internal Server Error" という結果になります。スタック トレースも Web サーバー エラーもありません。は偽です。

これをトラブルシューティングする方法を理解するのに本当に途方に暮れています。SSL 要件である可能性があると思いますが、SOAP リクエストが表示されないか、サイバーソース (私の支払いゲートウェイ) との基本的な接続をテストできません。

このコードでゲートウェイを確立します (config.after_initialize の後):

ActiveMerchant::Billing::Base.mode = :production # :test
  ActiveMerchant::Billing::CreditCard.require_verification_value = false
  ActiveMerchant::Billing::Cyber​​SourceGateway.wiredump_device = File.new(File.join([Rails.root, "log", "cybersource.log"]), "a") # 動作しません (!)
  # パスワードを取得するために外部ファイルを開く必要があります
  mypassphrase = File.open('/var/www/foo/shared/passphrase.txt').read
  OrderTransaction.gateway = ActiveMerchant::Billing::Cyber​​SourceGateway.new(:login => 'vxxxxxxx',
                                                    :password => mypassphrase.to_s,
                                                    :test => false,
                                                    :vat_reg_number => 'VAT登録番号',
                                                    # 税務目的で実際に存在する州/県を設定します
                                                    :nexus => "がああ",
                                                    # AVS を使いたくないので、AVS が失敗しても処理を続行します
                                                    :ignore_avs => true,
                                                    # CVV を使用したくないので、CVV が失敗しても処理を続行します
                                                    :ignore_cvv => true,
                                                    :money_format => :ドル
                                                    )

石鹸のリクエストを見ることはできますか?この部分をテストする方法はありますか? どんな助けでも大歓迎です。

一番、

ティム

4

2 に答える 2

4

ActiveMerchant :: Billing :: Cyber​​SourceGateway.logger = your_logger

于 2012-03-30T15:02:03.273 に答える
1

ということで、返信遅くなりましたが…

私は Cyber​​source ゲートウェイでかなりの作業を行いましたが、現在、Cyber​​source ゲートウェイの SOAP 要求/応答を確認する唯一の方法は、gem を開いて編集することです。

lib/active_merchant/billing/gateways/cybersource.rb の commit メソッドを変更すると、次のようになります。

def commit(request, options)
    puts "*** POSTING TO: #{test? ? TEST_URL : LIVE_URL}"
    request =  build_request(request, options)
    puts "*** POSTING:"
    puts request
    begin
         post_response = ssl_post(test? ? TEST_URL : LIVE_URL, request)
    rescue ActiveMerchant::ResponseError => e
      puts "ERROR!"
      puts e.response
    end
    puts post_response

その手間をかけずにその応答を取得する方法があればいいのですが、返された応答オブジェクトを介してその情報を渡し、それをフォークに追加する方法があるかどうかを確認します。

于 2012-03-20T22:03:50.573 に答える