哪个网址向我的Google Apps脚本发出了请求?

时间:2016-02-18 15:39:37

标签: paypal google-apps-script

如何确定发送到Google Apps脚本网络应用程序的GET或POST请求的来源网址?

我正在制作一个(PayPal IPN)监听器脚本,并希望能够区分来自测试环境(沙箱)或实时环境的天气。

对侦听器的请求的来源决定了脚本的响应。监听器必须将响应发送回PayPal,并且根据请求来自哪个环境,响应需要返回到沙箱服务器或实时服务器。

我希望在我的Google Apps脚本中区分来自sandbox.paypal.comwww.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";
   }

但是想知道这是否可以自动确定。

2 个答案:

答案 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的

您可以注意到差异,不确定这是否是您指向的