如何通过PayPal IPN发送多个变量

时间:2017-05-31 04:21:14

标签: php paypal paypal-ipn

这是客户的流程:

访问网站 - >用他们的信息填写表格 - >点击"立即购买"和PayPal结账 - >返回网站 - >使用从Checkout发送的信息通过PHP在服务器上运行ajax脚本(假设结帐成功)。嗯,反正这是计划。我遇到的问题是弄清楚如何实际传递变量(总共有8个...数组???。我目前在网站上有一个快速结账按钮,它将用户重定向到PayPal以完成交易。我一直在YouTube上搜索一个很好的教程,或者在SO上搜索,但是没有成功。有什么想法我可以做到这一点吗?

由于

2 个答案:

答案 0 :(得分:1)

在您的PayPal表单中,只需使用以下内容作为您的自定义字段..

示例:

<input type="hidden" name="custom" value="<?php echo $custom1.','.$custom2.','.$custom3; ?>">

<input type="hidden" name="custom" value="custom1,custom2,custom3">

简而言之,PayPal接受自定义名称,您可以使用逗号分隔变量。

PayPal会在IPN中将自定义字段传回给您。

<小时/>

修改

以下是您可以使用自定义执行操作的示例:

  $custom = $_POST['custom'];
  $pattern = ",";
  $pieces = explode($pattern,$custom, 3);
  // 3 is how many custom fields there are
  $custom1 = $pieces[0];
  $custom2 = $pieces[1];
  if (isset($pieces[2])) {
      //an example checking to see if there is a third custom variable
      $custom3 = $pieces[2];
  }

答案 1 :(得分:0)

您可以使用json通过PayPal中的custom变量传递多个值。

创建您的价值观:

$custom = array();
$custom['value1'] = "foo";
$custom['value2'] = "bar";
$custom =  json_encode($custom);

然后您可以POST将该数据存储到某个位置:

<input type="hidden" name="custom" value="<?php echo htmlentities($custom) ?>"/>

然后从这样的地方获取数据:

$data = json_decode($_POST['custom']);
echo $data->value2;

输出应为bar