FORM.payment_date是Coldfusion中的保留名称错误,导致PayPal IPN在CF9中验证无效
在ColdFusion服务器/开发环境上运行以下实验: 1)使用post方法创建以下提交给自身的基本HTML表单:FORM.payment_date是Coldfusion中的保留名称错误,导致PayPal IPN在CF9中验证无效,paypal,coldfusion,paypal-ipn,coldfusion-9,Paypal,Coldfusion,Paypal Ipn,Coldfusion 9,在ColdFusion服务器/开发环境上运行以下实验: 1)使用post方法创建以下提交给自身的基本HTML表单: <form method="post"> DATE: <input type="text" name="date" value="gfsgfdgfsd"><br> MARTIN: <input type="text" name="martin" value="beardy"><br> PAYMENT
<form method="post">
DATE: <input type="text" name="date" value="gfsgfdgfsd"><br>
MARTIN: <input type="text" name="martin" value="beardy"><br>
PAYMENT: <input type="text" name="payment" value="50 POUNDS"><br>
PAYMENT_DATE: <input type="text" name="payment_date" value="06:05:13 Apr 09, 2014 PDT"><br>
XEVI: <input type="text" name="xevi" value="cool"><br>
<input type="submit" value="submit"><br>
</form>
<cfdump var="#FORM#" />
日期:
马丁:
付款:
付款日期:
XEVI:
现在进入页面并点击Submit
按钮。请注意,您会发现错误表单条目不完整或无效
。现在从付款
字段的末尾删除“磅”,使该值仅包含数值。重新提交表单,注意错误会消失
2)现在研究表单结构的CF转储。请注意字段名
元素下的逗号分隔列表中如何缺少付款日期
!显然,它的存在是因为它在转储中作为倒数第二个元素可见。那么为什么它没有被列出呢
注意:这个奇怪的错误浪费了我4个小时的时间,试图集成PayPal IPN(即时支付通知)通知验证/验证阶段,该阶段要求您将所有内容以提交给您时的相同顺序发布回PayPal服务器。由于付款\u日期
丢失,因此返回为无效。我用一个肮脏的黑客程序修复了它,该程序查找mc\u gross
,同时在字段名上循环并手动插入payment\u date
。呃,我觉得不干净
实验1证明FORM.PAYMENT
是一个必须为数字的保留值
实验2证明了FORM.PAYMENT\u DATE
是一个保留值,在填充FORM.FIELDNAMES
时会被忽略
为什么?在ColdFusion的表单作用域中,任何以_date结尾的内容都将根据保留以进行验证
我无法复制您在“付款”为整数时遇到的问题。一旦我将payment_date字段更改为paymentdate,它就可以提交了。有关详细信息,请参阅。+1向您发送,因为我正在键入类似的答案,但您比我快。我打算添加其他文档参考-{edit}哈!现在我看到@Leigh在评论中也击败了我。我今天一定很慢…您可以在Application.cfc文件中禁用此功能:this.serverSideFormValidation=“false”;太神了谢谢大家的帮助。哦,还有@RaymondCamden,两个月后我们将在SOTR14见面!:-)