【问题标题】:Desktop Payment Processing Application: Switching APIs from Authorize.Net to Paypal桌面支付处理应用程序:将 API 从 Authorize.Net 切换到 Paypal
【发布时间】:2014-06-13 17:02:48
【问题描述】:

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

它几乎只是掉在我的腿上。以前使用的 API 是 Authorize.Net 来处理信用卡信息,现在他正在切换到 PayPal API。

虽然这对他来说可能很好,但对我来说却很糟糕,因为我在 Web 开发方面的经验几乎为零。我正在努力将其保留为桌面应用程序,但我所看到的一切都在尖叫“ASP.NET ASP.NET ASP.NET”,据我所知,ASP.NET 是用于 Web 应用程序的。

有什么方法可以让我在 Windows 窗体应用程序中做到这一点?对于如何在 C# .Net WinForms 桌面应用程序中实现 PayPal API 的无能无知的人,是否有分步说明?

【问题讨论】:

  • 您可能想看看USBSwiper。这是一个基本的 POS 解决方案,已经可以与 PayPal 配合使用,并且可以安装在 Windows 或 Mac 上。

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


【解决方案1】:

您将不得不实现一个 Web 服务来与 PayPal API 通信。但是,您将能够从您的 Winforms 应用程序调用 Web 服务。试试这个 StackOverflow 问题和答案:

Call webservice in windows application

此外,您看到的参考应该是 ASP.Net,它不同于 ASP,它是 Active Server Pages 并且是较旧的技术。

【讨论】:

    【解决方案2】:

    所以事实证明我让它变得比它需要的复杂得多。虽然之前需要通过 Authorize.net 来做事,但使用 PayPal,它实际上需要(出于我们的目的,您的里程可能会有所不同)除了设置您的东西之外,他们什么都不需要。它所需要的只是将一些格式正确的信息发布到 url:

    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 窗体应用程序管理交易变得更加容易。

    【讨论】:

    • 原谅我,您是否可以提供一些代码示例或更详细的方式来实现您的代码?我仍然是编程的业余爱好者。
    猜你喜欢
    • 2012-02-26
    • 2016-05-05
    • 2017-05-22
    • 2017-12-28
    • 2013-08-23
    • 2014-12-20
    • 2016-05-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多