关于papal的一些设置和使用方法(三)c#开发代码-欧洲杯买球app

0411-39943997
工作时间:周一至周日 8:30-16:30
技术文库
technical library
关于paypal的一些设置和使用方法(三)c#开发代码
标签: c#开发代码 papal 设置 使用方法  访问: 10492017-09-21

1、原理:paypal的交易原理很简单,就是将您要支付的页面post提交到他的服务器上。你的页面上要有他要的必要信息即可。

2、提交url:


测试用的为:

真实用的为:


3、实例:


action="" method="post">

        //表示立即支付

        //您的账号

        //订单号

        //订单金额

        //交易币种


                  



4、提交后的反馈信息:ipn使用

当您收到新的付款交易或者已发生的付款交易的状态发生变化时,paypal都将异步发送付款详细数据到您所指定的url,以便您了解买家付款的具体情况并做出相应的响应。这个过程我们称作即时付款通知(简称 ipn)。


ipn 在以前的文章中以设置好,忘记的同学可以回过头去看看。


paypal 会将一些交易信息返回给您指定的页面:


接收信息的页面 notify_url.cs 中的代码如下:


//获取参数


public static string getformstring(string strname)

        {

            if (httpcontext.current.request.form[strname] == null)

                return "";

            return httpcontext.current.request.form[strname];

        }



//向paypal请求验证


private string validatepaypalinfo(int payment_id)

        { 

            try

            {

                string strlive = "";


                string strformvalues;

                string strnewvalues;

                string strresponse;


                system.net.servicepointmanager.securityprotocol = securityprotocoltype.tls12;


                httpwebrequest req = (httpwebrequest)webrequest.create(strlive);

                req.method = "post";

                req.contenttype = "application/x-www-form-urlencoded";

                byte[] param = httpcontext.current.request.binaryread(httpcontext.current.request.contentlength);

                strformvalues = encoding.ascii.getstring(param);

                strnewvalues = strformvalues "&cmd=_notify-validate";

                req.contentlength = strnewvalues.length;

                streamwriter stout = new streamwriter(req.getrequeststream(), encoding.ascii);

                stout.write(strnewvalues);

                stout.close();


                streamreader sr = new streamreader(req.getresponse().getresponsestream());

                strresponse = sr.readtoend();

                sr.close();


                return strresponse;

            }

            catch (exception e)

            {

                utils.writelog("paypal", "paypal have some error:" e.message " \r\n" e.stacktrace);


                return "";

            }

        }



//接收

protected void page_load(object sender, eventargs e)

{

            string trade_no = getformstring("txn_id"); //交易号

            string order_no = getformstring("item_name").toupper(); //获取订单号

            string total_fee = getformstring("mc_gross"); //获取总金额

            string trade_status = getformstring("payment_status"); //交易状态


            string strresponse = validatepaypalinfo(site_payment_id);


 if (strresponse.toupper() == "verified")//验证成功

  {


    if (trade_status.tolower() == "completed")//交易状态 成功

     {

//做你要做的事,比如更新订单。

     }


   }


}


更多信息请参见:




欧洲杯手机投注 copyright© 2015 仟亿科技,all rights reserved.
欧洲杯买球app-欧洲杯手机投注 关于欧洲杯手机投注 新闻资讯 服务项目 软件产品 欧洲杯买球app的解决方案 成功案例 下载专区 加入欧洲杯手机投注 联系欧洲杯买球app
网站地图