簡體   English   中英

接受來自外部域的POST請求? (Google App Engine)

[英]Accept POST requests from external domain? (Google App Engine)

我似乎無法讓我的應用接受來自其他域的POST請求。 我正在嘗試在我的應用程序中創建一個PayPal IPN處理程序。

當用戶單擊我頁面上的“訂閱”按鈕時,貝寶將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的沙盒測試工具來發送IPN

我發現了我的錯誤。 我將處理程序的URL與其他具有login: required URL一起放置在app.yaml

我已解決此問題,現在PayPal的IPN正在通過。

感謝大家!

這里有一些預感。

  1. 也許“ / ipn”沒有被路由到IPNHandler。 也許是另一個不贊成使用的處理程序?

  2. 也許您在日志中查看的應用程序版本與您擁有的應用程序版本不同。 也許您可以部署代碼的新版本並針對新代碼進行測試。

  3. 也許POST請求Paypal發送給您沒有參數。

PS從貝寶(Paypal)端了解有關您如何執行測試的更多信息,顯示代碼的其他相關部分,以及任何其他相關信息都可以提供幫助。 :)

只是預感,我可能不在這里,但是對於龍卷風,我似乎無法在文檔中找到該名稱的方法或屬性...

至少對於webapp,我認為arguments是一個實例方法:

 logging.info(self.request.arguments())

請參閱此處的文檔。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM