アプリが別のドメインからの POST 要求を受け入れるようにできないようです。アプリで PayPal IPN ハンドラを作成しようとしています。
ユーザーがマイ ページの [購読] ボタンをクリックすると、PayPal は IPN (POST) を IPN ハンドラーに送信します。
AppEngine ログで、POST リクエストを受信したことを確認できますが、それは空です (たとえば、引数がない、logging.debug メッセージがログに表示されないなど)。
そのため、アプリ内でPOST を作成してハンドラーをテストすると、ハンドラーは期待どおりに動作します。
外部ソースからの POST を受け入れないのはセキュリティ機能だと思いますか? もしそうなら、私のアプリが PayPal からの POST を受け入れるようにするにはどうすればよいですか?
現時点でのハンドラーは次のようになります (テスト用です)。
class BaseHandler(tornadotoad.mixin.RequestHandler, tornado.web.RequestHandler):
# ...
class IPNHandler(BaseHandler):
def post(self):
if is_ajax(self.request):
logging.info('AJAX')
logging.info(self.request.arguments)
self.write("This is the IPN Handler\n'")
self.write(self.request.arguments)
return
前もって感謝します。
PS PayPal のSandbox Test Toolを使用して IPN を送信しています