function success()
 {
     global $rmag_options;
     $data = array('pay_id' => $_REQUEST["InvId"], 'user_id' => $_REQUEST["shpa"]);
     if (parent::get_pay((object) $data)) {
         wp_redirect(get_permalink($rmag_options['page_successfully_pay']));
         exit;
     } else {
         wp_die(__('A record of the payment in the database was not found', 'wp-recall'));
     }
 }
 function result($data)
 {
     global $rmag_options;
     $secret_key = $rmag_options['WO_SECRET_KEY'];
     $data->pay_summ = $_REQUEST["WMI_PAYMENT_AMOUNT"];
     $data->pay_id = $_REQUEST["WMI_PAYMENT_NO"];
     $data->user_id = $_REQUEST["USER_ID"];
     $data->pay_type = $_REQUEST["TYPE_PAY"];
     if (!isset($_REQUEST["WMI_SIGNATURE"])) {
         $this->print_answer("Retry", "Отсутствует параметр WMI_SIGNATURE");
     }
     if (!isset($_REQUEST["WMI_PAYMENT_NO"])) {
         $this->print_answer("Retry", "Отсутствует параметр WMI_PAYMENT_NO");
     }
     if (!isset($_REQUEST["WMI_ORDER_STATE"])) {
         $this->print_answer("Retry", "Отсутствует параметр WMI_ORDER_STATE");
     }
     // Извлечение всех параметров POST-запроса, кроме WMI_SIGNATURE
     foreach ($_REQUEST as $name => $value) {
         if ($name !== "WMI_SIGNATURE") {
             $params[$name] = $value;
         }
     }
     // Сортировка массива по именам ключей в порядке возрастания
     // и формирование сообщения, путем объединения значений формы
     uksort($params, "strcasecmp");
     $values = "";
     foreach ($params as $name => $value) {
         //Конвертация из текущей кодировки (UTF-8)
         //необходима только если кодировка магазина отлична от Windows-1251
         //$value = iconv("utf-8", "windows-1251", $value);
         $values .= $value;
     }
     // Формирование подписи для сравнения ее с параметром WMI_SIGNATURE
     $signature = base64_encode(pack("H*", md5($values . $secret_key)));
     //Сравнение полученной подписи с подписью W1
     if ($signature == $_REQUEST["WMI_SIGNATURE"]) {
         if (strtoupper($_REQUEST["WMI_ORDER_STATE"]) == "ACCEPTED") {
             // TODO: Пометить заказ, как «Оплаченный» в системе учета магазина
             if (!parent::get_pay($data)) {
                 //print_answer("Ok", "Заказ #" . $_POST["WMI_PAYMENT_NO"] . " оплачен!");
                 print "WMI_RESULT=" . strtoupper("Ok") . "&";
                 print "WMI_DESCRIPTION=" . urlencode("Заказ #" . $_POST["WMI_PAYMENT_NO"] . " оплачен!");
                 parent::insert_pay($data);
                 exit;
             }
         } else {
             // Случилось что-то странное, пришло неизвестное состояние заказа
             $this->print_answer("Retry", "Неверное состояние " . $_REQUEST["WMI_ORDER_STATE"]);
         }
     } else {
         // Подпись не совпадает, возможно вы поменяли настройки интернет-магазина
         $this->print_answer("Retry", "Неверная подпись " . $_REQUEST["WMI_SIGNATURE"], $signature);
     }
 }
 function success()
 {
     global $rmag_options;
     $data['pay_id'] = $_REQUEST["orderNumber"];
     $data['user_id'] = $_REQUEST["customerNumber"];
     if (parent::get_pay((object) $data)) {
         wp_redirect(get_permalink($rmag_options['page_successfully_pay']));
         exit;
     } else {
         wp_die(__('A record of the payment in the database was not found', 'wp-recall'));
     }
 }
function rcl_payments()
{
    global $rmag_options, $rcl_payments;
    if (!$rmag_options['connect_sale']) {
        return false;
    }
    if (!isset($rcl_payments[$rmag_options['connect_sale']])) {
        return false;
    }
    if (isset($_REQUEST[$rcl_payments[$rmag_options['connect_sale']]->request])) {
        $payment = new Rcl_Payment();
        $payment->payment_process();
    }
}
function rcl_payform($args)
{
    $payment = new Rcl_Payment();
    return $payment->get_form($args);
}