Paypal 支付按钮和 IPN:如何唯一地链接用户?
Posted
技术标签:
【中文标题】Paypal 支付按钮和 IPN:如何唯一地链接用户?【英文标题】:Paypal payment buttons and IPN: how to link users up uniquely? 【发布时间】:2011-05-16 03:47:18 【问题描述】:奇怪的是,Paypal 网站上的文档并没有很好地涵盖这一点。
我们有一个付款按钮,可重定向到 Paypal 以处理付款。
我们还有一个 IPN 服务器正在运行,它会在支付完成后捕获 paypal 付款。
但是,我们可以在哪里将我们系统用户的“用户 ID”放在 paypal 按钮中,以便将其转发到 IPN 请求,以便在我们的系统上匹配他们已付款的用户。 Paypal 似乎希望人们手动执行此操作,这是一项真正的使命。
【问题讨论】:
【参考方案1】:我目前正在做一些 PayPal 集成,我同意他们的文档是一团糟!
我终于在某处找到了一份指南,其中详细说明了 PayPal 按钮表单的哪些变量被转发到 IPN 回调。您可以使用变量item_name
来转发用户ID:
<input type="hidden" name="item_name" value="user id">
【讨论】:
【参考方案2】:你应该使用:
<input type="hidden" name="item_number" value="user id">
这里是文档:
https://www.paypalobjects.com/IntegrationCenter/ic_std-variable-ref-buy-now.html
【讨论】:
【参考方案3】:如文档中所述 (https://developer.paypal.com/docs/classic/ipn/integration-guide/IPNandPDTVariables/)
在你的表格中:
<input type="hidden" name="custom" value="<?php echo $id ?>">
并通过 ipn 获取它:
$_POST['custom']
【讨论】:
【参考方案4】:对于任何试图让它为 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'
【讨论】:
以上是关于Paypal 支付按钮和 IPN:如何唯一地链接用户?的主要内容,如果未能解决你的问题,请参考以下文章
Paypal 自适应支付 IPN 回调:如何返回完整未更改的 ipn 消息