Cześć,
Wymodziłem coś takiego:
$server = 'ssl.dotpay.pl'; $parameters = "id=12345&kwota=10.53&waluta=PLN&opis=Klucz 45634&lang=pl"; $fsocket = false; $curl = false; $result = false; if ( (PHP_VERSION >= 4.3) && ($fp = @http://www.php.net/fsockopen('ssl://' . $server, 443, $errno, $errstr, 30)) ) { $fsocket = true; } elseif (function_exists('curl_exec')) { $curl = true; } if ($fsocket == true) { $header = 'POST HTTP/1.0' . "\r\n" . 'Host: ' . $server . "\r\n" . 'Content-Type: application/x-www-form-urlencoded' . "\r\n" . 'Content-Length: ' . http://www.php.net/strlen($parameters) . "\r\n" . 'Connection: close' . "\r\n\r\n"; @http://www.php.net/fputs($fp, $header . $parameters); $platnosci_response = ''; while (!@http://www.php.net/feof($fp)) { $res = @http://www.php.net/fgets($fp, 1024); $platnosci_response .= $res; } @http://www.php.net/fclose($fp); } elseif ($curl == true) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "https://" . $server); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_TIMEOUT, 20); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $parameters); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $platnosci_response = curl_exec($ch); curl_close($ch); } else { http://www.php.net/die("ERROR: No connect method ...\n"); }
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.
Powinno zadziałać, ale głowy nie dam urwać.
if(http://www.php.net/isset($_POST['premsubmit'])) { $id = 1234; // Podaj swój indetyfikator $code= ''; // Podaj swoje kody $type= 'c1,sms'; // Podaj typy usług if(!$_POST['code']) { $error[] = 'Nie wprowadzono kodu aktywacyjnego'; } else { $handle = http://www.php.net/fopen('http://dotpay.pl/check_code.php?id=' . $id . '&code=' . $code . '&check=' . $_POST['code'] . '&type=' .$type . '&del=' . $del, 'r'); $status = http://www.php.net/fgets($handle, 8); $czas_zycia = http://www.php.net/fgets($handle, 24); http://www.php.net/fclose($handle); $czas_zycia = http://www.php.net/rtrim($czas_zycia); if(!$status) { $error[] 'Podano niepoprawny kod usługi'; } else { // Jeżeli kod jest poprawny } } }
@erix, skrypt jest odpowiednio przeze mnie przerobiony na DotPay.
@Tomasz K., czy to nie jest skrypt TYLKO do obsługi płatności SMS?
Jak jest odpowiednio przerobiony, jak nie widzę nigdzie sumy kontrolnej w parametrach? No chyba, że nie korzystasz z URLC.
Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)