Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: PayPal Sand Box ...
Forum PHP.pl > Forum > PHP
azahiel
Witam
na poczatku postu chcialbym prosic o nie dopisywanie postow w stylu "poszukaj na google" lub "o tym juz bylo pisane" "poszukaj na forum" itd.. jesli nie potrafisz mi pomoc nie pisz glupich komentarzy!


Moj problem dotyczy Paypala, zalozylem konto SANDBOX na paypalu sciagnolem kod php do obslugi Paypala ale nieza bardzo wiem jak go podwiac do swojej strony i jak trestowac
---------------------------
FILE DESCRIPTIONS
-----------------
config.inc.php
Main configuration file for the script
=Glowny plik konfiguracyjny dla skryptu

global_config.inc.php
Contain global functions used through the script
=zawiera globalne funkcje uzywane w przez skrypt

payment.php
A pre-configred payment button for testing purposes
=konfiguracja przycisku platnosci dla testow

orderform.php
A pre-configred order form for testing purposes
=konfiguracja formulaza zamowienia dla testow

process.php
Sends transaction information to PayPal for further processing
=wyslij informacje o tranzakcji do Paypal dla przyszlych procesow

success.php
Displayed when transaction submitted to Paypal is approved
=wyswietla sie gdy tranzakcja wyslana do paypala odniosla sukces

cancelled.php
Displayed when transaction submitted to PayPal fails
=wyswietla sie gdy tranzakcja nie zostala wykonana pomyslcnie

styles.css
Example stylesheet
=przykladowe style

ipn.php
Receives post back information from PayPal's API and parses the results
odsyla informacje spowrotem do paypal API i parsuje wynik

ipn_success.php
Executed if an IPN transaction is successful
=wykonuje sie jesli IPN tranzakcji zakonczyl sie sukcesem

ipn_error.php
Executed if an IPN transaction errors
=wykonuje sie jesli IPN tranzakcjie sie nie powiodl
-----------------------------------------------------------
To jest stuktura plikow jakie zassalem z paypala jest tam troche napisane o konfiguracji ale zwracam sie z prosba do kogos kto juz podczepial Paypala do stronki i moglby udzielic mi kikla rad jak sie do tego zabrac??

chcialbym zrobic stronke na ktorwej osoba klient wybierala by czas trwania uslugi na podstawie tego generowala by sie kwota dfo zaplaty, -- i tu ppodejrzewam trzebaby bylo przeslac ta kwote do serwisu paypal wraz z damy mi moijego konta na paypalu
klient by dokonal oplaty i potem by wrocil na moja strone spowrotem, (chodzi mi o ten sposob pobierania oplat - bo paypal oferuje kilka opcji)

Prosilebym o opisanie tematu jak dziala paypal moze byc "lopatologicznie" tak by laik zrozumial (to post przyda sie akze innym czytelnikom) z jakas wskazowka jak sie podpina kod payala i jakie kroki nalezy wykonywac.

ps: czytaklem juz postry jak to sie robi z serwisami polskimi ale tu chodzi mi konkretnie o Paypala,
Dziekuje z Gory za sensowne odpowiedzi
i Pozdrawiam
NuLL
Jesli nie jestes w stanie czytac dokumentacji i zrozumiec jak to dziala nie powinienes sie brac za cos takiego. Jeszcze wynikna bledy i ktos bedzie musial za nie placic - to tak lekko OT.

Pro -> php
azahiel
NIgdzie nie napisalem ze nie potrafie czytasc dkumentacji!!!!
Chialem zeby ktos przyblizyl zasade dziala nia Paypala bym miał lepsze swiatlo na cala sprawe,


Tak pozatym to czlowieku odpusc sobie ta prace jako MOderator bo poza uszczypliwoscia to za wiele nie wnosisz, do tego forum, nie wiem czy urosles juz do takiego poziomu ze dicinki sprawaiaja Ci przyjemnosc ale dobra rada daj sobie spokoj bo kiedys pekniesz z nabrzmialosci pychy.
splatch
azahilel zastanów się czasami co mówisz, hamuj emocje. Zadajesz na forum więcej pytań niż odpowiedzi i do tego reagujesz agresją na próbę zmoderowania tematu.. słowem zachowujesz się jak dwuletnie dziecko mimo, że nim nie jesteś. Człowieku - zastanów się póki napiszesz kolejnego posta.
azahiel
pewnie smile.gif to ja musze sie zastanawiac a moderator nie musi, i to nie jest agresja tylko uwafga na takim smamym poziomie, i moze zakonczymy juz ten temat boo nie taki mialbyc cel tego tematu.
orson
witam ...

ale NuLL ma rację ... w manualu paypala (ten duży pdf) jest wszystko łopatologicznie napisane, są przykłądowe formularze, wyjaśnienie co robią poszczególne pola ... tam wszystko jest - wiem bo już nie raz integrowałem paypala i zawsze wystarczał mi manual.

generalnie musisz przygotować form z wymaganymi polami i wysłać ... resztę robi paypal (rejestracja, płatność itp) ... oprócz tego musisz przygotować plik php który będzie wywoływany przez paypala przy każdorazowej zmianie i będzie brał id transakcji które przyjdzie z paypala i w bazie uaktualniał dane ... taki mały tip: ten plik który będzie wywoływany, zrób sobie w nim print_r($_POST, true) i zapisuj to do pliku z time()_rand(0,1000) za każdym razem ... dlatego że nie widać co paypal ci przesyła a to się bardzo przydaje ... tip2: sand box czasami nawala ... poprostu zaczynają lecieć błędy a wszystko wygląda że jest ok ... musisz poczekać (max 15 min) a wszystko wróci do normy ...

pozdrawiam
azahiel
Baardzo dziekuje za odpowiedz smile.gif, iszkoda ze musiay sie w tm temacie pojawic taki nieprzyjemne komentarze ale cuz "zycie..."
Apropo PDFa do paypala to znalazlem "Sandbox User Guide.pdf" jeli to jest to to zaczynam lektore lecz jsli jest inny PDF manual ktory trafia od razu w temat to prosze o linka. (?)



ps:
Jesli ktors dostrzega ze reprezentuje niski poziom lub cos w tym stylu to prosze o wyrozumialosc, ale podejzewam ze kazdy z tutaj obecnych kidys zaczynal i byl na takim samym poziomie i zapewne uwielbial kiedy jakis guru slal mu tomentarze do posta

orson - jeszcze raz dziekuje za sensowna odpowiedz
pozdrawiam
orson
witam ...

plik się nazywa PP_WebsitePaymentsStandard_IntegrationGuide.pdf można go ściągnąć przez sanbx lub normalne konto: rejstracja (TIP: NIE REJESTRUJ SI W JAKO PL exclamation.gif! - ograniczona funkcjonalność), logowanie, merchant i tam gdzieś jest link ... 154 strony 2.5 mb ... jest tam wszystko co potrzebujesz ..

pozdrawiam
azahiel
dzieki, juz znalazlem i wlasniew studiuje manuala, wygenerowalem kilka przyciskow i badam temat, mam jeszcze pytanie wyczytalem ze moge przeslac <input do paypala z jakas moja zmienna ktora zostanie spowrotem zwrocona do mnie mowwie o zmiennych ->Passthrough, z tego co zrozumialem moze przeslac w formie zmienne o ID-produktu i spowrotem zostana ione zwrocone do mnie, czy moge w zmienna "Passthrough" przeslac np ID_sesji by uzytkownik wracajac na moja strone dlaej byl zalogowany do serwisu?? czy realizuje sie to w jakis inny sposob?
albo przeslac informacje o statusie platnosci, chodzi mi o to ze jak klient dokona zaplaty pomyslnie to wroci na moja strone "Gratuluje platosc za usluge zostala zakonczona pomyslnie" i wtedy pewien strypt otrzyma zmnienna np pay_ststut=1, co bede mogl wykozystac by w bazie danych ustawic statut platnosci na =1, by usluga ktora kupuje klien zostala aktywowana automatycznie?
Podejzewam ze za chwile sam moge dojsc do tego studiujac i testujac manuala, ale z gory dzizekuje za wskazowke - dzieki nim latwiej mi jest wychwytywac pewne rzeczy z opisow.
Pozdrawiam Serdecznie
orson
witam ...

nie exclamation.gif to działa inaczej: pay paly robi przekierowanie na stronę "ok" to znaczy że płatność została przyjęta, nie znaczy to że została zaakceptowana exclamation.gif nawet przy kartach kredytowych ... wszystkie zmiany stanu sygnalizowane są w tle przez wywołanie z serwera paypal twojego adresu ... tam jest przekazywany stan transakcji ... czyli: przekierowanie klienta nie jest jednoznaczne z tym że płatność zostanie zrealizowana !
to podstawowy błąd który ludzie popełniają (wiem - też go popełniłem) ...

pozdrawiam
nique
jesli chodzi o id sesji, to jest specjalna zmienna ktora do tego sluzy. nie pamietam jaka bo robilem paypala ostatnio z pol roku temu ale w jej angielskim opisie pisze cos w stylu "this custom field can be used for example transfering session_id" napewno cos takiego jest bo sam z tego korzystalem D; tylko pamietaj ze musisz zrobic skrypt ktory bedzie reagowal na zmiany statusu zamowienia. tj ktos zakupi ten Twoj produkt, i wyjdzie z Twojej strony a potem sobie wejdzie na swoje konto paypala i tam da "cancel" - Twoj skrypt musi wiec zareagowac na to - wiec nie uzalezniaj tego od session_id. niewiem czy mnie zrozumiales, bo nie jestem za dobrym tlumaczem biggrin.gif
azahiel
WItam
dalej sie mecze z tym Paypalem

Zrobilem juz wysylanie do sandboxa tak ze przesyla kwote nazwe produktu itd i wraca mi na strone success.php , tylko na tej stronie nie wyswietla mi zandych zmiennych questionmark.gif niewiem co paypal przesyla zrobilem na poczatku strony print_r($_POST); i dostaje pusta tablice zmiennychj Arraay () znaczy ze nic nie dostal z paypala sad.gif, orientujuecie sioe moze gdzie moze byc przyczyna?
zmienna mam ustawiona na:
$paypal[return_method]="2"; //1=GET 2=POST


Wskazowki do zmiennej
$paypal[post_method]="fso"; //fso=fsockopen(); curl=curl command line libCurl=php compiled with libCurl
tez mile widziene smile.gif

Z tego co sie doczytalem sa tu 3 sposoby przesylania $paypal[post_method]= fso, curl i libCurl nie chce sie bawic na razie z instalowanie tych pakietow na serwer,... chce zrobic najprosztszy sposob gdzie po platnosci koles wraca na moja strone..

Jesli bedziecie tak uprzejmi by wyslac mi przykladowo juz skonfigurwowany kod/pliki na seidokan@o2.pl bede bardzo wdzieczny, latwiej mi bedzie podejzec jak sie to konfiguruje, ..bo na razie sie z tym troche mecze.

Moja strona nie bedzie potrzebowala zadnych danych o uzytkowniku mam tam byc tylko miejsce w ktorym klient wybiera z formulaza $czas_trwania_uslugi ktory pomnozony przez cene za usluge -> bedzie dawal kwote do zaplaty:
czyli $_POST[kasa_do_zaplaty] -> to bedzie mialo isc do skryptu plikow z Paypala wraz ze zmnienymi o
  1. <?php
  2. $_post[id_klienta]  $_POST[id_produktu] $_post[nazwa produktu]
  3. ?>
, potem klient mialby pliknac button ZAPLAC i przechodzi na Paypala strone... tam sie albo loguje albo zaklada konto placi albo nie i wraca na moja strone.. jedynie co potrzebuje to przeslac zmienna $_POST[zaplacono]=1 hce ustawic status w bazie po pomyslenie wykonanej zaplacie.

dziekuje za pomoc i czas poswiecony na odpowiedz do tego posta
pozdrawiam
orson
witam ...

wywołanie success.php nie zawiera żadnych danych ... i tak jak pisałem musisz zrzucać do pliku ... wtedy zobaczysz że poza przekierowaniem z paypala serwer otwiera 2 połączenie w tle i tam wysyła wszystkie dane ...

pozdrawiam
azahiel
Dziekuje orson za wskazowke tylko wlasnie tu jest moj problem ze nie orientuje sie w ktorym miejscu wpisac kod kory by pobieral print_r($_post) i zapisywal do piliku, mogłbys toche lopatologiczniej wyjasnic jak sieporuszac w tych plikach paypala
Cytat
oprócz tego musisz przygotować plik php który będzie wywoływany przez paypala przy każdorazowej zmianie i będzie brał id transakcji które przyjdzie z paypala i w bazie uaktualniał dane ... taki mały tip: ten plik który będzie wywoływany, zrób sobie w nim print_r($_POST, true) i zapisuj to do pliku z time()_rand(0,1000) za każdym razem ...
mogłbys naswietlic jak zmontowac ten plik i gdzie go umiescic, poruszam sie na razie w paypalu po omacku, dziekuje z gory za Twoje wskazowki bardzo mi one pomagaja kroczyc przez tego paypala
Pozdrawiam
orson
witam ...

oto fragment formularza którego używałem w jednym z projektów:
Kod
<form action="https://www.paypal.com" method="post" id="paypalForm" accept-charset="UTF-8">
<!-- pola obowiązkowe -->
<input type="hidden" name="cmd" value="_ext-enter">
<input type="hidden" name="redirect_cmd" value="_xclick">
<!-- email sprzedawcy - business id -->
<input type="hidden" name="business" value="" />
<!-- ten string wróci do ciebie z paypala - nie pamiętam ale chyba zawsze: na ok, na cancel i na notiffy, PER TRANSAKCJA -->
<input type="hidden" name="custom" value="" />
<!-- notiffy url - ten url zostanie wywołany przez paypal po zmianie statusu
<input type="hidden" name="notify_url" value="" />
<!-- powrót z płatności -->
<input type="hidden" name="return" value="" />
<!-- anulowanie płatności -->
<input type="hidden" name="cancel_return" value="" />
</form>


w notiffy url dajesz sobie print do pliku posta i dalej już jest łatwo ...
mam nadzieje że pomoże ...

pozdrawiam
azahiel
Przeanalizowalem to co napisales zaczynajac od

  1. <input type="hidden" name="notify_url" value="php_paypal/ipn/ipn.php" />


ktory przesyla ipn.php i krok po kroku doszedlem do tego ze switch w tym pliku - uzywajac metody fso wyknuje case'a

  1. <?php
  2. $result=fsockPost($paypal[url],$_POST);
  3. ?>


idac dalej tym tropem znalazlem w pliku global_config.inc.php funkcje

  1. <?php
  2. function fsockPost($url,$data) {..} 
  3. ?>


nie za bardzo jeszce wiem jaka role pelnia tu pliki ipn.php
z tego co sie doszukalem sledzac kod zauwazylem ze wykonywane jest polaczenie
  1. <?php
  2. $fp=@fsockopen($ssl . $web[host],$web[port],$errnum,$errstr,30);
  3. ?>


z ktorego pobierane sa dane:
  1. <?php
  2.  fputs($fp, "POST $web[path] HTTP/1.1\r\n");
  3. fputs($fp, "Host: $web[host]\r\n");
  4. fputs($fp, "Content-type: application/x-www-form-urlencoded\r\n");
  5. fputs($fp, "Content-length: ".strlen($postdata)."\r\n");
  6. fputs($fp, "Connection: close\r\n\r\n");
  7. fputs($fp, $postdata . "\r\n\r\n");
  8. ?>


domyslam sie ze funkcja eregi() z plpiku ipn.php prasuje zmienna $postdata (zawarta w funkcji fsockPost($url,$data)) szukajac wyrazenia "VERIFIED" -
  1. <?php
  2. if(eregi("VERIFIED",$result)) 
  3. { include_once('./ipn_success.php'); } 
  4. ?>


ale nie do konca jestesm pewien
moglbyc minie naprowadzic w ktorym miejscu zrobic zapis do pliku i czy wlasnie ta funkcja fsockPost($url,$data) dostaje dane spowrotem z Paypala? I czy to w tej wlasnie funkcji powinienem wstawic zapis danych do pliku [to o czym pisales wczesniej print_r($_POST, true)]

Czy tym tokiem myslenia ide w dobrym kierunku?

-------------------------------------------------------------
ps:
Dziekuje za wskazówki orson bardzo mi one pomagaja.
Pozdrawiam
orson
witam ...

hmm ... dump do pliku to jest debug ... on nie jest wymagany do niczego, ja robiłem dumpa w 3 linijce (w 2 tworzyłem plik z nazwą: time().'_'.rand() biggrin.gif ) co do wysyłania danych post do serwera: to są funckje do automatycznego sprawdzania statusów ... wysyłasz id i serwer odpowiada (takie web serwices ale bez xml) nie jest to potrzebne do działania ... przydaje się w panelu admina do zarządzania ale to jest wyższa szkoła jazdy - na początek proponuje zająć się zmianami statusów transakcji ...

jeżeli są jakieś zmiany (akceptacja, płatność, odrzucenie itp) to paypal sam na notiffy url wysyła info ... po prostu rób dumpa zawsze, testuj na sandboxie i dojdziesz co i jak ...

pozdrawiam
azahiel
Witaj

oki tylko sprawa wyglada tak kozystam z tych plikow zassanych z Paypala czli
orderform.php o tresci
Kod
<body>
<form method="POST" action="process.php">
Item Name: <input name="item_name" type="text" id="item_name" size="40">
Item Number:<input name="item_number" type="text" id="item_number" size="40">
Kwota do zaplaty: <input type="text"  name="amount" value="150">
Nazwa produktu: <input type="text"  name="item_name" value="NAzwa produktu">
<input type="submit" value=" Pay ">
</form>

gdzie plik process.php wykonuje
  1. //Configuration File
  2. include_once('includes/config.inc.php'); 
  3. //Global Configuration File
  4. include_once('includes/global_config.inc.php');
  5. ?> 
  6. <html>
  7. <head><title>::php PayPal::</title></head>
  8. <body onLoad="document.paypal_form.submit();">
  9. <form method="post" name="paypal_form" action="<?=$paypal[url]?>">
  10. <?php 
  11. //show paypal hidden variables
  12. showVariables(); 
  13. ?> 
  14. <center><font face="Verdana, Arial, Helvetica, sans-serif" size="2" color="333333">tranzakcja sie wykonuje Processing Transaction . . . </font></center>
  15. </form>
  16. </body>  
  17. </html>

w pliku config.inc.php odpowiednio podkonfigurowalem sobie zmienne by wysylal mi do sandboxa na moje konto, no i ok wszystko fajnie wysyla, po zakonczonej operachi wraca na strone success.php ale nie dostaje np. <?=$_POST[txn_id]?> ani zadnej innej danej z paypala? moje pytanie to w ktorym miejsci (pliku) zrobic tego dumpa, -> podczepis pod zmienna?? w pliku config.inc.php mam ta zmienna do ktorej standardowo przyczepiony byl wpis
  1. <?php
  2. $paypal[notify_url]="php_paypal/ipn/ipn.php";
  3. ?>
tak wiec za bardzo nie orientuje sie gdzie zrobic tego dumpa i w ktorym pliku, wiec nie za bardzo wiem jak to polaczyc bo piszesz ciagle o zmiennej notiffy url w pliku success.php nie znalazlem by cos mi odbieralo ta zmienna? Wydaje mi sie ze nawet jak by cos wracalo z paypala to musialo by wracac do konkretnego pliku tak wiiec gdyby wracalo do success.php to bym sobie w tym pliku zrobim skrypcik ktory zczytywal by print_r[$_POST] i kilka linijek kodu otwierajacego moj plik_dane_z_paypala.txt gdzie by zapisywal tablice post i zamknal plik, wlasnie z tym pytanie sie zwracam , w ktorym pliku zrobic tego dumpa? Bo dalej nie rozumiem za bardzo Twoich wstazuwek gdyz zmienna notify_url wysylana jest do paypala z wartoscia "php_paypal/ipn/ipn.php"
Jak widac nie jest tak prosto smile.gif
dziki za odp. pozdrawiam
orson
witam ...

nigdy nie używałem gotowca z paypala ... mam napisaną swoją kalsę i ona obsługuje wszystkie płatności ... ściągnąłem ten toolkit i po pobieżnym przejrzeniu wydaje mi się że skoro wywoływany jest ipn.php (przekazany w notify url) to tam trzeba umieścić wywołanie dumpa postu ...
tak się tylko upewnie: ten url podany w notify jest poprawny questionmark.gif pod katalogi itp ... da się do niego dotrzeć itd questionmark.gif

ps. ten kod mogli by chociaż powcinać trochę ... ehh ...

pozdrawiam
azahiel
Udalo sie smile.gif wylaczylem Auto return na stronie uzytkownika Paypala w Profil->Website Payment Preferences=|| i skrypcik zapisujacy do pliku w Sucess.php - w sumie do tak jak pisales orson gdzie go przekieruje tam mi przesle dane, tylko zastanawia mnie kwestja bezpieczenstwa, bo w ioopcjach Website Payment Preferences jest mozliwosc przesylania TOKENA w celu zwiekszenia zabezpieczenia, moje pytanie teraz to czy ta metoda jest bezpieczna ? Nastepne pytanie czy to co przychodzi postem mozna uzywac do zmiany statusu w bazie, zauwazylem ze oni parsuja to co przyjdzie szukajac wyrazenia [payer_status] => verified

oto tablica jaka zwraca


Kod
Array (
[payment_date] => 19:26:54 Feb 25, 2006 PST
[txn_type] => web_accept
[last_name] => nazwisko
[residence_country] => US
[item_name] => nazwa produktu
[payment_gross] => 300.00
[mc_currency] => USD
[business] => email_wierzyciela@blee.pl
[payment_type] => instant
[verify_sign] =>AH4uhB-doXGoC3OO02yFPGlFCT2pAp95NyWrovP28hS0KnzcUNVte81f
[payer_status] => verified
[test_ipn] => 1
[tax] => 0.00
[payer_email] => email_palatnika@blee.pl
[txn_id] => 2HB35479A5637945H
[quantity] => 1
[receiver_email] => email_wierzyciela@blee.pl
[first_name] => Imie
[payer_id] => 4AVPZFNDACUB2
[receiver_id] => RUMKHJXVJGXGN
[item_number] => produkt nr 123
[payer_business_name] => kurczepieczone.com
[payment_status] => Completed
[payment_fee] => 9.00
[mc_fee] => 9.00
[shipping] => 0.00
[mc_gross] => 300.00
[custom] => [charset] => windows-1252 [notify_version] => 2.0
)


mam pytanko orson ktore z tych zmiennych sa przydatne wazne, chce wylozystac je do zmiany statusu w bazie o potwierdzeniu tranzakcji. i w sumie widze kilka ktore moglbym wykozystac ale dobra rada sie przyda na pewno, dizeki za wskazowki bez tego pewnie nie doszedl bym do tego w tym czasie smile.gif
pozdrwiam
orson
witam ...

nigdy się nie spotkałem z błędnym przekierowaniem ...

co do gotowca ... to z tego co mi się wydaje to on używa curla by wysłać dane postem questionmark.gif zamiast zwykłego forma (pól typu hidden) questionmark.gif? nie stosowałem takiego podejścia ...

hmm ... co msg o nie szyfrowaniu: to chyba coś z sandboxem ... jak submitujesz forma to łączysz się przez https questionmark.gif

pozdrawiam
azahiel
Hej
Orson znalazlm blad w konfiguracji, wiec moj ostani post w sumie niema zastosowania (przepraszam czytelnikow sad.gif ) oki juz mnie przekieowuje na konkretny plik i zapisuje do pliku, tylko jest z mojej strony jedno pytanie, bo: by przekierowal zmienne t o trzeba mu wylaczyc w ustsaweniach by nie zwracal strony na dany URL i nie mozna skozytadc z TOKENA , wec martwie sie o zabesieczenia tranza\kcji, jesli te zmienne sa rzesylane bez certyfikatu SSL questionmark.gif w sumie dostaje zmienne zapisuja soe do pliku itd, jelsi mozesz mi wskazac ktra zmienna sie kierowac przy ustawaianu statusu w bazie, tak by zmieniac status z 0 np na 1 czyli zapacone i jajk sie ama skrypt przy CANEL tranzakcjach? - bybym baredzow wdzieczny,
3maj sie i przepraszma za bledy ale sen to cos czeg omi trzeba smile.gif
koliberek123
Jeśli chodzi o integracje paypal polecam zajrzec tutaj: www.irytek.com
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.