桌面支付处理应用程序:将API从Authorize.Net切换到Paypal

时间:2014-06-13 17:02:49

标签: winforms c#-4.0 paypal windows-7 desktop-application

我的雇主有一个他想要改变的申请。应用程序本身用于处理支付信息,它是一个桌面应用程序。

几乎只是放在我的腿上。使用的前API是Authorize.Net处理信用卡的东西,现在他正在切换到PayPal API。

虽然这对他来说可能很棒,但对我来说这很糟糕,因为我的网络开发经验几乎为零。我正努力将其作为桌面应用程序保留,但我所见过的所有内容都尖叫“ASP.NET ASP.NET ASP.NET”,据我所知,ASP.NET适用于Web应用程序。

有什么方法可以在Windows窗体应用程序中执行此操作吗?对于如何在C#.Net WinForms桌面应用程序中实现PayPal API,是否有一步一步的毫无根据?

2 个答案:

答案 0 :(得分:2)

您必须实施一项Web服务才能与PayPal API进行通信。但是,您可以从Winforms应用程序中调用Web服务。试试这个StackOverflow问题并回答:

Call webservice in windows application

此外,您所看到的引用应该是ASP.Net,它与ASP不同,ASP是Active Server Pages,是旧技术。

答案 1 :(得分:1)

所以事实证明我让它变得比它需要的更复杂。虽然在Authorize.net需要做之前,PayPal实际上需要(为了我们的目的,你的里程可能会有所不同)除了设置你的东西之外没有任何东西。它只需要将一些格式正确的信息发布到网址:

sUrl = "https://pilot-payflowpro.paypal.com"
WebRequest request = WebRequest.Create( sUrl );
request.Method = "POST";
string PostData =
                "USER=/*User*/" + 
                "&VENDOR=/*Vendor*/" +
                "&PARTNER=PayPal" + 
                "&PWD=/*PassWord*/" + 
                "&TRXTYPE=S" +
                "&TENDER=C" +
                "&ACCT=/*CC#*/" +
                "&EXPDATE=/*CC Expiration Date*/" +
                "&CVV2=/*CCV Code*/" +
                "&AMT=/*Order Amount*/" +
                "&FIRSTNAME=/*First Name*/" +
                "&LASTNAME=/*Last Name*/" +
                "&STREET=/*Address Street*/" +
                "&CITY=/*Address City*/" +
                "&STATE=/*Address State*/" +
                "&ZIP=/*Zip Code*/" +
                "COMMENT1=/*Any Comment*/";

byte[] bar = Encoding.UTF8.GetBytes( PostData );
                request.ContentLength = bar.Length;

            using ( Stream datStream = request.GetRequestStream( ) ) {
                datStream.Write( bar, 0, bar.Length );
                datStream.Close( );
            }
            string serverResponse;
            WebResponse wResp = request.GetResponse( );
            using ( Stream datStream = wResp.GetResponseStream( ) ) 
                using ( StreamReader datSReader = new StreamReader( datStream ) ) 
                    serverResponse = datSReader.ReadToEnd( );
            this.Response = HttpUtility.ParseQueryString(serverResponse);
            IsSuccess = this.Response.Get( "RESULT" ) == "0";
            if ( !IsSuccess ) MessageBox.Show( "RESULT != 0: RESULT = " + this.Response.Get( "RESULT" ) );
            return IsSuccess;

此代码在更改之前的形式直接来自PayPal的人员,并且通过Windows窗体应用程序管理事务变得更加容易。