IPN Listner进行贝宝付款 [英] IPN Listner for paypal payment
问题描述
大家好!
我有一个有关paypal ipn处理程序的查询.
据说我做过这样的事情,使用户在Paypal启用notify_url的页面上自动获得ipn数据错误. aspx页面将在服务器上.
我已经在IIS上配置了我的网站,但是我没有获取必须插入数据库的IPN数据.我没有从网站发送任何请求.从网站进行支付时,我需要从Paypal重定向到我的aspx Web表单.
以下是代码
-----------------------------------
Hi everyone!
I have a query regarding to paypal ipn handler.
I was said to make such a stuff that user get automatically ipn data deleviry on notify_url enabled page from paypal. The aspx page will be on server.
I have configured my website on IIS, But I am not getting IPN data which I have to insert into database. I am not sending any request from website. I need to get redirected from paypal to my aspx web form when someony pay from website.
Following is a code
-----------------------------------
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
using System.IO;
using System.Text;
using System.Threading;
using System.Net;
public partial class paypal : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string strSandbox = "https://www.sandbox.paypal.com/cgi-bin/webscr";
// string strLive = "https://www.paypal.com/cgi-bin/webscr";
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(strSandbox);
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
byte[] param = Request.BinaryRead(HttpContext.Current.Request.ContentLength);
string strRequest = Encoding.ASCII.GetString(param);
strRequest += "&cmd=_notify-validate";
req.ContentLength = strRequest.Length;
StreamWriter streamOut = new StreamWriter(req.GetRequestStream(), System.Text.Encoding.ASCII);
streamOut.Write(strRequest);
streamOut.Close();
StreamReader streamIn = new StreamReader(req.GetResponse().GetResponseStream());
string strResponse = streamIn.ReadToEnd();
streamIn.Close();
if (strResponse == "VERIFIED")
{
lblmc_gross.Text = Request.Form["mc_gross"].ToString();
lblprotection_eligibility.Text = Request.Form["protection_eligibility"].ToString();
lbladdress_status.Text = Request.Form["address_status"].ToString();
lblpayer_id.Text = Request.Form["payer_id"].ToString();
lbltax.Text = Request.Form["tax"].ToString();
lbladdress_street.Text = Request.Form["address_street"].ToString();
lblpayment_date.Text = Request.Form["payment_date"].ToString();
lblpayment_status.Text = Request.Form["payment_status"].ToString();
lblcharset.Text = Request.Form["charset"].ToString();
lbladdress_zip.Text = Request.Form["address_zip"].ToString();
lblfirst_name.Text = Request.Form["first_name"].ToString();
lblmc_fee.Text = Request.Form["mc_fee"].ToString();
lbladdress_country_code.Text = Request.Form["address_country_code"].ToString();
lbladdress_name.Text = Request.Form["address_name"].ToString();
lblnotify_version.Text = Request.Form["notify_version"].ToString();
lblpayer_status.Text = Request.Form["payer_status"].ToString();
lblbusiness.Text = Request.Form["business"].ToString();
lbladdress_country.Text = Request.Form["address_country"].ToString();
lbladdress_city.Text = Request.Form["address_city"].ToString();
lblpayer_email.Text = Request.Form["payer_email"].ToString();
lblpayer_email.Text = Request.Form["payer_email"].ToString();
lbltxn_id.Text = Request.Form["txn_id"].ToString();
lblpayment_type.Text = Request.Form["payment_type"].ToString();
lbllast_name.Text = Request.Form["last_name"].ToString();
lbladdress_state.Text = Request.Form["address_state"].ToString();
lblreceiver_email.Text = Request.Form["receiver_email"].ToString();
lblpayment_fee.Text = Request.Form["payment_fee"].ToString();
lblreceiver_id.Text = Request.Form["receiver_id"].ToString();
lbltxn_type.Text = Request.Form["txn_type"].ToString();
lblitem_name.Text = Request.Form["item_name"].ToString();
lblmc_currency.Text = Request.Form["mc_currency"].ToString();
lblitem_number.Text = Request.Form["item_number"].ToString();
lblresidence_country.Text = Request.Form["residence_country"].ToString();
lbltest_ipn.Text = Request.Form["test_ipn"].ToString();
lblhandling_amount.Text = Request.Form["handling_amount"].ToString();
lbltransaction_subject.Text = Request.Form["transaction_subject"].ToString();
lblpayment_gross.Text = Request.Form["payment_gross"].ToString();
lblshipping.Text = Request.Form["shipping"].ToString();
}
else if (strResponse == "INVALID")
{
}
else
{
}
}
}
我正在Web服务上使用Ajax发布此数据,将数据插入数据库中.
这段代码对吗?????????
I am sending this data using ajax post on a web service where i am inserting my data into database
Is this code right??????????
推荐答案
我不知道您的代码,但是我发现这里有很多有趣的东西:
PayPal文章 [
I dont know about your code, but I found a lot of interestiong stuff on the subject here:
PayPal articles[^]
这篇关于IPN Listner进行贝宝付款的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!