konto usunięte

Temat: Płatności PayPal przez PHP

Witam serdecznie,
mam takie problem z przekazaniem płatności przez PayPal. Napisałem sobie formularz

<form method="post" action="https://www.paypal.com/cgi-bin/webscr">
<input type="hidden" value="_xclick" name="cmd" />
<input type="hidden" value="lc" name="PL" />
<input type="hidden" value="PLN" name="currency_code" />
<input type="hidden" name = "return" value = "<?php echo "$url2/index.html";?>" />
<input type="hidden" name = "notify_url" value = "<?php echo "$url2/modules/sklep/pay.php?p=$nrzam";?>" />
<input type="hidden" value="5M1111111111111" name="business" />
<input type="hidden" value="<?php echo $allmout;?>" name="amount" />
<input type="hidden" value="Zamówienie numer <?php echo $nrzam;?>" name="item_name" />
</form>
<br/><br/><br/><br/><p align = "center"><a href = "https://www.paypal.com/cgi-bin/webscr" onclick="document.forms['zal'].submit();return false;"><img src = "img/online.gif" border = "0" height="153" width="145"></a></p>


Mam następujące problemy:
- po wywołaniu tego formularza nie wyświetla mi się formatka ta do przelewania pieniędzy
- jak ustawić lokalizację skryptu do potwierdzania płatności (chodzi o informowanie sklepu o tym iż klient wykonał poprawną płatność) - czy to jest zmienna "notify_url"?


Łukasz
Marcin B.

Marcin B. Webdirector,
Wspólwłasciciel
Contip.net

Temat: Płatności PayPal przez PHP

Formatka się nie pojawi, bo przecież masz w niej same pola formularza typu hidden. Jedyne co tu może się pojawić to jakiś obrazek kierujący do linkiem do PayPala.

Jeśli chcesz przekazać te wartości hiddenowe do PayPala to musisz dać jakiś input typu submit.

konto usunięte

Temat: Płatności PayPal przez PHP

tzn po kliknięciu na ten obrazek (po wysłaniu formularza) widzę formularz logownia do Paypala - a nie formularz płatności...
Paweł Malisak

Paweł Malisak PHP Developer

Temat: Płatności PayPal przez PHP

Łukasz Peta:
tzn po kliknięciu na ten obrazek (po wysłaniu formularza) widzę formularz logownia do Paypala - a nie formularz płatności...

Żeby płacić przez paypal trzeba mieć tam konto?
Zygmunt Rynduch

Zygmunt Rynduch .NET/Sharepoint
Developer, (nie
szukam pracy ale jak
się ...

Temat: Płatności PayPal przez PHP

nie siedzę ostatnio w temacie, ale wg mnie podejrzanie wygląda to:

document.forms['zal']

co to jest to 'zal'?
Adam W.

Adam W. senior php
developer, Symfony

Temat: Płatności PayPal przez PHP

Zygmunt Rynduch:
nie siedzę ostatnio w temacie, ale wg mnie podejrzanie wygląda to:

document.forms['zal']

co to jest to 'zal'?

może żal?

a żeby płacić przez paypal trzeba się tam zarejestrować.

konto usunięte

Temat: Płatności PayPal przez PHP

Adam W.:
Zygmunt Rynduch:
nie siedzę ostatnio w temacie, ale wg mnie podejrzanie wygląda to:

document.forms['zal']

co to jest to 'zal'?

może żal?
za grzechy chyba :D

Niekoniecznie żeby płacić przez PP trzeba być zarejestrowanym użytkownikiem, jeśli przed zakupem nie zalogowałeś się na swoje konto PP system automatycznie prosi o podanie loginu i hasła bądź danych do karty (przynajmniej w moim wypadku).

Śmieszne natomiast jest testowanie, trzeba założyć sandbox developerski, do niego założyć konto biznesowe i konto użytkowników (też testowe), zalogować się do panelu i obserwować, jak dla mnie pokręcone jak nic.
Marcin B.

Marcin B. Webdirector,
Wspólwłasciciel
Contip.net

Temat: Płatności PayPal przez PHP

Łukasz Peta:
tzn po kliknięciu na ten obrazek (po wysłaniu formularza) widzę formularz logownia do Paypala - a nie formularz płatności...
No wiadomo, bo to jest najzwyklejszy link (ten javascipt w onclicku jest nieprawdiłowy). Wstaw zwykłego submita tak jak napisałem wcześniej.

konto usunięte

Temat: Płatności PayPal przez PHP

mam konto na Paypalu :) Faktycznie teraz działają płatności...
w DotPay było coś takiego że PayPal po płatności Pozytywnej/Negatywnej wysyłał wiadomość do sklepu (poprzez POST) o statusie transakcji... tutaj w PayPalu jak to się robi?

to jest to:
<input type="hidden" name = "notify_url" value = "<?php echo "pay.php?p=$nrzam";?>" />

??
Jakub Rajchowiak

Jakub Rajchowiak właściciel,
Rajchowiak.com

Temat: Płatności PayPal przez PHP

PayPal uzywa procesu zwanego PDT.
Link do opisu:
https://cms.paypal.com/us/cgi-bin/?&cmd=_render-content...

konto usunięte

Temat: Płatności PayPal przez PHP

Niekoniecznie musi być to PDT. Może to być również IPN. O wiele łatwiej go spiąć z aplikacjami ecommerce.

Informacja w $_POST, która leci transparentnie na adres notify_url powinna być odpowiednio zwalidowana. Poniżej masz fragmenty kodu który obsługuje PayPal IPN u nas w Gekosale. Wyciąłem fragmenty specyficzne dla aplikacji.

Kontroler (akcja kontrolera notify jest przekazywana jako notify_url)


public function notify(){
App::getModel('paypal')->notifyPayment($_POST);//metoda do ktorej przekazesz dane z Paypal
}


W modelu

public function notifyPayment($Data){
if ($this->validateIpn($Data))
{
if ($this->ipnData['payment_status'] == 'Completed')
{ //TUTAJ DODAJESZ KOD ODPOWIEDZIALNY ZA OBSLUGE ZMIAN STATUSU TRANSACKCJI
}
}
}


Metoda do walidacji to nic innego jak wysłanie otrzymanych danych w $_POST z dodatkowym parametrem cmd=_notify-validate , który zwróci informację czy transakcja jest poprawna. Nie jest to co prawda wymagane ale na pewno bezpieczniejsze.


public function validateIpn($Data)
{

$urlParsed = parse_url($this->gatewayUrl);
$postString = '';

foreach ($Data as $field=>$value)
{
$this->ipnData["$field"] = $value;
$postString .= $field .'=' . urlencode(stripslashes($value)) . '&';
}

$postString .="cmd=_notify-validate";

// setting the curl parameters.
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $this->gatewayurl);
curl_setopt($ch, CURLOPT_VERBOSE, 1);

// turning off the server and peer verification(TrustManager Concept).
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postString);
$this->ipnResponse = curl_exec($ch);
if (eregi("VERIFIED", $this->ipnResponse))//EREGI jest deprecated wiec lepiej korzystac z preg_match
{
//TRANSAKCJA ZWERYFIKOWANA
return true;
}
else
{
//TRANSAKCJA NIEZWERYFIKOWANA
return false;
}
}



Cały model wrzuciłem Ci do wglądu na stronę http://gekosale.pl/paypal/paypal.txtAdam Piotrowski edytował(a) ten post dnia 22.05.10 o godzinie 12:24

konto usunięte

Temat: Płatności PayPal przez PHP

Zaloguj się na konto paypal i tam masz dział z generowaniem buttonów, obsługą zwrotnych komunikatów sukces/błąd itd.
I wiele innych parametrów. Po co się tak męczyć.

Jak już chcesz samemu to robić to jest coś takiego jak API
Wystarczy zapoznać się jakie parametry są wymagane.

Obsługa bez logowania też jest możliwa, w koncie biznesowym chyba jest to domyślnie włączone. Faktycznie przy płatnościach prosi o założenie konta, ale po wejściu na rejestracje można od razu przystąpić do płatności kartą, lub przelewem.

konto usunięte

Temat: Płatności PayPal przez PHP

Jak już chcesz samemu to robić to jest coś takiego jak API
Wystarczy zapoznać się jakie parametry są wymagane.

Zgadza się, jest API , które wymaga do działania przynajmniej transactionid, którego nie będziesz miał jeżeli nie zostanie zrealizowana transakcja w normalny sposób ;). Samym API możesz obsługiwać transakcje które już wpadły np. sprawdzać statusy, tworzyć reversale, zwroty (refund). Można też przez API tworzyć transakcje ale tutaj masz nie 1 a 3 kroki tj. billing agreement, recurring payment i dopiero autoryzacja transakcji. Wywołanie tego w NVP jest cholernie trudne.

Do samych transakcji i statusów lepiej zapiąć to co pokazałem wcześniej. Jak chcesz później jeszcze bawić się w zwroty i dokładne listowanie historii transakcji to zepnij API :).

Cały opis API NVP masz tutaj https://cms.paypal.com/us/cgi-bin/?cmd=_render-content&...

Przykłady https://cms.paypal.com/cms_content/US/en_US/files/devel...Adam Piotrowski edytował(a) ten post dnia 22.05.10 o godzinie 18:09

konto usunięte

Temat: Płatności PayPal przez PHP

Mam taki problem i nie wiem jak to ugryźć.
Mam button na stronie z płatnością przy której jest select i możliwość wybrania opcji które różnią się cenowo.
Klient wybiera sobie coś z selekta i następuje przekierowanie do paypala.
W konfiguracji buttona jest pole do wpisania adresu kiedy nastąpi finalizacja transakcji. I to działa.
Ale jak zrobić coś takiego aby wstawić tam zmienną która zwróci mi to, co klient wybrał z selekta, abym wiedział ile zapłacił i za co konkretnie?

Z tego co widze to parametry można wpisywać przy generowaniu bottona.
W zwrotnym adresie nie widze tej możliwości.

Nie korzystam z API, a jedynie standardowy button wygenerowany na stronie paypal.Mariusz M. edytował(a) ten post dnia 01.06.10 o godzinie 14:32



Wyślij zaproszenie do