ASP.NET集成PayPal(使用IPN)

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、对于“商家”账户的设置;

 

 

 

 

 

 

 

 

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

 

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

<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返回信息说明请查看

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

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值