5

Rails 3.0.10 および activemerchant gem 1.29.3

私のアプリはサンドボックスで正常に動作しますが、本番モードでのトランザクションは「Security header is not valid」、「ErrorCode」=>「10002」で失敗します

すべての構成パラメーターを何百万回も見直した後、PayPal でサポート リクエストを開始しましたが、彼らは私たちが間違ったエンドポイントに到達していると感じています。彼らは、ヘッダーなどを含むトランザクションの完全な追跡を要求したので、私はそれを行う方法を見つけようとしています. この記事を見つけました

これを構成ブロックに追加することを提案しました

ActiveMerchant::Billing::PaypalGateway.wiredump_device = File.new(File.join([Rails.root, "log", "paypal.log"]), "a")

しかし、それではログが空になるだけです。何もダンプされません。

では、可能であれば GATEWAY オブジェクトからこの情報を取得するにはどうすればよいでしょうか? これがプロダクション構成で、その形式はステージング環境で使用されるものと同じです。

::GATEWAY = ActiveMerchant::Billing::PaypalGateway(
      :login => 'me_api1.blah...',
      :password => 'string...',
      :signature => 'longer string...'
    )

ありがとう。

4

2 に答える 2

5

次のように行を追加する必要があります。

ActiveMerchant::Billing::PaypalGateway.wiredump_device.sync = true

環境内の同じ構成ブロック内

于 2012-12-27T19:07:40.473 に答える
-4

使用しているクラス ライブラリのどこかに、これを出力する関数が必要です (適切に構築されたライブラリの場合)。

ただし、それがなくても、その PaypalGateway 関数を調べて、エンドポイントがどこでどのように設定されているかを確認できるはずです。値をハードコーディングするか、クラスの別の場所で構成したサンドボックス オプションに基づいて異なるエンドポイントを設定します。

実際に使用しているクラス ライブラリを確認しないと、それ以上のことはわかりませんが、資格情報が正しくないか、エンドポイントが正しくないことが原因であることに同意できます。単に無効な資格情報ではない場合にセキュリティ ヘッダー エラーが発生したことは一度もありません。これは、値が正しくないか、間違ったエンドポイントに到達したことを意味します。

その関数全体 (または、エンドポイントが他の関数から設定される可能性があるライブラリ全体) を投稿したい場合は、問題を確認して見つけることができます。

于 2012-12-19T00:13:05.027 に答える