Paypal支付按钮和IPN:如何唯一地链接用户?

Paypal支付按钮和IPN:如何唯一地链接用户?,paypal,Paypal,奇怪的是,贝宝网站上的文档并没有很好地涵盖这一点 我们有一个付款按钮,重定向到贝宝处理付款 我们也有一个IPN服务器运行,一旦paypal付款,它就会捕获付款 但是,我们可以将系统用户的“用户id”放在paypal按钮的何处,以便将其转发到IPN请求,以便将用户匹配到他们已支付的系统上。Paypal似乎希望人们手动完成这项工作,这是一项真正的任务。我目前正在进行Paypal集成,我同意他们的文档乱七八糟 我终于在某个地方找到了一个指南,详细说明了PayPal按钮表单的哪些变量被转发到IPN回调。

奇怪的是,贝宝网站上的文档并没有很好地涵盖这一点

我们有一个付款按钮,重定向到贝宝处理付款

我们也有一个IPN服务器运行,一旦paypal付款,它就会捕获付款


但是,我们可以将系统用户的“用户id”放在paypal按钮的何处,以便将其转发到IPN请求,以便将用户匹配到他们已支付的系统上。Paypal似乎希望人们手动完成这项工作,这是一项真正的任务。

我目前正在进行Paypal集成,我同意他们的文档乱七八糟

我终于在某个地方找到了一个指南,详细说明了PayPal按钮表单的哪些变量被转发到IPN回调。您可以使用变量
item\u name
转发用户id:

<input type="hidden" name="item_name" value="{user id}">

您应该使用:

<input type="hidden" name="item_number" value="{user id}">

以下是文件:

如文件()

以您的形式:

<input type="hidden" name="custom" value="<?php echo $id ?>">

对于任何试图让Paypal SmartButtons实现此功能的人,您应该执行以下操作:

return actions.order.create({
  purchase_units: [{
       invoice_id: 'your_custom_stuff1',
       custom_id: 'your_custom_stuff2',
       amount: {
         value: '100'
       }
  }]
});
IPN将其作为POST数据发送,例如在PHP中:

$_POST['invoice']; // 'your_custom_stuff1'
$_POST['custom']; // 'your_custom_stuff2'
$_POST['invoice']; // 'your_custom_stuff1'
$_POST['custom']; // 'your_custom_stuff2'