修改 IPN 侦听器以处理从PayPal传递的多个自定义变量



由于PayPal不允许多个 IPN 通知,因此我使用 IPN 广播脚本将事务信息发送到两个 IPN 侦听器脚本。 我的主要 IPN 侦听器使用数据在数据库中将交易标记为 PAID;辅助 IPN 侦听器使用数据将佣金分配给引用代理。 问题是每个 IPN 侦听器脚本都需要在自定义变量字段中使用单独的日期。

侦听器 1 需要自定义字段:

<input type="hidden" name="custom" value="' . $transaction_id .  '>

侦听器 2 所需的自定义字段:

<input type="hidden" name="custom" value="' . $_SERVER['REMOTE_ADDR']. '>

为了通过PayPal发送这两个变量,我修改了自定义变量:

<input type="hidden" name="custom" value="' . $transaction_id .  '|' . $_SERVER['REMOTE_ADDR']. '

当从PayPal接收到 IPN 信息时,我正在使用来自 CodeSeekah 的 IPN 广播脚本将响应传递给两个单独的 IPN 侦听器。

当 IPN 侦听器从PayPal接收信息时,它必须使用 PayPal 验证信息,因此这两个变量都需要包含在 IPN 侦听器脚本中。 但我的问题是,如何自定义 IPN 侦听器以从 IPN 事务中"提取"适当的数据并忽略为其他脚本传递的信息?

我同意

@EJP的评论,并建议您消除额外的 IPN 侦听器。 根据您在此处解释的内容,没有必要这样做。 您可以在单个侦听器中执行所需的所有更新。

至于您的具体问题,您可以像这样将各个值从 CUSTOM 参数中提取出来。

$custom_split = explode('|',$_POST['custom']);
$transaction_id = $custom_split[0];
$ip_address = $custom_split[1];

最新更新