Адаптивный платежный API Paypal с помощью C # .NET Желательно с веб-сервисами - PullRequest
3 голосов
/ 17 мая 2010

Хорошо, возможно, я сейчас совершенно не в курсе, но здесь идет речь:

Наш «интернет-магазин» предлагает две функции: покупка определенного продукта и его продажа нам. Бэкэнд обрабатывает, может ли пользователь продавать или нет.

Я решил использовать адаптивные платежи Paypal для этого, так как кажется, что это способ делать такие транзакции. Я никогда не реализовывал ни одного магазина, поэтому я полностью зелен с этим. Я только недавно изучил ASP.NET и в основном разрабатывал игры, прежде чем перейти к такого рода разработке. HTTP для меня все еще некий уровень магии, хе-хе ..

Я могу быть смущен, но я думаю, что PayPal предлагает веб-сервис с их адаптивным платежным API. Моя скромная просьба: приятная душа, которая хочет поделиться примером реализации API-интерфейса адаптивных платежей в C # .NET. Если они не предлагают его в качестве веб-сервиса, я, вероятно, найду его как пользовательский .dll или что-то в этом роде.

Любые советы и примеры высоко ценятся! Спасибо за чтение

Ответы [ 2 ]

9 голосов
/ 27 мая 2010

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

и

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

Это их XML API. Я не заставил их веб-сервисы работать с использованием автоматически сгенерированных прокси в vs.net. Также имейте в виду, что вам придется объявлять константы или переменные для API, покупателя, продавца и т. Д.

        // 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();
1 голос
/ 04 января 2012

Я думаю, что эта страница поможет вам найти то, что вам нужно. Это код, реализующий интерфейс PayPal без кнопки «Создать сейчас». Смотрите на этой странице PayPal C #

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...