使用PayPal IPN发送额外数据

时间:2014-04-20 06:44:10

标签: php paypal paypal-ipn payment

我需要PayPal的IPN来识别额外的数据,所以我所做的是在按钮上方添加2个文本框(在PayPal Button创建者中),我有:

Form

但每当我尝试将数据转换为可用的形式时,如

    $udid = $_POST['os0'];
    $uid  = $_POST['os1'];

它只返回0

Results

即使在尝试on0& on1而不是os0& os1但没有变化。 如果有人支付,我该怎么做才能正确传递POST变量。

1 个答案:

答案 0 :(得分:0)

您无法将额外的变量传递给PayPal IPN。您必须将两者合并到custom字段中。将您的paypal自定义字段发送到数据,就像在自定义字段中一样,使用分隔符来分割数据。

注意:在执行此操作时,您首先必须将当前表单发送到该文件中的某个“parser.php”,您将阅读udiduid,将它们合并到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()函数),然后用它做你想做的事。