Ostatnio mam mały problem z platnosci.pl SMS. Otóż z tego co zrozumiałem czytając dokumentację wyglądało by na to że wszystko robię dobrze. Oczywiście się mylę bo coś nie działa.
Chce osiągnąć efekt podobny jak na nk.pl. Po wyborze usługi przenosi nas do serwisu platnosci.pl, gdzie wyświetlany jest koszt i kod sms jaki wysyłamy. A po wysłaniu wszystko robi za nas skrypt tj. aktywuje usługę.
kod odbioru płatności:
require_once('../config.php'); require_once('../funkcje.php'); $server = 'www.platnosci.pl'; $server_script = '/paygw/ISO/Payment/get'; function get_status($parts){ if ($parts[1] != PLATNOSCI_POS_ID) return array('code' => false,'message' => 'błędny numer POS'); //--- bledny numer POS if ($parts[8] != $sig) return array('code' => false,'message' => 'błędny podpis'); //--- bledny podpis switch ($parts[5]) { } } $parameters = "pos_id=" . PLATNOSCI_POS_ID . "&session_id=" . $_POST['session_id'] . "&ts=" . $ts . "&sig=" . $sig; $fsocket = false; $curl = false; $result = false; $fsocket = true; } elseif (function_exists('curl_exec')) { $curl = true; } if ($fsocket == true) { $header = 'POST ' . $server_script . ' HTTP/1.0' . "\r\n" . 'Host: ' . $server . "\r\n" . 'Content-Type: application/x-www-form-urlencoded' . "\r\n" . 'Connection: close' . "\r\n\r\n"; $platnosci_response = ''; $platnosci_response .= $res; } } elseif ($curl == true) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "https://" . $server . $server_script); 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 { } if (eregi("<trans>.*<pos_id>([0-9]*)</pos_id>.*<session_id>(.*)</session_id>.*<order_id>(.*)</order_id>.*<amount>([0-9]*)</amount>.*<status>([0-9]*)</status>.*<desc>(.*)</desc>.*<ts>([0-9]*)</ts>.*<sig>([a-z0-9]*)</sig>.*</trans>", $platnosci_response, $parts)) $result = get_status($parts); if ( $result['code'] ) { //--- rozpoznany status transakcji $pos_id = $parts[1]; $session_id = $parts[2]; $order_id = $parts[3]; $amount = $parts[4]; //-- w groszach $status = $parts[5]; $desc = $parts[6]; $ts = $parts[7]; $sig = $parts[8]; /* TODO: zmiana statusu transakcji w systemie Sklepu */ if( $status['code']=='99' ){ if( $order['amount']==$amount ){ } } } else { /* TODO: obsługa powiadamiania o błędnych statusach transakcji*/ // powiadomienie bedzie wysłane ponownie przez platnosci.pl // ewentualnie dodajemy sobie jakis wpis do logow ... }
ktoś ma jakiś pomysł
