我正在开发一个网站,用户可以使用paypal购买功能。如果用户的paypal电子邮件与我们网站上存储的电子邮件不同,我如何通过IPN获得有关用户付款的通知?
答案 0 :(得分:1)
您使用C#标记了您的问题,因此我假设您正在开发一个ASP.NET网站。在没有更具体的信息的情况下,我将假设您正在为您的站点使用默认的SqlMembershipProvider。
因此,为了识别您的用户,您应该使用MembershipUser对象的ProviderUserKey属性。使用以下代码获取当前登录用户的ProviderUserKey:
MembershipUser currentUser = Membership.GetUser();
string userId = currentUser.ProviderUserKey.ToString();
一旦你有一个包含ProviderUserKey的String,你可以使用表单中的自定义HTML变量将其传递给PayPal:
<input type="hidden" name="custom" value="<%=userId%>"/>
当PayPal发送IPN消息时,它将发回您为自定义HTML变量设置的值。您可以从Response.Form获取值并获取相应的用户:
object userId = Request.Form["custom"];
MembershipUser user = Membership.GetUser(userId);
希望这有帮助!
答案 1 :(得分:0)
您需要使用用户的电子邮件(他/她用于您网站的电子邮件)作为标识符。
当用户向您付款时,您的网站需要将此电子邮件作为“自定义”字段发送到Paypal,Paypal会将其发回给您,以及其他IPN通知参数。