如何在服务器端发送 ipn 变量?

How to send ipn variables server-side?

我有一个付款按钮,它使用自定义变量在我的数据库中识别当 ipn 消息出现时谁买了什么。我的自定义字段如下所示:

<input type="hidden" name="custom" value="userName">

我的问题是任何人都可以将此值更改为他们想要的任何值,从而允许人们为其他用户购买东西。是否有任何可能的方法将此自定义值从 php 发送到 paypal,以便用户无法将值更改为其他值?

您可以使用 Express Checkout APIs 而不是标准付款按钮。

您将调用 SetExpressCheckout 以启动流程并获取令牌,然后将用户重定向到 PayPal。

当它们从 PayPal 退回后,您可以致电 GetExpressCheckoutDetails to obtain the buyer information as returned by PayPal, and then you call DoExpressCheckoutPayment 来完成订单并实际转移款项。

您可以像现在一样在最终的 DECP 请求中包含 CUSTOM 参数,但它当然会全部隐藏在 PHP 代码中。人们在 HTML 中看不到任何东西。

PayPal PHP SDK 将使那些 API 呼叫对您来说非常快速和容易。