Aplikacje/moduły do obsługi płatności w Django

1,451 views
Skip to first unread message

bt

unread,
Mar 25, 2012, 10:20:18 PM3/25/12
to django-pl - grupa polskiej społeczności Django
Witam,

Na początku chciałbym Was gorąco przywitać!

Chciałbym Was zapytać o opinie i ewentualne implementację modułów
płatności internetowych takich jak PayU (kiedyś platnosci.pl) /
przelewy24.pl / PayPal w Django. Odnośnie platnosci.pl i PayPal
znalazłem coś w internecie choć nie wiem czy te implementację są
bezpieczne na tyle aby powierzyć im obrót gotówki, może Wy używaliście
którejś z nich i możecie się podzielić swoimi doświadczeniami.
Aplikacje, które odnalazłem to do platnosci.pl:
https://github.com/mpasternacki/django-platnoscipl -> ta aplikacja nie
jest rozwijana już od 3 lat więc może być przestarzała oraz
http://code.google.com/p/django-platnosci/ -> tutaj twórcy piszą by
nie używać ich do rzeczywistych przelewów. Znalazłem również coś na
temat PayPal.

Serdecznie proszę Was o opinie czy te aplikację do platnosci.pl
aplikacjami, którym warto powierzyć obrót gotówką a może ktoś z Was
napisał jakiś własny bezpieczny moduł i chciałby się nim podzielić.
Serdecznie proszę o jaką kolwiek radę bądź przykład, miło by było
również gdybyście wypowiedzieli się na temat który system płatności
internetowej według Was najlepiej spełnia się w polskiej
rzeczywistości.

Pozdrawiam

KubAT

unread,
Mar 26, 2012, 3:40:10 AM3/26/12
to djan...@googlegroups.com
Jakbyś chciał sam pisać to patrząc na dokumentacje tych serwisów płatnościowych pół roku temu najprostszy do implementacji wydawał mi sie dotpay.

I tu jest też coś takiego
http://pypi.python.org/pypi/django-dotpay/0.2.1

ale repo z githuba zniknęło

haloween

unread,
Mar 26, 2012, 6:40:26 AM3/26/12
to django-pl - grupa polskiej społeczności Django
Ja mam napisany i produkcyjnie dzialajacy platnosci.pl/payu
Konfiguracja PP z poziomu panelu django etc ...

Generalnie dzien siedzenia.

Pozdr

On Mar 25, 10:20 pm, bt <scr34...@gmail.com> wrote:
> Witam,
>
> Na początku chciałbym Was gorąco przywitać!
>
> Chciałbym Was zapytać o opinie i ewentualne implementację modułów
> płatności internetowych takich jak PayU (kiedyś platnosci.pl) /
> przelewy24.pl / PayPal w Django. Odnośnie platnosci.pl i PayPal
> znalazłem coś w internecie choć nie wiem czy te implementację są
> bezpieczne na tyle aby powierzyć im obrót gotówki, może Wy używaliście
> którejś z nich i możecie się podzielić swoimi doświadczeniami.
> Aplikacje, które odnalazłem to do platnosci.pl:https://github.com/mpasternacki/django-platnoscipl-> ta aplikacja nie
> jest rozwijana już od 3 lat więc może być przestarzała orazhttp://code.google.com/p/django-platnosci/-> tutaj twórcy piszą by

citos88

unread,
Mar 27, 2012, 4:31:10 PM3/27/12
to djan...@googlegroups.com
Ja stosuje właśnie ten moduł http://code.google.com/p/django-platnosci/ z jakimiś swoimi małymi zmianami (bez celery) i na produkcji jest jak najbardziej ok :)

perpetoom

unread,
Apr 7, 2012, 6:27:06 AM4/7/12
to djan...@googlegroups.com
Repozytorium django dot-pay zostało przeniesione do https://github.com/hoffmannkrzysztof/django-dotpay

Krzysztof Dorosz

unread,
Aug 6, 2012, 2:05:06 PM8/6/12
to djan...@googlegroups.com
Witam,

może przyda się komuś informacja, że powstała nowa aplikacja "django-getpaid", która ma na celu być uniwersalną logiką obsługi płatności za zamówienie w django, opierająca się na mechanizmie backendów obsługujących dowolne systemy płatności. Aplikacja zawiera dokumentacje i testy.

kod źródłowy - https://github.com/cypreess/django-getpaid

dokumentacja - http://django-getpaid.readthedocs.org/en/latest/

Pakiet jest także dostępny w standardowym systemie pakietowym Pythona PyPi

http://pypi.python.org/pypi/django-getpaid/

Na chwilę obecną podpięte są backendy PayU.pl (dawne Platnosci.pl) oraz Transferuj.pl

Pozdrawiam
DK

Tomek Kiedos

unread,
Aug 6, 2012, 4:44:50 PM8/6/12
to djan...@googlegroups.com
Hej, bardzo fajna wiadomość :)
Czy jest już jakieś produkcyjne (czytaj: przetestowane) wdrożenie oparte na tym? :)

--
Otrzymujesz tę wiadomość, ponieważ subskrybujesz grupę dyskusyjną Google o nazwie „django-pl - grupa polskiej społeczności Django”.
Aby wyświetlić tę dyskusję w internecie, odwiedź stronę https://groups.google.com/d/msg/django-pl/-/y4vx90Fl3E0J.

Aby zamieszczać posty w tej grupie, wyślij e-mail na adres djan...@googlegroups.com.
Aby anulować subskrypcję tej grupy, wyślij e-mail na adres django-pl+...@googlegroups.com.
Aby uzyskać więcej informacji, odwiedź tę grupę pod adresem http://groups.google.com/group/django-pl?hl=pl.


Krzysztof Dorosz

unread,
Aug 7, 2012, 1:15:44 AM8/7/12
to djan...@googlegroups.com
Wersja 1.1.1 powinna być juz production ready - aczkolwiek nie wdrozylem jeszcze softu opartego na tej apce.  Niedlugo bedzie. Zmiany jakis sie spodziewam ew jeszcze to poza modulami backendow, dodanie jakis helperów (ulatwiajacych typowe czynności), lepszego logowania.

Co do backendu PayU (Platnosci.pl) warto zwrocic uwage ze wykorzystuje django-celery task, wiec nie odpytuje synchronicznie ich serwera podczas requestu "online" o dane transakcji, tylko robi to asynchronicznie, co sprawia ze bedzie to duzo stabilniejsze rozwiazanie.

DK

3mpty

unread,
Oct 8, 2012, 12:44:22 PM10/8/12
to djan...@googlegroups.com
Mógłbyś udostępnić przykład projektu dla PayU? Próbowałem podpiąć się do konta na sandboxie PayU (konfiguracja backendu dodana, plus jednostka płatności PLN) i po przekierowaniu na stronę PayU dostaję kod błędu 201.

Łukasz Rekucki

unread,
Oct 8, 2012, 2:01:22 PM10/8/12
to djan...@googlegroups.com

201 to nie jest kod bledu tylko poprawna odpowiedz oznaczajaca ze zasob zostal stworzony.

Krzysztof Dorosz

unread,
Oct 8, 2012, 2:26:40 PM10/8/12
to djan...@googlegroups.com
Testowy projekt znajduje się tutaj:

Nie używałem tego z sandboxem PayU, ale na normalnym koncie działa bez zarzutów. Możesz ewentualnie podać jak dostać się do sandboxa tak żebym mógł przetestować po swojej stronie z sandboxem?

DK
 

Aby wyświetlić tę dyskusję w internecie, odwiedź stronę https://groups.google.com/d/msg/django-pl/-/04hghLXwy1AJ.

Krzysztof Dorosz

unread,
Oct 8, 2012, 2:29:56 PM10/8/12
to djan...@googlegroups.com
Skąd jest ta informacja?

Zgodnie z dokumentacją techniczną PayU http://www.payu.pl/sites/default/files/regulaminy_i_pliki/Dokumentacja_techniczna_systemu_PayU.pdf kod błedu 201 oznacza "inny chwilowy bład bazy". 

Możliwe więc, ze po prostu backend sandboxa im się wysypał podczas gdy 3empty go testował.

DK

On Oct 8, 2012, at 8:01 PM, Łukasz Rekucki wrote:

201 to nie jest kod bledu tylko poprawna odpowiedz oznaczajaca ze zasob zostal stworzony.


Łukasz Rekucki

unread,
Oct 8, 2012, 3:31:46 PM10/8/12
to djan...@googlegroups.com
2012/10/8 Krzysztof Dorosz <cypr...@gmail.com>:
> Skąd jest ta informacja?

Jak ktoś pisze, że od serwera dostaje jakiś kod to na ogół można
założyć, że chodzi o HTTP. Jeśli nie, to wypadałoby aby piszący np.
zamieścił odpowiedź.

Natomiast autorom API gratuluję wysysłanie odpowiedzi "200 OK" z
napisem "ERROR" w środku. I podpisów MD5 bez użycia HMAC. Good luck.

--
Łukasz Rekucki

3mpty

unread,
Oct 8, 2012, 5:26:39 PM10/8/12
to djan...@googlegroups.com
Troszkę ogarnąłem kod backendu i uświadomiłem sobie gdzie leży przyczyna, otóż sandbox jest całkowicie osobnym tworem, z osobną db, dlatego pluł błędem dot. db bo nie miał takiego poi.

Sandbox jest pod adresem: https://sandbox.payu.pl czyli inny gateway ale nie udało mi się zmusić gepaid do współpracy z sandboxem nawet po zamianie _GATEWAY_URL. Sandbox ma tą zaletę, że rejestracja jest bardzo szybka, wystarczy tylko potwierdzić via email.

Dla odmiany na normalnym koncie, po zaznaczeniu w panelu płatności testowych wszystko działa jak należy.

Krzysztof Dorosz

unread,
Oct 9, 2012, 2:31:01 AM10/9/12
to djan...@googlegroups.com
To jak wygląda to API to pozostawię bez komentarza. Jak chcesz więcej to zajrzyj do API z transferuj.pl :)

DK

Krzysztof Dorosz

unread,
Oct 9, 2012, 2:35:35 AM10/9/12
to djan...@googlegroups.com
Tak - ja właśnie nie testowałem rozwiązania na sandboxie, tylko na koncie produkcyjnym z włączoną płatnością testową (szczerze mówiąc nawet nie wiedziałem, że jest sandbox). Dziwne wobec tego, że sandbox nie działa z czymś co poprawnie działa z ich systemem produkcyjnym... 

DK

3mpty

unread,
Oct 9, 2012, 8:19:45 AM10/9/12
to djan...@googlegroups.com
Struktura ich serwisów jest tragiczna. Pytanie: czy to normalne, że każdy payment w trybie testowym zostaje mi 'in progress'? Po stronie płatności widnieją jako zakończone.

blackbit

unread,
Oct 17, 2012, 7:13:49 AM10/17/12
to djan...@googlegroups.com
Próbuję właśnie wykorzystać Twoją obsługę płatności w swoim projekcie (backend transferuj.pl). Generalnie wszystko działało ok, kiedy uruchamiałem aplikację lokalnie z DEBUG=True. Nie było problemów z płatnościami rzeczywistymi i testowymi. Problem pojawił się jednak po umieszczeniu aplikacji na serwerze testowym (DEBUG=False).

Poniżej najważniejszy fragment błędu jaki dostaję:
  File "/srv/panel/code/source/MyApp/urls.py", line 5, in <module>
    from GPShipment.views.orders import OrderView

  File "/srv/panel/code/source/MyApp/views/orders.py", line 2, in <module>
    from getpaid.forms import PaymentMethodForm

  File "/home/gsa/.virtualenvs/panel/local/lib/python2.7/site-packages/getpaid/forms.py", line 6, in <module>
    from getpaid.models import Order

ImportError: cannot import name Order


Moja implementacja oparta jest o przykład integracji z dokumentacji. Wygląda na to, że forms.py próbuje importować model, który nie jest zdefiniowany w ramach paczki getpaid (nie widzę go w getpaid/models.py). Definicja tego modelu znajduje się w mojej aplikacji, więc nie jest widoczna z poziomu getpaid/forms.py

W zasadzie, to wygląda na to, że problem ten istnieje przy DEBUG=True, jednak nie wiem czemu nie wyszło to wcześniej.

Czy masz jakieś sugestie lub pomysł na to, jak można to elegancko rozwiązać? Może błąd ten jest konsekwencją jakiegoś mojego niedopatrzenia podczas integracji?

Pozdrawiam,
blackbit

Krzysztof Dorosz

unread,
Nov 8, 2012, 6:24:01 AM11/8/12
to djan...@googlegroups.com
Wygląda to na jakiś problem importowania zbyt wcześnie. Order jest ustawiany w module getpaid.models dopiero po zawolaniu register_to_payment

Sprobuj przetestowac jeszcze kod z mastera na githubie (usunalem tam drobny bug z importami wlasnie). Najlepiej jakbys mogl pokazac przykladowy kod ktory powoduje ten problem.

DK

blackbit

unread,
Nov 8, 2012, 8:48:07 AM11/8/12
to djan...@googlegroups.com
Witam,
Dokładnie był to problem z importowaniem, który udało mi się już jakiś czas temu rozwiązać. Pomogło przeniesienie linijki:
from getpaid.forms import PaymentMethodForm

na koniec pliku z widokiem OrderView. Od tego momentu wszystko już działa jak należy.

Pozdrawiam,
blackbit
Reply all
Reply to author
Forward
0 new messages