ASP.NET整合PayPal(使用IPN)
阿新 • • 發佈:2019-01-27
IPN:即時付款通知(Instant Payment Notify 簡稱IPN)
PayPal設定說明:
1、註冊測試帳號;
2、對於“商家”賬戶的設定;
設定完畢後,以下是程式碼部分
首先:提交請求頁面(各個引數請根據需要修改)
<form id="myForm" action="http://www.sandbox.paypal.com/cgi-bin/webscr" method="post"> <!--<form id="myForm" action="http://www.paypal.com/cgi-bin/webscr" method="post">--><!--實際環境使用這個--> <input type="hidden" name="cmd" value="_xclick" /><br /> <input type="hidden" name="business" value="這裡填你的PayPal賣家帳號" /><br /> 商品名稱: <input type="text" name="item_name"/><br /> 商品編號: <input type="text" name="item_number" value="123" /><br /> <!--使用貝寶 <input type="hidden" name="currency_code" value="CNY" />--> <!--使用國際paypal--> <!----> <input type="hidden" name="currency" value="USD" /> <br /> <input type="hidden" name="custom" value="qml" /><br /> <input type="Hidden" name="notify_url" value="付款後返回地址" /> <input type="hidden" name="return" value="付款後返回地址" /><br /> <input type="hidden" name="charset" value="gb2312" /> <br /> 金額: <input type="text" name="amount"/> <br /> <input type="submit" value="確定"/> </form>
以上點選確定後就跳轉到PayPal付款,
以下是付款後自動返回頁面
protected void Page_Load(object sender, EventArgs e) { //成功後返回的頁面 string strFormValues; string strResponse; string authToken; string txToken; string query; //定義您的身份標記,這裡改成您的身份標記 authToken = "061Mcp86FHoBkKVtymBBgEgn7Oihzdm-upcgOkH6qazHESlEDMFg7vtKzWu"; //獲取PayPal 交易流水號 txToken=Request.QueryString["tx"]; // Set the 'Method' property of the 'Webrequest' to 'POST'. HttpWebRequest myHttpWebRequest = (HttpWebRequest)WebRequest.Create("http://www.sandbox.paypal.com/cgi-bin/webscr"); //HttpWebRequest myHttpWebRequest = (HttpWebRequest)WebRequest.Create("http://www.paypal.com/cgi-bin/webscr"); myHttpWebRequest.Method = "POST"; myHttpWebRequest.ContentType = "application/x-www-form-urlencoded"; //設定請求引數 query = "cmd=_notify-synch&tx=" + txToken+ "&at=" +authToken; ASCIIEncoding encoding = new ASCIIEncoding(); byte[] byte1 = encoding.GetBytes(query); strFormValues = Encoding.ASCII.GetString(byte1); myHttpWebRequest.ContentLength = strFormValues.Length; //傳送請求 StreamWriter stOut = new StreamWriter(myHttpWebRequest.GetRequestStream(), System.Text.Encoding.ASCII); stOut.Write(strFormValues); stOut.Close(); //接受返回資訊 StreamReader stIn = new StreamReader(myHttpWebRequest.GetResponse().GetResponseStream()); strResponse = stIn.ReadToEnd(); stIn.Close(); //取前面七個字元 string isSuccess = strResponse.Substring(0, 7); Response.Write(isSuccess); //顯示返回的字串, Response.Write(strResponse); if (isSuccess == "SUCCESS") { Response.Write("RESPONSE SUCESS\n ");//此處需要判斷網站訂單是否已經處理 Response.Write("item_number:" + Request.QueryString["item_number"].ToString()+"\n"); } else { Response.Write("\n response fail"); } }
如果得不到返回字串,就需要檢查“商家”賬戶是否開通,是否已經設定資料返回
PayPal返回資訊說明請檢視