Paypal IPN问题

时间:2011-09-22 06:26:27

标签: c# asp.net paypal-ipn

我正在开发一个网站,用户可以使用paypal购买功能。如果用户的paypal电子邮件与我们网站上存储的电子邮件不同,我如何通过IPN获得有关用户付款的通知?

2 个答案:

答案 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通知参数。