2013-06-19 239 views
0

我正在配置一個來自this教程和ipnlistener.php的PayPal IPN監聽器。將用戶電子郵件與來自IPN的PayPal電子郵件相匹配

當我需要用戶付出,我告訴他這種形式

<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)將唯一的用戶ID在返回URL,以$ _GET然後......這幾乎不能解決問題解析它。

b)交易開始後立即獲取付款ID。但我不知道如何做到這一點。

正如您所看到的,我的問題是將用戶與事務ID相關聯。工作流程是:

HTML Form -> Paypal website -> ipn.php 

HTML表單有用戶信息而ipn.php接收交易信息:我需要的用戶信息進入ipn.php,以檢查是否全部已經被正確支付,並在用戶帳戶上執行任務。我怎樣才能做到這一點?

非常感謝。

回答

1

您也可以在「自定義」字段中傳遞用戶標識。這可以是字面上任何你想要的,最多255個字符。這會傳遞給PayPal,並在IPN響應中發送。當我存儲IPN數據時,我使用這個字段來區分我的各種數據庫。

希望這會有所幫助。

+0

+1,這也是一個很好的信息。謝謝! – Saturnix

0
​​

item_number允許來回傳遞任意數值。我可以使用這個從付款中識別用戶。 $_POST['item_number']將允許在ipn.php文件中看到此值。

相關問題