2011-09-22 102 views
0

我正在開發一個網站,用戶可以使用paypal購買功能。如果用戶的PayPal電子郵件與我們網站中存儲的電子郵件不同,我如何通過IPN得到有關用戶付款的通知?Paypal IPN問題

+0

您是否不將某種訂單ID傳遞給paypal,這是您如何識別訂單的方式?當然,如果你使用電子郵件地址作爲唯一的標識符,如果他們已經放置了多個訂單,你將不知道它指的是哪一個? – Bex

回答

1

你用C#標記了你的問題,所以我假設你正在開發一個ASP.NET站點。在沒有更具體的信息的情況下,我會假設您正在爲您的網站使用默認的SqlMembershipProvider。

因此,要識別您的用戶,您應該使用MembershipUser對象的ProviderUserKey屬性。使用下面的代碼來獲取ProviderUserKey您當前登錄的用戶:

MembershipUser currentUser = Membership.GetUser(); 
string userId = currentUser.ProviderUserKey.ToString(); 

一旦你有一個包含ProviderUserKey一個字符串,則可以使用自定義HTML變量的形式傳遞給貝寶:

<input type="hidden" name="custom" value="<%=userId%>"/> 

當PayPal發送IPN消息時,它將發回您爲自定義HTML變量設置的值。你可以從Response.Form得到這個值,並得到相應的用戶:

object userId = Request.Form["custom"]; 
MembershipUser user = Membership.GetUser(userId); 

希望這有助於!

0

您需要使用用戶的電子郵件(他/她用於您的網站的電子郵件)作爲標識符。

當用戶付款給您時,您的網站需要將此電子郵件作爲「自定義」字段發送到PayPal,並且PayPal會將其發回給您以及其他IPN通知參數。