【问题标题】:Sending Extra Data With PayPal IPN使用 PayPal IPN 发送额外数据
【发布时间】:2014-06-04 10:47:08
【问题描述】:

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

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

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

它只是返回0

即使在尝试on0 和on1 而不是os0 和os1 之后,但没有任何变化。 仅当此人已付款时,我才能正确传递 POST 变量。

【问题讨论】:

    标签: php paypal paypal-ipn payment


    【解决方案1】:

    您不能将额外变量传递给 PayPal IPN。您必须将两者合并到 custom 字段中。按照您的意愿将您的贝宝自定义字段发送到数据,在该自定义字段中,使用分隔符拆分您的数据。

    注意:在执行此操作时,您首先必须将当前表单发送到该文件中的某个“parser.php”,您将读取udid 和uid,将它们合并到custom 并将数据发送到PayPal

    在下面的示例中,值使用“|”分割,您可以使用您希望在字符集中可用的任何字符。

    $udid = $_POST['udid'];
    $uid = $_POST['uid'];
    <input type="hidden" name="custom" value="<?php echo $udid.'|'.$uid ?>"/>
    

    这将输出:

    <input type="hidden" name="custom" value="1|2"/>
    

    当您从贝宝(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];
    

    所以基本上,我们向贝宝发送一个带有自定义分隔符的字符串,贝宝将在 IPN 响应中将其返回给我们。然后我们需要拆分它(使用explode() 函数),然后用它做你想做的事情。

    【讨论】:

    • 我对用户如何输入两组数据感到困惑。
    • 例如,您当前的文件名是pay.php。提交pay.php时,用户将在pay.php中输入您需要的数据,然后将其提交给parser.php。读取parser.php中的用户数据,合并到custom字段并发送到paypal。有意义吗?
    • 一点也不,看起来效率低下而且不安全。我确信有一种方法可以将多组数据发送到 PayPal IPN 考虑到它就在这里:CLICK ME 编辑:我实际上已经设法找到我需要的信息显示在 PayPal 中:Image
    • 那你的IPN验证页面有问题。你能写下你的IPN验证码吗?
    • 您能否在// PAYMENT VERIFIED AND VALIDATED 之后的验证码中echo $_POST; 并将输出结果写给我们
    猜你喜欢
    • 2012-02-26
    • 1970-01-01
    • 1970-01-01
    • 2016-12-09
    • 1970-01-01
    • 2016-06-10
    • 2011-08-09
    • 2014-07-10
    • 2016-05-27
    相关资源
    最近更新 更多