function tzs_check_order_exist_p24() { global $wpdb; $errors = array(); $new_order = ''; $user_id = get_current_user_id(); $order = get_param('order'); $pay_count = get_param('pay_count'); $order_id = get_param('order_id'); $order_number = get_param('order_number'); $PrivatAPI = new privat24api(get_option('t3s_setting_merchant_id'), get_option('t3s_setting_merchant_pass')); $order_status = $PrivatAPI->CheckOrPaymentOrder($order, 1); $order_error = $PrivatAPI->getErrorMessage(); $order_state = $PrivatAPI->getPaymentState(); if ($order_error !== "no error") { array_push($errors, $order_error); } // Если статус = incomplete - пользователь не оплатил документ и с ним уже ничего не сделаешь if ($order_status == 0) { array_push($errors, "Предыдущая попытка оплаты счета не увенчалась успехом."); // Если не превышено кол-во попыток оплаты - увеличиваем счетчик попыток и изменяем номер счета if ($pay_count < get_option('t3s_setting_pay_count')) { $sql = $wpdb->prepare("UPDATE " . TZS_ORDERS_TABLE . " SET " . " pay_count=pay_count+1" . " WHERE id=%d AND user_id=%d;", intval($order_id), $user_id); if (false === $wpdb->query($sql)) { array_push($errors, "Не удалось увеличить количество попыток оплаты счета. Свяжитесь, пожалуйста, с администрацией сайта"); array_push($errors, $wpdb->last_error); } else { array_push($errors, "Увеличено количество попыток оплаты счета."); $new_order = $order_number . '.' . ($pay_count + 1); } } else { array_push($errors, "Исчерпано количество попыток оплаты счета."); } } elseif ($order_status == 1) { } elseif ($order_status == 2) { array_push($errors, "Счет уже оплачен."); } elseif ($order_status == 3) { array_push($errors, "Документ на оплату счета забракован системой Приват-24."); } elseif ($order_status == 4) { array_push($errors, "Обнаружен тестовый документ на оплату счета."); } elseif ($order_status == 5) { array_push($errors, "Документ на оплату счета находится в очереди системы Приват-24."); } $output = array('order_number' => $order, 'order_status' => $order_status, 'order_state' => $order_state, 'order_new_number' => $new_order, 'output_error' => implode('<br>', $errors)); return $output; }
<?php include "privat24api.php"; $obj = new privat24api(112273, "7aG38HK0tavfqft1i413No1kTRdX9WXh"); echo '<pre>'; print "GetAccountExtractPhys: " . "<br>"; $a1 = $obj->GetAccountExtractPhys("01.09.2015", "11.10.2015", "4731185603763589", 1); print_r($a1); print " Ошибка: " . $obj->getErrorMessage() . "<br>"; //$a3 = preg_grep("/ ([A-Z]{2}).(\d*).(\d*).(\d*)$/", $a1[1][$i]['TERMINAL'], $a2); for ($i = 0; $i < count($a1[1]); $i++) { $a3 = preg_match("/ (\\d*)\$/", $a1[1][$i]['TERMINAL'], $a2); if ($a2[0] != '') { echo 'i=' . $i . ' a3=' . $a3 . '<br>'; print_r($a2); } } echo '</pre>';