如何确定发送到Google Apps脚本网络应用程序的GET或POST请求的来源网址?
我正在制作一个(PayPal IPN)监听器脚本,并希望能够区分来自测试环境(沙箱)或实时环境的天气。
对侦听器的请求的来源决定了脚本的响应。监听器必须将响应发送回PayPal,并且根据请求来自哪个环境,响应需要返回到沙箱服务器或实时服务器。
我希望在我的Google Apps脚本中区分来自sandbox.paypal.com
或www.paypal.com
的请求。
要解决此要求,我现在手动设置它:
if (PPRunMode == 'test') {//in testmode send response to sandbox site
PPUrlBase = "https://www.sandbox.paypal.com/cgi-bin/webscr";
}
else {//url for live website
PPUrlBase = "https://www.paypal.com/cgi-bin/webscr";
}
但是想知道这是否可以自动确定。
答案 0 :(得分:3)
很遗憾,没有向您的Google Apps脚本网络应用程序提供请求源信息,因此没有直接的方法来确定请求的来源。
您确实能够为您的Web应用程序提供参数,因此您可以让沙盒环境中的代码使用它来指示测试条件。
例如,沙盒代码可以将此URL用于GET请求:
https://script.google.com/macros/s/---SCRIPT-ID---/exec?test=true
^^^^^^^^^^
在doGet(e)
函数中,您将处理如下参数:
function doGet(e) {
if (e.parameter.test) { //in testmode send response to sandbox site
PPUrlBase = "https://www.sandbox.paypal.com/cgi-bin/webscr";
}
else {//url for live website
PPUrlBase = "https://www.paypal.com/cgi-bin/webscr";
}
...
}
对于POST请求,解决方案类似。有关详细信息,请参阅网络应用和Google协作平台小工具指南中的URL parameters。
答案 1 :(得分:0)
如果您发布Google App脚本,则会收到两个网址:
https://script.google.com/macros/s/AKfycbxsCNyssA0dzMMmsNip3DW66hiJ62ks_F1yYUn0SDu073S2dOw/的 EXEC 强>
https://script.google.com/macros/s/AKfycbxzpvZ9e9_vzs3d6Q0ky_RHLoYDruCl-6Xm8D6YmI4/的 dev的强>
您可以注意到差异,不确定这是否是您指向的