我需要PayPal的IPN来识别额外的数据,所以我所做的是在按钮上方添加2个文本框(在PayPal Button创建者中),我有:
但每当我尝试将数据转换为可用的形式时,如
$udid = $_POST['os0'];
$uid = $_POST['os1'];
它只返回0
即使在尝试on0
& on1
而不是os0
& os1
但没有变化。
如果有人支付,我该怎么做才能正确传递POST变量。
答案 0 :(得分:0)
您无法将额外的变量传递给PayPal IPN。您必须将两者合并到custom
字段中。将您的paypal自定义字段发送到数据,就像在自定义字段中一样,使用分隔符来分割数据。
注意:在执行此操作时,您首先必须将当前表单发送到该文件中的某个“parser.php”,您将阅读udid
和uid
,将它们合并到custom
并将数据发送到PayPal
在下面的示例中,使用“|”拆分值,您可以使用charset中可用的任何字符。
$udid = $_POST['udid'];
$uid = $_POST['uid'];
<input type="hidden" name="custom" value="<?php echo $udid.'|'.$uid ?>"/>
这将输出:
<input type="hidden" name="custom" value="1|2"/>
当您从paypal(IPN响应)流程获取信息时,它就像这样:
$ids = explode('|', $_POST['custom']); // Split up our string by '|'
// Now $ids is an array containing your 2 values in the order you put them.
$udid = $ids[0];
$uid = $ids[1];
基本上,我们发送一个字符串,其中包含我们选择paypal的自定义分隔符,paypal将在IPN响应中将其返回给我们。然后我们需要将其拆分(使用explode()函数),然后用它做你想做的事。