使用 C# .NET 调用 Paypal 自适应支付 API?最好使用 WebServices [英] Paypal adaptive payment API call with C# .NET? Preferably with WebServices

查看:16
本文介绍了使用 C# .NET 调用 Paypal 自适应支付 API?最好使用 WebServices的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

好吧,我现在可能完全偏离了轨道,但这里是:

Okay I might be entirely off track now but here goes:

我们的网上商店"提供两种功能,购买特定产品并将其卖回给我们.后端处理用户是否可以出售.

Our "webshop" offers two functions, buying a specific product and selling it back to us. Back-end handles if the user can sell or not.

我已决定为此使用 Paypal 的自适应支付,因为这似乎是进行此类交易的方式.我从来没有实施过任何类型的商店,所以我对这个完全没有兴趣.我最近才学习 ASP.NET 并且在转向这种开发之前主要开发游戏.HTTP 对我来说仍然是某种程度的魔法嘿嘿..

I've decided to use Paypal's adaptive payments for this one as it seems the way to go doing these kinds of transactions. I've never implemented any kind of shop so I'm totally green with this one. I only recently learned ASP.NET and have mainly developed games before moving to this kind of development. HTTP is still some level of magic to me hehe..

我可能会感到困惑,但我认为 paypal 提供了具有自适应支付 API 的网络服务.我谦虚的请求:一个想分享一个使用 C# .NET 实现自适应支付 API 调用的例子的好心人.如果他们不提供它作为网络服务,我可能会发现它是一个自定义的 .dll 或其他东西.

I might be confused but I think paypal offers a webservice with their adaptive payment API. My humble request: A nice soul who wants to share an example of implementing an adaptive payment API call with C# .NET. If they don't offer it as a webservice I'll probably find it as a custom .dll or something.

非常感谢任何提示和示例!感谢阅读

Any tips and examples are highly appreciated! Thanks for reading

推荐答案

https://www.x.com/docs/DOC-1414

https://www.x.com/community/ppx/code_samples

这是他们的 xml api.我还没有使用 vs.net 中自动生成的代理让他们的网络服务工作.另请记住,您必须为 api 信息、买方、卖方等声明常量或变量.

This is their xml api. I have not gotten their webservices to work using the auto-generated proxies in vs.net. Also keep in mind you'll have to declare constants or variables for the api info, buyer, seller, etc.

        // API endpoint for the Refund call in the Sandbox
        string sAPIEndpoint = "https://svcs.sandbox.paypal.com/AdaptivePayments/Pay";

        // Version that you are coding against
        string sVersion = "1.1.0";

        // Error Langugage
        string sErrorLangugage = "en_US";

        // Detail Level
        string sDetailLevel = "ReturnAll";

        // Request Data Binding
        string sRequestDataBinding = "XML";

        // Response Data Binding
        string sResponseDataBinding = "XML";

        // Application ID
        string sAppID = "APP-80W284485P519543T";

        // other clientDetails fields
        string sIpAddress = "255.255.255.255";
        string sPartnerName = "MyCompanyName";
        string sDeviceID = "255.255.255.255";

        // Currency Code
        string sCurrencyCode = "USD";

        // Action Type
        string sActionType = "PAY";

        // ReturnURL and CancelURL used for approval flow
        string sReturnURL = "https://MyReturnURL";
        string sCancelURL = "https://MyCancelURL";

        // who pays the fees
        string sFeesPayer = "EACHRECEIVER";

        // memo field
        string sMemo = "testing my first pay call";

        // transaction amount
        string sAmount = "5";

        // supply your own sandbox accounts for receiver and sender


        string sTrackingID = System.Guid.NewGuid().ToString();

        // construct the XML request string
        StringBuilder sRequest = new StringBuilder("<?xml version="1.0" encoding="UTF-8"?>");
        sRequest.Append("<PayRequest xmlns:ns2="http://svcs.paypal.com/types/ap">");
        // requestEnvelope fields
        sRequest.Append("<requestEnvelope><errorLanguage>");
        sRequest.Append(sErrorLangugage);
        sRequest.Append("</errorLanguage><detailLevel>");
        sRequest.Append(sDetailLevel);
        sRequest.Append("</detailLevel></requestEnvelope>");
        // clientDetails fields
        sRequest.Append("<clientDetails><applicationId>");
        sRequest.Append(sAppID);
        sRequest.Append("</applicationId><deviceId>");
        sRequest.Append(sDeviceID);
        sRequest.Append("</deviceId><ipAddress>");
        sRequest.Append(sIpAddress);
        sRequest.Append("</ipAddress><partnerName>");
        sRequest.Append(sPartnerName);
        sRequest.Append("</partnerName></clientDetails>");
        // request specific data fields
        sRequest.Append("<actionType>");
        sRequest.Append(sActionType);
        sRequest.Append("</actionType><cancelUrl>");
        sRequest.Append(sCancelURL);
        sRequest.Append("</cancelUrl><returnUrl>");
        sRequest.Append(sReturnURL);
        sRequest.Append("</returnUrl><currencyCode>");
        sRequest.Append(sCurrencyCode);
        sRequest.Append("</currencyCode><feesPayer>");
        sRequest.Append(sFeesPayer);
        sRequest.Append("</feesPayer><memo>");
        sRequest.Append(sMemo);
        sRequest.Append("</memo><receiverList><receiver><amount>");
        sRequest.Append(sAmount);
        sRequest.Append("</amount><email>");
        sRequest.Append(Receiver);
        sRequest.Append("</email></receiver></receiverList><senderEmail>");
        sRequest.Append(Sender);
        sRequest.Append("</senderEmail><trackingId>");
        sRequest.Append(sTrackingID);
        sRequest.Append("</trackingId></PayRequest>");


        // get ready to make the call
        HttpWebRequest oPayRequest = (HttpWebRequest)WebRequest.Create(sAPIEndpoint);
        oPayRequest.Method = "POST";
        byte[] array = Encoding.UTF8.GetBytes(sRequest.ToString());
        oPayRequest.ContentLength = array.Length;
        oPayRequest.ContentType = "text/xml;charset=utf-8";
        // set the HTTP Headers
        oPayRequest.Headers.Add("X-PAYPAL-SECURITY-USERID", UserID);
        oPayRequest.Headers.Add("X-PAYPAL-SECURITY-PASSWORD", Pass);
        oPayRequest.Headers.Add("X-PAYPAL-SECURITY-SIGNATURE", Signature);
        oPayRequest.Headers.Add("X-PAYPAL-SERVICE-VERSION", sVersion);
        oPayRequest.Headers.Add("X-PAYPAL-APPLICATION-ID", sAppID);
        oPayRequest.Headers.Add("X-PAYPAL-REQUEST-DATA-FORMAT", sRequestDataBinding);
        oPayRequest.Headers.Add("X-PAYPAL-RESPONSE-DATA-FORMAT", sResponseDataBinding);
        // send the request
        Stream oStream = oPayRequest.GetRequestStream();
        oStream.Write(array, 0, array.Length);
        oStream.Close();
        // get the response
        HttpWebResponse oPayResponse = (HttpWebResponse)oPayRequest.GetResponse();
        StreamReader oStreamReader = new StreamReader(oPayResponse.GetResponseStream());
        string sResponse = oStreamReader.ReadToEnd();
        oStreamReader.Close();

这篇关于使用 C# .NET 调用 Paypal 自适应支付 API?最好使用 WebServices的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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