IPN Listner进行贝宝付款 [英] IPN Listner for paypal payment

查看:91
本文介绍了IPN Listner进行贝宝付款的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

大家好!

我有一个有关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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆