Изпращайте автоматично пари с Paypal Адаптивни плащания

ето потребителския сценарий:

Джон има 5 виртуални кредита с акаунта си в уебсайт, той може да конвертира своите виртуални кредити в реални пари, като щракне върху бутон в уебсайта. След това уебсайтът ще му даде реалните пари чрез paypal, независимо дали Джон има paypal акаунт или не."

Бих искал да знам дали е възможно да се приложи този сценарий?

Разбира се, от съображения за сигурност, ще проверя в страната на сървъра всички необходими данни, за да извърша безопасно операцията.

Може ли да се автоматизира без никакви действия от страна на администратора на уебсайта?

Благодаря ви за отговорите!

РЕДАКТИРАНЕ:

Намерих тази публикация: https://www.x.com/devzone/articles/using-adaptive-payments-disburse-cash-prizes-real-time-easter-eggs

Ще се опитам да го адаптирам към моя сценарий. Ще актуализирам публикацията си днес, когато завърша интеграцията.

РЕДАКТИРАНЕ 2:

Всичко изглежда наред, но се опитвам да получа идентификатор на приложение от www.x.com, те ме разпитват как използвам API:

Здравейте и благодаря за вашето изпращане,

Преди да можем да продължим с нашия преглед, можете ли да изясните API, от който се нуждаете, моля?

  • Можете ли да изясните използването на „неявни плащания“, които ще бъдат използвани за плащане на вашите потребители от вашия акаунт в PayPal? Ако това не се изисква, моля, премахнете отметката от него от секцията „Услуги, използвани от приложението“ -- „Адаптивни плащания“ -- „Основни плащания“ на вашето изпращане

  • Вие също сте избрали Preapprovals, което е усъвършенстван API, изискващ задълбочен преглед. Това ще се използва за създаване на Споразумение за фактуриране с вашите клиенти (както в бизнес модел „Абонамент“). Ако това се изисква, моля, попълнете полето „Условия за предварително одобрение“ и ни уведомете как можем да тестваме потока на предварително одобрените плащания на вашия сайт. Ако не е задължително, моля, премахнете отметката от него от секцията „Услуги, използвани от приложението“ -- „Адаптивни плащания“ на вашето изпращане.

Забележка: Ще трябва да щракнете върху името на приложението в секцията „Моите приложения“ на x.com, за да разширите и редактирате полетата на вашия формуляр за изпращане.

Какво трябва да направя ?

РЕДАКТИРАНЕ 3:

Добре, получих благословията на Paypal, сега мога да използвам API с активни идентификационни данни! Премахнах отметката на Предварителни одобрения и всичко мина добре.

Последен въпрос, но не на последно място:

Как мога да конфигурирам моето адаптивно плащане, за да променя плащането в чакащ процес и да дам избор на доставчика да потвърди плащането?

Ето случая на използване, за да разберете по-добре ситуацията:

Джон иска да преобразува 5 виртуални кредита в 5$, той кликва върху бутона за теглене и уеб приложението му изпраща автоматично реалните пари в неговия paypal акаунт. Д-р Хаус иска да преобразува 100 виртуални кредита в 100$, тази сума се нуждае от одобрение на администратора, този администратор влиза в своя акаунт в paypal и проверява дали всичко е наред, той потвърждава плащането, тогава д-р Хаус ще получи парите си!"

Намерих тази опция:

$PayRequestFields = array(
                    'ActionType' => 'PAY', // Required. Whether the request pays the receiver or whether the request is set up to create a payment request, but not fulfill the payment until the ExecutePayment is called. Values are: PAY, CREATE, PAY_PRIMARY

Ако промените стойността PAY в стойността CREATE, това не прави нищо.

Вярно !


person Mindhavok    schedule 24.04.2013    source източник


Отговори (2)


Можете да настроите това да бъде автоматизирано. Ако конкретно искате да използвате Adaptive Payments, бихте искали да използвате API на Adaptive Payments Pay, за да изпратите парите на Джон. Джон обаче ще се нуждае от PayPal, за да получи достъп до парите и да тегли средствата.

person PP_MTS_Chad    schedule 24.04.2013
comment
Нямах предвид конкретно да използвам адаптивното плащане, ако има по-добър начин за използване на paypal за този тип сценарии, наистина съм отворен. Докато чета документацията, няма конкретно обяснение как да направите това правилно. За да сложа бутон за paypal, няма проблем, създавам такъв с ID в акаунта marchand (професионалист), интегрирам кода в уебсайта и готово! Но за бутон, при който потребителят не може да щракне върху бутон, който автоматично може да му даде малко пари, ме обърква! - person Mindhavok; 25.04.2013
comment
Има 2 начина за извършване на изплащане към сметка, като се използва Adaptive Payments Pay API, а другият е MassPay. Адаптивните плащания биха били по-добрият начин. Всичко, което трябва да направите, е да създадете бутон, който използва API на Adaptive Payments Pay, да го накарате динамично да попълни сумата и имейл адреса на когото изпращате средствата и след това да изпратите. Тогава сте готови. - person PP_MTS_Chad; 25.04.2013
comment
здрасти Наистина използвах адаптивното плащане и изглежда, че работи добре! Все пак трябва да направя допълнителни тестове, за да съм сигурен, че всичко е наред! Скоро ще дам всички подробности, когато се уверя, че всичко работи добре. Също така се опитвам да получа идентификатор на приложение чрез x.com. Те ме разпитват за подробности как използвам API. Ще поставя въпросите в редакцията. - person Mindhavok; 26.04.2013

Накарах го да работи в режим на пясъчник с този код, все още не съм пробвал на живо:

        ServicePointManager.Expect100Continue = true;
        ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;

        var request = (HttpWebRequest)WebRequest.Create("https://svcs.sandbox.paypal.com/AdaptivePayments/Pay");
        request.ContentType = "application/json";
        request.Method = "POST";

        request.Headers.Add("X-PAYPAL-SECURITY-USERID", apiUsername);
        request.Headers.Add("X-PAYPAL-SECURITY-PASSWORD", apiPassword);
        request.Headers.Add("X-PAYPAL-SECURITY-SIGNATURE", apiSig);
        request.Headers.Add("X-PAYPAL-APPLICATION-ID", "APP-80W284485P519543T"); // sandbox app id
        request.Headers.Add("X-PAYPAL-REQUEST-DATA-FORMAT", "JSON");
        request.Headers.Add("X-PAYPAL-RESPONSE-DATA-FORMAT", "JSON");

        JObject j = new JObject();
        using (var streamWriter = new StreamWriter(request.GetRequestStream()))
        {
            string json = "{  \"actionType\": \"PAY\",  \"currencyCode\": \"GBP\", \"useCredentials\": \"FALSE\",  \"senderEmail\": \"[email protected]\",\"ipnNotificationUrl\": \"http://example.com/IPN.aspx\",    \"receiverList\": {\"receiver\": [{\"amount\": \"1.00\", \"email\": \"[email protected]\"     }]  },  \"returnUrl\": \"http://example.com/thanks.aspx\",    \"cancelUrl\": \"http://example.com/cancel.aspx\",    \"requestEnvelope\": {    \"errorLanguage\": \"en_US\",      \"detailLevel\": \"ReturnAll\"   }}";



            streamWriter.Write(json);
            streamWriter.Flush();
            streamWriter.Close();
        }

        var httpResponse = (HttpWebResponse)request.GetResponse();
        string sResult = "";
        using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
        {
            sResult = streamReader.ReadToEnd();

        }

Няколко неща, за които да внимавате:

  • уверете се, че заявката е валиден JSON и не сте объркали случайно синтаксиса
  • уверете се, че използвате правилните малки букви в параметрите на заявката
  • уверете се, че използвате идентификационни данни за пясъчната среда, ако публикувате на URL адреса на пясъчната среда
  • Добавете вашия код, за да проверите транзакцията (сума, получател и т.н.) в IPN url, който посочите

Това прави автоматично плащане от вашия акаунт към получател, който не изисква да влизате, за да го оторизирате.

person Damo    schedule 11.12.2017