2011-09-22 6 views
0

사용자가 페이팔을 사용하여 기능을 구입할 수있는 사이트를 개발 중입니다. 사용자의 페이팔 이메일이 본 사이트에 저장된 이메일과 다른 경우 어떻게 IPN을 통해 사용자의 결제에 대한 알림을받을 수 있습니까?Paypal IPN 문제

+0

페이팔에 일종의 주문 ID를 전달하지 않으시겠습니까? 이것이 주문을 식별하는 방법입니다. 분명히 전자 메일 주소를 하나의 식별자로 사용하면 둘 이상의 주문을했는데 어느 것이 참조하는지 알 수 없습니다. – Bex

답변

1

당신은 C#으로 질문 태그를 추가 했으므로, 나는 당신이 ASP.NET 사이트를 개발하고 있다고 가정하고 있습니다. 더 구체적인 정보가 없으면 사이트에 기본 SqlMembershipProvider를 사용하고 있다고 가정합니다.

따라서 사용자를 식별하려면 MembershipUser 개체의 ProviderUserKey 속성을 사용해야합니다. 당신의 현재 로그인 한 사용자의 ProviderUserKey를 얻기 위해 다음 코드를 사용하여 당신이 ProviderUserKey를 포함하는 문자열이 있으면

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

, 당신은 당신의 형태로 사용자 정의 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 알림 매개 변수 중에서 귀하에게 다시 발송합니다.