Closed (fixed)
Project:
Commerce PayU
Version:
7.x-1.x-dev
Component:
Code
Priority:
Normal
Category:
Task
Assigned:
Reporter:
Created:
3 Mar 2012 at 12:55 UTC
Updated:
29 Jun 2013 at 09:38 UTC
Jump to comment: Most recent file
Zgodnie z dokumentacją commerca powinniśmy po przyjęciu platności wywołać commerce_payment_redirect_pane_next_page a w przypadku odrzucenia commerce_payment_redirect_pane_previous_page
| Comment | File | Size | Author |
|---|---|---|---|
| #4 | commerce_payu-1466180-4.patch | 2.13 KB | marcin.wosinek |
| #1 | commerce_payu-1466180-1.patch | 1.94 KB | marcin.wosinek |
Comments
Comment #1
marcin.wosinek commentedPierwsza próba. Wrzucam patcha, ale wydaje mi się że to jeszcze nie jest to zaimplementowane tak jak powinno.
Comment #2
arturro commentedW jakim celu to robisz? Pisząc moduł wzorowałem się na kodzie twórców commerce m.in. z Paypala, moduł działa i obsługuje co powinien.
Comment #3
marcin.wosinek commentedWriting a payment method module
I dalej opisują wspomniane wyżej funkcje.
Brak odwołań objawił się przy pokazywaniu błędu związanego z brakiem billing information. Po wykonaniu się kodu
Zrzucało z checkout na główną; a samo zamówienie zostawało zablokowane. Zamówienie nie wracało ze stanu "w trakcie płatności", i użytkownik nie ma do niego dostępu.
To jest drobiazg, nikt poza developerem nie powinien zobaczyć takiego błędu, ale myślę że przy okazji można to też obsłużyć. Zmiany w pliku commerce_payu.module są wg mnie ok.
Z kolei moje zmiany w includes/commerce_payu.inc są w tym momencie prawdopodobnie błędne. Jak testowałem kod nie było widać żadnego wpływu obecności funkcji na działanie.
Z tego co czytałem błąd może być nie deterministyczny, lub występować kiedy ktoś po skończeniu płatności nie otworzy strony na którą będzie przekierowany. Potrzebuje jeszcze o tym doczytać; potestuję i podzielę się informacjami.
Comment #4
marcin.wosinek commentedMyślę że rozumiem: przekierowania z 'commerce_payu_close_transaction' załatwiają sprawę - o ile 'commerce_payu/close_transaction' będzie otwarte przez usera.
Jeśli przekierowanie nie będzie otwarte - informacja o wyniku płatności trafia do nas na UrlOnline. Jeśli nie wywołamy w takiej sytuacji jednej z wyżej wymienionych funkcji - zlecenie zostanie w stanie 'w trakcie płatności' kiedy jest zablokowane dla usera i ukryte przed adminem. Rzadki, ale brzydki błąd.
w załączonym patchu:
Comment #5
arturro commented1) Wrzucę zaraz.
2) Muszę to sprawdzić funkcja commerce_payu_online jest wołana offlineowo przez PayU a nie usera. Daj znać na priva
Comment #6
arturro commentedPoprawiłem.
Zamówienia nie znikają, jeśli użytkownik nie wróci do sklepu zamówienie widoczne jest w zakładce: "SHOPPING CARTS"
SHOPPING CARTS
Checkout: Review - status podsumowanie, przed wysłaniem do payu
Checkout: Payment - status przy przejściu do payu
Użytkownik od czasu wyjścia ze sklepu aż do powrotu ma status Checkout: Payment. Dopiero po powrocie do sklepu commerce zmienia na pending, a samo zamówienie widoczne jest już w zakładce "ORDERS".
ORDERS
Pending - po powrocie
Processing - po opłaceniu
Jeśli tego nie zrobi zamówienie "wisi", natomiast PayU wysyła poprawne raporty. Dopisałem więc warunkowy kod zamykający. Jeśli:
zamówienie ma status: Checkout: Payment i wpłyneła cała kwota zamykam zamówienie. Używając dodatkowo reguły zmieniającej status po wpłacie otrzymamy Processing.
Przetestuj i zamykamy.
Comment #7
arturro commentedMoże komuś z drupalowców jednak zechce się choć potestować skoro dostaje moduł za darmo ;-)
Zamykam ze względu na brak odzewu.
Comment #8
marcin.wosinek commentedPrzetestowałem: nie otworzyłem url od payu => a informacja o zakończeniu płatności trafiła do system. Patch zadziałał jak trzeba.
Zostaje wg. mnie umiejscowienia logiki podejmowania decyzji na podstawie danych przekazanych przez payu do urlpositive/urlnegative. Wg dokumentacji:
Myślę się tym zająć. Jak będę mieć coś gotowego dam znać.
Comment #9
arturro commentedTego się tak nie robi, do tego służy adres online. Adresu powrotu są niepodpisane md5 i łatwe do spreparowania przez użytkownika.
Comment #10
pined commentedWitam,
A czy poprawna jest sytuacja jak po testowej transakcji zamówienie ląduje do "Shopping carts"
ze statusem "Płatność"?
Nie mogę znaleść nigdzie informacji jak sprawdzić czy transakcja przebiegła prawidłowo.
Czy po poprawnej autoryzacji zamówienie nie powinno trafiać do zakładki
"Zamówienia" ze statusem "Oczekujące".
Jeśli transakcję obsługuję za pomocą "Płatność przykłądowa" to zamówienie ląduje do zakładki "Zamówienia".
Pozdrawiam,
Mariusz