我正在尝试为 PayPal IPN 编写自己的 ASP.NET C# 处理程序页面。
我跟踪了一些我在网上找到的示例,但没有成功。
我似乎在第一步失败了:捕获从 PayPal 发送到处理程序页面的即时付款通知 (IPN) 数据。
我有一个网页: PayPalIPNHandler.aspx.cs 并且在 Page_Load 我有以下内容:
protected void Page_Load(object sender, EventArgs e)
{
byte[] param = Request.BinaryRead(Request.ContentLength);
string strRequest = Encoding.ASCII.GetString(param);
}
我使用一些示例数据来测试处理程序页面:
/sitename/PayPalIPNHandler.aspx?mc_gross=0.01&protection_eligibility=Eligible&address_status=confirmed&item_number1=&payer_id=pid&tax=0.00&address_street=23%20The%20Street&payment_date=12:38:53%20Jan%2010,%202012%20PST&zip=windows-status=25&char_zip=windows-status= IP4%204LP&mc_shipping = 0.00&mc_handling = 0.00&FIRST_NAME =约翰&mc_fee = 0.01 address_country_code = GB&ADDRESS_NAME =约翰%20Smith&notify_version = 3.4&定制= payer_status =未经验证和业务= X @ googlemail.com&ADDRESS_COUNTRY =联合%20Kingdom&num_cart_items = 1&mc_handling1 = 0.00&ADDRESS_CITY =伊普斯维奇&verify_sign =验证和PAYER_EMAIL = X @ gmail的.com&mc_shipping1=0.00&txn_id=1&payment_type=instant&last_name=Smith&address_state=Suffolk&item_name1=&receiver_email=x@googlemail.com&payment_fee=&quantity1=1&receiver_id=w&txn_type=cart&mc_gross_1=0.01&mc_currency=GBP&residence_country=GB&transaction_subject=Shopping%20Cart&payment_gross=&ipn_track_id=Bu4
但是, ContentLength 似乎总是 0 而 strRequest 是 ""
我显然犯了一个非常愚蠢的错误,但我只是看不出我做错了什么。
请帮忙。
亲切的问候
沃尔特