我正在从本教程和ipnlistener.php配置一个 PayPal IPN 侦听器。
当我需要用户付款时,我给他看这个表格
<form name="_xclick" action="https://www.sandbox.paypal.com/cgi-bin/webscr"
method="post">
<input type="hidden" name="cmd" value="_xclick">
<input type="hidden" name="business" value="<? echo $myPaypalEmail; ?>">
<input type="hidden" name="currency_code" value="USD">
<input type="hidden" name="item_name" value="Digital Download">
<input type="hidden" name="amount" value="<? echo $price; ?>">
<input type="hidden" name="return" value="THIS URL">
<input type="hidden" name="notify_url" value="myhost.com/ipn.php">
<input type="image" src="http://www.paypal.com/en_US/i/btn/btn_buynow_LG.gif"
border="0" name="submit">
</form>
按照指南,我正确收到了对文件的 POST 请求ipn.php
。我收到了很多关于付款的有用数据,但我的问题是:我怎么知道是哪个用户进行了付款?
“用户”是在我的网站上注册的人,向我提供个人信息和他/她的电子邮件地址。如何将这些信息连接到我从 PayPal 收到的 POST 请求?用于在我的网站上注册的电子邮件可能与在 PayPal 中使用的电子邮件不同。
我可以想到2个解决方案:
a) 在返回 URL 中放置一个唯一的用户 ID,用 $_GET 解析它,然后......这很难解决问题。
b) 交易开始后立即获取付款 ID。但我不知道该怎么做。
如您所见,我的问题是将用户与事务 ID 相关联。工作流程是:
HTML Form -> Paypal website -> ipn.php
HTML 表单有用户信息,而 ipn.php 接收交易信息:我需要用户信息进入 ipn.php以检查总金额是否已正确支付并在用户帐户上执行操作。我怎样才能做到这一点?
非常感谢。