我有2个表格(年龄,兴趣)给客户。在客户填写2个表单并单击Paypal立即购买按钮后,我想通过Paypal IPN传递该信息并获取它们。这是我的代码
<form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post">
<fieldset>
Age
<input type="text" name="custom" value="" />
<br />
Interest
<input type="text" name="custom" value="" />
<br />
<input type="hidden" name="cmd" value="_xclick" />
<input type="hidden" name="business" value="LLM3N8YXZNXJU" />
<input type="hidden" name="item_name" value="abc" />
<input type="hidden" name="item_number" value="P1" />
<input type="hidden" name="notify_url" value="http://24151198.ngrok.com/paypal_ipn.php" />
<input type="hidden" name="button_subtype" value="services" />
<input type="hidden" name="rm" value="1" />
<input type="hidden" name="bn" value="abcd-BuyNowBF:btn_paynowCC_LG.gif:NonHostedGuest" />
<input style="position:relative; left:-10px; background:#ffffff; border:0;" type="image" src="https://www.paypalobjects.com/en_US/i/btn/btn_buynowCC_LG.gif" name="submit" alt="PayPal . The safer, easier way to pay online." />
<img alt="" style="border:0;" src="https://www.paypalobjects.com/en_US/i/scr/pixel.gif" width="1" height="1" />
</fieldset>
</form>
我使用日志记录IPN消息。如果我使用1&#34; custom&#34;表单,我可以获得自定义信息。但如果我使用2&#34; custom&#34;表格,我只获得最后的自定义信息。如何获取所有自定义表单信息?感谢
答案 0 :(得分:0)
实际上,您在一个表单中有两个字段 。 :)
表单输入使用name
来传递信息,因此当您包含第二个<input name="custom"...>
时,您实际上是在告诉它“自定义=此值。没有等待,抱歉,Custom =那个值。忽略我先告诉你的。“
由于PayPal只接受一个custom
变量,因此您需要:
但是,你可能决定要将你的年龄段重命名为item_number
- 这对我来说似乎有些狡猾,但它可能让你在你的情况下吱吱作响。
有关IPN的更多信息,请参阅PayPal's Development Docs。
答案 1 :(得分:0)
您可以在提交实际执行之前更改表单字段,研究此概念证明。将两个或多个单独的字段连接到隐藏的自定义字段值。第二个示例修改可见的自定义字段。哪个更适合Paypal表格处理程序。
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<script>
function beforeSubmit1(sender) {
sender.custom.value = sender.field1.value+"|"+sender.field2.value;
}
function beforeSubmit2(sender) {
var c1 = document.getElementById("custom1");
var c2 = document.getElementById("custom2");
c1.value = c1.value+"|"+c2.value;
c2.value = "";
}
</script>
</head>
<body>
<FORM id="frm1" action="http://server.com/doit.php" method="post" onsubmit="beforeSubmit1(this)">
<input id="custom" name="custom" type="hidden" value=""/>
<input id="field1" name="field1" type="text" value="Value 1"/>
<input id="field2" name="field2" type="text" value="Value 2"/>
<input type="submit" name="submit" />
</FORM>
<FORM id="frm2" action=http://server.com/doit.php" method="post" onsubmit="beforeSubmit2(this)">
<input id="custom1" name="custom" type="text" value="Value 1"/>
<input id="custom2" name="custom" type="text" value="Value 2"/>
<input type="submit" name="submit" />
</FORM>
</body>
</html>