2

Payapal IPN通知を処理する私が書いたサーブレットをテストしようとしています(私のサーブレットはこのと非常に似ています)-IPN通知を使用しているテストアカウントですべての設定を有効にした後でも、まったく発生しません。

その後、明らかにサンドボックスで IPN をテストする唯一の方法は、IPN シミュレーターを使用することであることがわかりました。私はそれを使用しようとしていますが、私は得ています:

IPN 配信に失敗しました。HTTP エラー コード 405: メソッドは許可されていません

少しでも手がかりがある人はいますか?

また、IPNシミュレーターのようなものはひどいので(選択したオプションはすべてのフィールドをリセットするなど)、IPNハンドラーを簡単な方法でテストするためのアドバイスを求めています。

どんな助けでも大歓迎です!

4

1 に答える 1

2

Web サーバーが IPN ハンドラー URL で POST 要求を許可していることを確認します。この例では、リンクしたページの例の PHP バージョンを使用し、スクリプトを に配置しました/ipn.php

次に、自分のサーバーに telnet で接続します。(あなたのサーバーアドレスに置き換えてください)

$ telnet myserver.com 80
Trying myserver.com...
Connected to myserver.com.
Escape character is '^]'.

以下を telnet セッションに貼り付けます。(ipn.php と myserver.com を置き換えます)。最後のコマンドの後に空白行を追加します。

POST /ipn.php HTTP/1.1
Host: myserver.com
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 0
HTTP/1.1 200 OK

200 ステータスが表示されない場合は、アプリケーションが POST 要求を適切に処理していないことを意味し、これが 405 エラーの原因である可能性があります。

サーブレットに doPost() メソッドと doGet() を必ず実装する必要があります。

IPN シミュレーターから機能するリクエストを取得でき、サンドボックス テストに進む準備ができている場合は、正しい通知 URL を持っていることと、サンドボックス販売者のプロファイルで IPN が有効になっていることを確認してください。

また、IPN ハンドラーが INVALID リクエストもログに記録していることを確認して、リクエストが開始されたかどうかを確認してください。

最後に、https://www.sandbox.paypal.com/cgi-bin/webscrサーブレットで IPN 検証 URL が に設定されていることを確認します。(投稿した例のURLは ですhttps://www.paypal.com/cgi-bin/webscr

于 2009-07-21T23:11:16.030 に答える