如何将webhook数据获取到查询字符串中,以便由自定义php脚本读取



我在php中有一个自定义脚本,用于从第三方CMS(特别是FLG360)接收webhook,在源中搜索与查询字符串中给定字段名称匹配的记录(使用$_GET),并返回/显示结果。

当手动转到完整的URL(包括查询字符串)时,脚本会读取查询字符串,并执行正确的操作。

然而,当从CMS发送webhook时,它似乎无法找到或读取查询字符串。

以下是我希望通过简单的$_GET请求阅读和操作webhook的脚本部分:

$IDtoSearch = $_GET['company'];
$status = $_GET['status'];

通过php从webhook中提取数据是否像执行一些$_GET请求一样简单?我已经从CMS支持团队确认,webhook的格式肯定是一个查询字符串。

我已经将其添加到脚本中,以便将任何现有的查询字符串记录到服务器的错误日志中:

//capture the webhook and save to error log
$webhookContent = "";
$webhook = fopen('php://input' , 'rb');
while (!feof($webhook)) {
$webhookContent .= fread($webhook, 4096);
}
fclose($webhook);
error_log($webhookContent);

它正在做它的工作。以下是我从CMS启动webhook后在日志中发现的内容:

eventtype=工作流&事件日期时间=2016-07-29+15%3A16%3A06&eventuserid=&eventusername=&id=109355632&subid=&ipad地址=217.33.80.130&收到=2016-06-17+15%3A50%3A37&引线组ID=49625&leadgroupname=zzALEX+TEST+申请人+收藏&引线类型=FIDOR+申请人&status=预+默认+申请人+%2336731&progress=已接受&siteid=16515&sitename=FIDOR+申请人&userid=32197&username=Aimee+Davies&buyerid=&buyername=&buyerreference=&介绍人d=4637&介绍人姓名=亚历克斯+测试+案例&reference=&source=FIDOR&介质=&term=&成本=0.00&值=0.00&transferdatetime=0000-00-00+00%3A00%3A00&transfersuccessfull=否&xmldatetime=0000-00-00+00%3A00%3A00&xmlfails=0&xmlresult=&xmlreference=&约会日期时间=&任命说明=&lastnotedatetime=0000-00-00+00%3A00%3A00&lastnote=&taskexists=否&workflowexists=是&dropbox=l109355632.d675cdbf4f75f7d9c6ee99a6b7034b7c%40msrvr.net&fullname=先生+Alex+Connor&title=先生&firstname=亚历克斯&姓氏=Connor&company=TFS9876543&jobtitle=&phone1=&phone2=&传真=&电子邮件=&地址=&address2=&address3=&城市=&邮政编码=&dob=&dobday=&dobmonth=&dobbear=&contacttime=&contactphone=未知&contactfax=未知&contactemail=未知&contactmail=未知&data1=&data2=&data3=&data4=&data5=&data6=&data7=&data8=&data9=&data10=&data11=&data12=&data13=&data14=&data15=&data16=&data17=&data18=&data19=&data20=&data21=&data22=&data23=&data24=&data25=&data26=&data27=&data28=&data29=&data30=&data31=&data32=&data33=&data34=&data35=&data36=&data37=&data38=&data39=&data40=&data41=&data42=&data43=&data44=&data45=&data46=&data47=&data48=&data49=&data50=&type1=工作+电话+号码&type2=TFS+数字&type3=活期+贷款+余额&type4=合同+月+付款+金额&type5=上次+付款+日期+收到&type6=上次+金额+收到&type7=下一个+计划+付款+日期&type8=当前+欠款+数字+包含+合法%2FCharges&type9=活期+付款+方式&type10=担保人+is+已故&type11=担保人+已+输入+DMP%2FBKO%2FIA+&type12=备用&type13=实际+收据+至+日期&type14=申请人+公寓+数字&type15=申请人+房屋+姓名&type16=申请人+房子+号码&type17=担保人+关系+to+main+申请人&type18=担保人+名字+姓名&type19=担保人+姓氏+姓名&type20=Joint+App+First+Name&type21=联合+应用程序+姓氏+姓名&type22=申请人+已经+输入+DMP%2FBKO%2FIVA&type23=当前+维也纳+状态&type24=律师&type25=法律+状态&type26=数字+of+Months+in+Arrears&type27=承诺+收件人+付款+日期+%28dd%2Fmm%2Fyyyy%29&type28=承诺+付款+金额&type29=贷款+期末+付款+日期+%28dd%2Fmm%2Fyyyy%29&type30=协议+已签署+日期+%28FOR+默认%29+-+dd%2Fmm%2Fyyyy&type31=默认+到期+日期+%28dd%2Fmm%2Fyyyy%29&type32=少+回扣+利息+%28金额+来自+结算+信函%29&type33=总额+要求+至+偿还+贷款+%28金额+来自+结算+信函%29&type34=默认值+ISSUED+日期+%28dd%2Fmm%2Fyyyy%29&type35=排列+金额&type36=排列+开始+日期+%28dd%2Fmm%2Fyyyy%29&type37=排列+类型&type38=排列+术语&type39=安排+每月+短缺&type40=备用&type41=备用&type42=备用&type43=备用&type44=备用&type45=DMP%2IVA+报价+of+还款&type46=原因+原因+欠款&type47=OFS+字母+3+日期+%28dd%2Fmm%2Fyyyy%29&type48=IBC+参考&type49=限制+或+收费+订单&type50=重要事项+注意事项

CMS记录中的所有信息似乎都进来了,只是没有被我的脚本读取或识别为查询字符串。

以下是我在URL上手动输入查询字符串时得到的结果:

, referer: https://www.domain.com/flg/index.php/?company=cream&status=cheese

不知道",referer:"部分是什么意思,也不知道为什么这个错误是用完整的URL记录的,而不是上面的。

希望有人能帮上忙,我快累坏了。

如果您需要任何其他信息,请告诉我。

非常感谢。

U可以在$webhookContent 上使用parse_str()

这要归功于@Aleksej的评论——这就像将GET更改为POST一样简单。问题解决了,脚本现在正在完成它的工作。

最新更新