9

Korzystam z funkcji płatności Paypals Adaptive Payments i Embedded Flow, aby zapewnić realizację płatności za pośrednictwem minibrowera. Wydaje się, że wszystko działa poprawnie w środowisku piaskownicy, z tym że po pomyślnym zakończeniu płatności użytkownik nigdy nie jest przekierowywany do mojego zestawu returnUrl w żądaniu API PAY. To samo dotyczy mojego cancelUrl.Paypal Embedded Flow, który nie korzysta z funkcji returnUrl lub cancelUrl

Po zaksięgowaniu płatności użytkownikowi wyświetla się przegląd zamówienia w minibrowarce oraz przycisk oznaczony "zamknij". Jeśli użytkownik kliknie ten przycisk, to minibrowser zostanie zamknięty.

Jeśli użytkownik kliknie przycisk Anuluj w dowolnym momencie, to minibrowser zostanie zamknięty.

Wydaje się, że nie ma sposobu, aby moja strona była świadoma zmiany poza ustawianiem sondowania lub czymś, co nie ma sensu, moje wartości returnUrl i cancelUrl powinny być gdzieś używane, prawda?

to jest mój kod, aby uzyskać przekierowanie (za pomocą płatności adaptacyjne gem):

pay_request = PaypalAdaptive::Request.new 
data = { 
    'requestEnvelope' => {'errorLanguage' => 'en_US'}, 
    'currencyCode' => 'USD', 
    'receiverList' => 
      { 'receiver' => [ 
      {'email' => '...', 'amount'=> 10.00} 
      ]}, 
    'actionType' => 'PAY', 
    'returnUrl' => 'http://www.example.com/paid', 
    'cancelUrl' => 'http://www.example.com/cancelled', 
    'ipnNotificationUrl' => 'http://www.example.com/ipn' 
} 

pay_response = pay_request.pay(data) 
redirect_to pay_response.approve_paypal_payment_url "mini" 

A oto jak ja konfigurowania PayPal JS:

var dg = new PAYPAL.apps.DGFlowMini({ trigger: "buyit", expType: "mini" }); 

To wszystko wydaje się dość prosto do przodu, nie jestem pewien, czego mi brakuje.

+0

Mam również problem z adresami URL, ale wygląda na to, że IPN Payala działa, dostaję wywołanie zwrotne na mojej stronie internetowej. https://www.paypal.com/us/cgi-bin/webscr?cmd=p/acc/ipn-info-outside – Ron

Odpowiedz

9

Cóż - wydaje się, że jest to błąd po naszej stronie - po prostu wypróbowaliśmy go i potwierdziliśmy naszymi zespołami integracyjnymi. :-(

Niestety, innym rozwiązaniem krótkoterminowym, które mogę wymyślić innym niż to, o czym wspomniałeś (sprawdzając istnienie okna podręcznego), jest wywołanie API PaymentDetails od strony serwera w celu sprawdzenia statusu Płatność Otworzyłem błąd po naszej stronie, ale nie mam ETA

Edytuj 10/18: Przykro mi, ale się mylę. To działa - po prostu nasz przewodnik dla programistów nie dostarcza wszystkich Wymagane informacje W przypadku przepływu w miniprzeglądarce należy podać "funkcję zwrotną", a także nazwać zmienną dgFlow jako "dgFlowMini" (ta ostatnia jest ważna - ponieważ apdg.js oczekuje zmiennej "dgFlowMini" do zdefiniowania) Oto kod, który działa:

var returnFromPayPal = function(){ 
    alert("Returned from PayPal"); 
    // Here you would need to pass on the payKey to your server side handle to call the PaymentDetails API to make sure Payment has been successful or not 
    // based on the payment status- redirect to your success or cancel/failed urls 
} 
var dgFlowMini = new PAYPAL.apps.DGFlowMini({trigger: 'em_authz_button', expType: 'mini', callbackFunction: 'returnFromPayPal'}); 

Mam próbkę roboczą tutaj: https://pp-ap-sample.appspot.com/adaptivesample?action=pay (należy wybrać jako typ mini Experience)

otrzymamy nasze docs zaktualizowane, a także oczyszczania apdg.js usunąć zależność od zmiennej JS Nazwa.

+0

Tak, faktycznie utworzyłem lokalną kopię pliku apdg.js i zmodyfikowałem go zgodnie z moimi potrzebami. Jest też kilka innych problemów, isOpen nie robi tego, co myślisz. Kiedy użytkownik kliknie przycisk paypal, mam teraz intervalled wniosek ajax, który odpytuje mój serwer, który wypytuje paypal. Jest to jedyny niezawodny sposób sprawdzenia, kiedy płatność została zakończona. –

+0

@Praveen Mam również do czynienia z podobnym problemem. W moim przypadku implementujemy go w natywnej aplikacji IOS. Mini przeglądarka jest ładowana wewnątrz UIWebiew wewnątrz mojej aplikacji.Podczas tworzenia URL anulowania płatności, jak również returnUrl są określone. Ale po zakończeniu płatności/anulowania nie przekierowuje do zwrotu lub anulowania adresów URL. – arundevma

+0

Czy jest również potwierdzone, że w trybie mini-flow adresy zwrotne i adresy URL nie są używane? Dokumentacja nie jest jasna. –

2

Wygląda na to, że korzystanie z systemu PayPal w przypadku przepływów wbudowanych pogorszyło się. Teraz po wywołaniu mini lub lightbox zostanie wyświetlony komunikat o błędzie "Płatność nie może zostać zakończona. Ta funkcja jest obecnie niedostępna."

+5

Tak, człowieku, API PayPala jest kompletnym koniem, są tylko grupą leniwych kradzieży, które nikogo nie obchodzą. –