ASP.NET集成PayPal(使用IPN)

步骤:

1.按钮

2.网站习惯设定

3.即时付款通知

4.PayPal按钮语言编码

5.pay 页面修改按钮编码

6.PayPal按钮语言编码 修改 DEFAULT_IDENTITY_TOKEN



=============================================

IPN:即时付款通知(Instant Payment Notify 简称IPN)

PayPal设置说明:

1、注册测试帐号;

https://cms.paypal.com/us/cgi-bin/?cmd=_render-content&content_ID=developer/library_documentation 找到“Sandbox User Guide ”按照里面的说明注册“商家”、“买家”帐号;注册后商家帐号必须确认已经激活(需要登录后查看PayPal的邮件,并激活);

2、对于“商家”账户的设置;

0_1311169904gG6p.gif

0_1311169930q66a.gif


0_1311170353h46o.gif




0_1311170415ZP.gif

0_1311170444uff2.gif

0_1311170463MzIM.gif





设置完毕后,以下是代码部分


首先:提交�求�面(各个参数请根据需要修改)

[html] view plain copy
  1. <formid="myForm"action="<a href="http://www.sandbox.paypal.com/cgi-bin/webscr">http://www.sandbox.paypal.com/cgi-bin/webscr</a>" method="post">

  2. <!--<form id="myForm" action="<a href="http://www.sandbox.paypal.com/cgi-bin/webscr">http://www.paypal.com/cgi-bin/webscr</a>" method="post">--><!--实际环境使用这个-->

  3. <inputtype="hidden"name="cmd"value="_xclick"/><br/>

  4. <inputtype="hidden"name="business"value="这里填你的PayPal卖家帐号"/><br/>

  5. 商品名称:

  6. <inputtype="text"name="item_name"/><br/>

  7. 商品编号:

  8. <inputtype="text"name="item_number"value="123"/><br/>

  9. <!--使用贝宝

  10. <inputtype="hidden"name="currency_code"value="CNY"/>-->

  11. <!--使用国际paypal-->

  12. <!---->

  13. <inputtype="hidden"name="currency"value="USD"/>


  14. <br/>

  15. <inputtype="hidden"name="custom"value="qml"/><br/>

  16. <inputtype="Hidden"name="notify_url"value="付款后返回地址"/>

  17. <inputtype="hidden"name="return"value="付款后返回地址"/><br/>

  18. <inputtype="hidden"name="charset"value="gb2312"/>

  19. <br/>

  20. 金额:

  21. <inputtype="text"name="amount"/>

  22. <br/>

  23. <inputtype="submit"value="确定"/>

  24. </form>


以上点击确定后就跳转到PayPal付款,

以下是付款后自动返回页面

[csharp] view plain copy
  1. protectedvoid Page_Load(object sender, EventArgs e)

  2.  {

  3. //成功后返回的页面

  4. string strFormValues;

  5. string strResponse;

  6. string authToken;

  7. string txToken;

  8. string query;

  9. //定义您的身份标记,这里改成您的身份标记

  10.    authToken = "061Mcp86FHoBkKVtymBBgEgn7Oihzdm-upcgOkH6qazHESlEDMFg7vtKzWu";

  11. //获取PayPal 交易流水号

  12.    txToken=Request.QueryString["tx"];

  13. // Set the 'Method' property of the 'Webrequest' to 'POST'.

  14.    HttpWebRequest myHttpWebRequest = (HttpWebRequest)WebRequest.Create("http://www.sandbox.paypal.com/cgi-bin/webscr");

  15. //HttpWebRequest myHttpWebRequest = (HttpWebRequest)WebRequest.Create("http://www.paypal.com/cgi-bin/webscr");

  16.    myHttpWebRequest.Method = "POST";

  17.    myHttpWebRequest.ContentType = "application/x-www-form-urlencoded";

  18. //设置请求参数

  19.    query = "cmd=_notify-synch&tx=" + txToken+ "&at=" +authToken;

  20.    ASCIIEncoding encoding = new ASCIIEncoding();

  21. byte[] byte1 = encoding.GetBytes(query);

  22.    strFormValues = Encoding.ASCII.GetString(byte1);

  23.    myHttpWebRequest.ContentLength = strFormValues.Length;

  24. //发送请求

  25.    StreamWriter stOut = new StreamWriter(myHttpWebRequest.GetRequestStream(), System.Text.Encoding.ASCII);

  26.    stOut.Write(strFormValues);

  27.    stOut.Close();

  28. //接受返回信息

  29.    StreamReader stIn = new StreamReader(myHttpWebRequest.GetResponse().GetResponseStream());

  30.    strResponse = stIn.ReadToEnd();

  31.    stIn.Close();

  32. //取前面七个字符

  33. string isSuccess = strResponse.Substring(0, 7);

  34.    Response.Write(isSuccess);

  35. //显示返回的字符串,

  36.    Response.Write(strResponse);


  37. if (isSuccess == "SUCCESS")

  38.    {

  39.      Response.Write("RESPONSE SUCESS\n ");//此处需要判断网站订单是否已经处理

  40.      Response.Write("item_number:" + Request.QueryString["item_number"].ToString()+"\n");

  41.    }

  42. else

  43.    {

  44.      Response.Write("\n response fail");

  45.    }

  46.  }


如果得不到返回字符串,就需要检查“商家”账户是否开通,是否已经设置数据返回
PayPal返回信息说明请查看

https://cms.paypal.com/us/cgi-bin/?cmd=_render-content&content_ID=developer/e_howto_admin_IPNIntro


你可能感兴趣的:(asp.net,集成PayPal,使用IPN)