我正在从this教程和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>
按照指南,我正确收到文件ipn.php
的POST请求。我收到了很多有关付款的有用数据,但我的问题是:如何知道哪位用户付款?
“用户”是指在我的网站上注册的人,向我提供个人信息和他/她的电子邮件地址。如何将这些信息连接到我从PayPal收到的POST请求?用于在我的网站上注册的电子邮件可能与PayPal中使用的电子邮件不同。
我可以想到2个解决方案:
a)在返回网址中放置一个唯一的用户ID,用$ _GET解析它然后......这很难解决问题。
b)交易开始后立即获取付款ID。但我不知道如何做到这一点。
如您所见,我的问题是将用户与交易ID相关联。工作流程是:
HTML Form -> Paypal website -> ipn.php
HTML表格有用户信息,而ipn.php收到交易信息:我需要用户信息进入ipn.php 以检查总数是否已正确支付并执行用户帐户。我怎么能这样做?
非常感谢。
答案 0 :(得分:1)
您还可以在“自定义”字段中传递用户ID。这可以是你想要的任何东西,最多255个字符。这会传递给Paypal,也会在IPN响应中发送。当我存储IPN数据时,我使用此字段来区分我的各种数据库。
希望这有帮助。
答案 1 :(得分:0)
<input type="hidden" name="item_number" value="UNIQUE_USER_ID">
item_number
允许来回传递任意数值。我可以用它来识别付款用户。 $_POST['item_number']
将允许在ipn.php
文件中看到此值。