[英]Block requests from *.appspot.com and force custom domain in 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正在通过。
感谢大家!
这里有一些预感。
也许“ / ipn”没有被路由到IPNHandler。 也许是另一个不赞成使用的处理程序?
也许您在日志中查看的应用程序版本与您拥有的应用程序版本不同。 也许您可以部署代码的新版本并针对新代码进行测试。
也许POST请求Paypal发送给您没有参数。
PS从贝宝(Paypal)端了解有关您如何执行测试的更多信息,显示代码的其他相关部分,以及任何其他相关信息都可以提供帮助。 :)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.