Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ PHP _ Skrypt do DotPay

Napisany przez: servs 19.01.2012, 18:21:20

Cześć,

Wymodziłem coś takiego:

  1. $server = 'ssl.dotpay.pl';
  2.  
  3. $parameters = "id=12345&kwota=10.53&waluta=PLN&opis=Klucz 45634&lang=pl";
  4. $fsocket = false;
  5. $curl = false;
  6. $result = false;
  7.  
  8. if ( (PHP_VERSION >= 4.3) && ($fp = @http://www.php.net/fsockopen('ssl://' . $server, 443, $errno, $errstr, 30)) ) {
  9. $fsocket = true;
  10. } elseif (function_exists('curl_exec')) {
  11. $curl = true;
  12. }
  13.  
  14. if ($fsocket == true) {
  15. $header = 'POST HTTP/1.0' . "\r\n" .
  16. 'Host: ' . $server . "\r\n" .
  17. 'Content-Type: application/x-www-form-urlencoded' . "\r\n" .
  18. 'Content-Length: ' . http://www.php.net/strlen($parameters) . "\r\n" .
  19. 'Connection: close' . "\r\n\r\n";
  20. @http://www.php.net/fputs($fp, $header . $parameters);
  21. $platnosci_response = '';
  22. while (!@http://www.php.net/feof($fp)) {
  23. $res = @http://www.php.net/fgets($fp, 1024);
  24. $platnosci_response .= $res;
  25. }
  26. @http://www.php.net/fclose($fp);
  27.  
  28. } elseif ($curl == true) {
  29. $ch = curl_init();
  30. curl_setopt($ch, CURLOPT_URL, "https://" . $server);
  31. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
  32. curl_setopt($ch, CURLOPT_HEADER, 0);
  33. curl_setopt($ch, CURLOPT_TIMEOUT, 20);
  34. curl_setopt($ch, CURLOPT_POST, 1);
  35. curl_setopt($ch, CURLOPT_POSTFIELDS, $parameters);
  36. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  37. $platnosci_response = curl_exec($ch);
  38. curl_close($ch);
  39. } else {
  40. http://www.php.net/die("ERROR: No connect method ...\n");
  41. }


Niestety pomimo tego, że działało mi to z platnosci.pl, to nie chce działać z DotPay. Po prostu wyświetla pustą stronę i koniec. A powinien być wybór metody płatności.

Jakby ktoś rzucił na to okiem i coś podpowiedział, to będę wdzięczny.

Pozdrawiam,
Bartek.

Napisany przez: erix 19.01.2012, 19:41:18

Przecież PayU (platnosci.pl) i DotPay, to dwie różne usługi. To samo API nie zadziała, z tego co wiem.

Musisz, więc, poszukać skryptu przeznaczonego dla DotPay.

Napisany przez: Tomasz K. 19.01.2012, 20:07:29

Powinno zadziałać, ale głowy nie dam urwać.

  1. if(http://www.php.net/isset($_POST['premsubmit']))
  2. {
  3. $id = 1234; // Podaj swój indetyfikator
  4. $code= ''; // Podaj swoje kody
  5. $type= 'c1,sms'; // Podaj typy usług
  6.  
  7. if(!$_POST['code'])
  8. {
  9. $error[] = 'Nie wprowadzono kodu aktywacyjnego';
  10. }
  11. else
  12. {
  13. $handle = http://www.php.net/fopen('http://dotpay.pl/check_code.php?id=' . $id . '&code=' . $code . '&check=' . $_POST['code'] . '&type=' .$type . '&del=' . $del, 'r');
  14. $status = http://www.php.net/fgets($handle, 8);
  15. $czas_zycia = http://www.php.net/fgets($handle, 24);
  16. http://www.php.net/fclose($handle);
  17. $czas_zycia = http://www.php.net/rtrim($czas_zycia);
  18. if(!$status)
  19. {
  20. $error[] 'Podano niepoprawny kod usługi';
  21. }
  22. else
  23. {
  24. // Jeżeli kod jest poprawny
  25. }
  26. }
  27. }

Napisany przez: servs 19.01.2012, 21:13:21

@erix, skrypt jest odpowiednio przeze mnie przerobiony na DotPay.

@Tomasz K., czy to nie jest skrypt TYLKO do obsługi płatności SMS?

Napisany przez: erix 20.01.2012, 09:50:18

Jak jest odpowiednio przerobiony, jak nie widzę nigdzie sumy kontrolnej w parametrach? No chyba, że nie korzystasz z URLC.

Napisany przez: Tomasz K. 20.01.2012, 17:03:17

Cytat(servs @ 19.01.2012, 21:13:21 ) *
@erix, skrypt jest odpowiednio przeze mnie przerobiony na DotPay.

@Tomasz K., czy to nie jest skrypt TYLKO do obsługi płatności SMS?

To jest skrypt do obsługi płatności Dotpay. Na pewno działa z przelewem i SMS.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)