奇怪的是,Paypal网站上的文档并未涵盖这一点。
我们有一个付款按钮,可重定向到Paypal以处理付款。
我们还有一台运行的IPN服务器,一旦完成就会收到PayPal付款。
但是,我们可以在哪里将系统用户的“用户ID”放在paypal按钮中,以便将其转发到IPN请求,以便在用户支付的系统上匹配用户。 Paypal似乎希望人们手动执行此操作,这是一项真正的使命。
答案 0 :(得分:4)
我目前正在进行一些PayPal集成,我同意他们的文档很乱!
我终于找到了一个指南,详细说明了PayPal按钮表单的哪些变量被转发到IPN回调。您可以使用变量item_name
转发用户ID:
<input type="hidden" name="item_name" value="{user id}">
答案 1 :(得分:3)
您应该使用:
<input type="hidden" name="item_number" value="{user id}">
以下是文档:
https://www.paypalobjects.com/IntegrationCenter/ic_std-variable-ref-buy-now.html
答案 2 :(得分:3)
如文档(https://developer.paypal.com/docs/classic/ipn/integration-guide/IPNandPDTVariables/)
所述在您的表单中:
<input type="hidden" name="custom" value="<?php echo $id ?>">
并通过ipn:
获取$_POST['custom']
答案 3 :(得分:0)
对于任何试图使此功能适用于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'