PayPal IPN 变量问题

Posted

技术标签:

【中文标题】PayPal IPN 变量问题【英文标题】:PayPal IPN Variable Issue 【发布时间】:2012-01-26 22:23:31 【问题描述】:

PayPal IPN 是一个很棒的工具,它对我来说运行良好 - 嗯,它运行良好,让我们暂时搁置它)。现在,我想收集很多关于我的客户的信息——内置 PayPal IPN 变量不支持的信息。我知道 PayPal 允许我在自定义按钮和两个文本字段中添加两个文本字段,并且我看到有一个“自定义”字段实际上运行良好,但不幸的是,三个字段不会删除它。

我需要大约 5 到 10 个文本字段,用户可以在其中输入“自定义”信息,并且我需要以某种方式将其与 IPN 响应一起发送回我的服务器。正如我所说,自定义字段对我来说效果很好,但我需要一些方法将每个文本字段的值附加到自定义变量中,然后再将其发送到 PayPal 的方向。有没有办法在表单发出之前将多个文本字段的值附加到表单中隐藏字段的值?

这是我可能正在使用的示例 html 表单:

<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
<input type="hidden" name="cmd" value="_s-xclick"/>
<input type="hidden" name="hosted_button_id" value="lkLKS3l2m"/>
<input type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_donateCC_LG.gif" border="0" name="submit" >

<input type="text" value="Hardware ID" name="option_selection1"/>
<input type="text" value="Username" name="option_selection2"/>
<input type="password" value="Password" name="option_selection3"/>
<input type="text" value="notes1" name="option_selection4"/>
<input type="text" value="Notes2" name="option_selection5"/>
<input type="text" value="TEST1" name="option_selection7"/>
<input type="hidden" value= ( all of the text fields combined, separated by delimiter). name ="custom" />

</Form

那么,这里有人可以解决我的小问题吗?

【问题讨论】:

我认为您不能使用托管按钮来做到这一点。 那么最好的方法是什么? 使用非托管按钮,包含表单中的所有参数。 (并注意安全问题)另外,不要在网络表单中发送密码。 我的意思是不要发送密码返回——不要向浏览器发送包含隐藏字段中的纯文本密码的页面。 当然可以。使用 javascript/jQuery 组合表单提交时的文本字段值,然后更新隐藏的自定义字段。 【参考方案1】:

您可以使用 JavaScript 将每个元素的数据添加到数组中,然后将其序列化到“自定义”隐藏字段中,然后再发送到 PayPal。

【讨论】:

是的,这就是我最终要做的。那么这里是你的观点。【参考方案2】:

作为一项未记录的功能,PayPal 允许您添加两个以上的文本字段。按钮生成器创建一个表单,其中包含嵌套在表格单元格中的文本字段,如下所示:

<input type="hidden" name="on1" value="Child's name">Child's name</td></tr>
<tr><td><input type="text" name="os1" maxlength="200">

您可以添加更多用于增加元素名称对的内容,即 on2、on3、on4 和 os2、os3、os4 等。复选框或文本区域等其他字段也是可能的,参见 paypal.com/cgi-bin/webscr

但是没有提到,所有的 maxlength 都限制为 200。增加表单中的 maxlength 值没有帮助,传输的值会在 200 处被截断。

【讨论】:

这应该是首选答案,因为它是纯 HTML,不需要 javascript。只需记住 HTML 变量 on0os0 等由 PDT/IPN 返回为 option_name1option_selection1 等。 (开发团队中的左手 - 右手!)此外,普通按钮最多可以有 7 个。

以上是关于PayPal IPN 变量问题的主要内容,如果未能解决你的问题,请参考以下文章

PayPal IPN 变量问题

PayPal 按钮通过 IPN 发送自定义变量

Paypal IPN 未检索变量

如何传递 Paypal ipn 自定义和发票变量?

在 Paypal IPN 交易期间存储会话变量的机制

与paypal IPN(PHP)相关的问题