首页 > 解决方案 > 无法接收来自另一台服务器的 POST 请求(Flask/Python)

问题描述

我正在使用 Python/Flask 制作网站。它托管在 PythonAnywhere 上。

我有一个会员系统,他们必须为此支付一些产品费用,我正在使用来自我的国家(巴西)的支付网关。问题是:

付款完成后,网关使用我通知的 url 路径向我发送一个 POST 请求,其中包含付款信息,我需要获取该信息,但它永远不会触发我拥有的 url 路由。

另外,我需要向网关发送一个状态为 200 或 201 的 GET 请求,以便它知道我收到了付款信息。

我不知道网关什么时候会发给我。此外,当我收到 POST 请求时,我无法重定向用户。

这是网关向我发送信息时来自 PythonAnywhere 的访问日志

54.88.218.97 - - [26/Jun/2020:13:40:48 +0000] "POST /test.html?data.id=27324748&type=payment HTTP/1.1" 401 22 "-" "MercadoPago WebHook v1.0 支付" "54.88.218.97" 响应时间=0.002

我通知网关的 URL:

http://gamebet.pythonanywhere.com/test.html

该 URL 的路由:

@app.route('/test.html', methods=['GET', 'POST'])
def test():
    if request.method == "POST":
        print('hey')
        return_data = request.args.to_dict()
        print(return_data)
        status_code = Response(status=200)
        return status_code

即使我删除了 if 条件,这条路线也永远不会触发。

我能做些什么?

谢谢!

标签: pythonflaskrequesthttp-postpythonanywhere

解决方案


推荐阅读