如何诱使App Engine在没有上下文的情况下运行PayPal IPN的代码

时间:2019-06-01 07:02:21

标签: google-app-engine go paypal paypal-ipn

我正在使用Go在Google App Engine中编写Paypal IPN的API。如贝宝(PayPal)文档所述,有人用我的贝宝(PayPal)按钮进行购买后,它将触发我的API,并且我需要以200状态码作为响应,并将“ cmd = _notify-validate&”添加到正文,然后向PayPal服务器发送新请求以获取VERIFIEDINVALID作为响应,以继续我自己的信息处理。

发送具有相同正文的请求是PayPal的握手,用于验证我收到的消息确实来自PayPal。

另一个事实是,谷歌应用引擎要求我对所有内容使用context。我知道Google会强制执行此限制以使应用程序可扩展。

现在我的问题是,应用引擎中的所有内容都需要一个context,而我拥有的唯一上下文是我通过激活API的请求创建的上下文,并且PayPal正在等待200状态该请求的代码。但是在用200响应之前,我需要向PayPal发送新请求,以从PayPal服务器获取响应,然后继续自己的处理。

当处理和发送请求可能要花费一些时间并且上下文可能会超时时,就会出现问题。由于我没有回复200,因此超时后PayPal将重新发送webhook,以上所有内容可能会再次发生。

我尝试在Go中使用Flusher接口,但似乎它不适用于状态码,而是用于正文中的数据。

有什么办法可以独立完成此操作吗?我已经搜索并阅读了google文档,却一无所获。

0 个答案:

没有答案
相关问题