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 */
/* przykladowo: if ( $result['code'] == '99' ) { if ( rozliczamy_zamowienie_srodki_wplynely ) { // udalo sie zapisac dane wiec odsylamy OK echo "OK"; exit; } } else if ( $result['code'] == '2' ) { // transakcja anulowana mozemy również anulować zamowienie } else { // inne akcje } */
// jezeli wszytskie operacje wykonane poprawnie wiec odsylamy ok // w innym przypadku należy wygenerować błąd // if ( wszystko_ok ) { echo "OK"; exit; // } else { // // }
} else { /* TODO: obsługa powiadamiania o błędnych statusach transakcji*/ echo "ERROR: Blad danych ....\n"; echo "code=" . $result['code'] . " message=" . $result['message'] . "\n"; echo $platnosci_response; // powiadomienie bedzie wysłane ponownie przez platnosci.pl // ewentualnie dodajemy sobie jakis wpis do logow ... }