function result($data) { $data->pay_summ = $_REQUEST["orderSumAmount"]; $data->pay_id = $_REQUEST["orderNumber"]; $data->user_id = $_REQUEST["customerNumber"]; $data->pay_type = $_REQUEST["typePay"]; if ($_REQUEST['checkOrder']) { $this->check_pay($data); } $code = $this->check_hash(); if (!$code) { parent::insert_pay($data); } $this->ya_response($code); exit; }
function result($data) { global $rmag_options; $data->pay_summ = $_REQUEST["OutSum"]; $data->pay_id = $_REQUEST["InvId"]; $data->user_id = $_REQUEST["shpa"]; $data->pay_type = $_REQUEST["shpb"]; $crc = strtoupper($_REQUEST["SignatureValue"]); $my_crc = strtoupper(md5("{$data->pay_summ}:" . "{$data->pay_id}:" . "" . $rmag_options['tworobopass'] . ":" . "Shp_item=" . $_REQUEST['Shp_item'] . ":" . "shpa={$data->user_id}:" . "shpb={$data->pay_type}")); if ($my_crc != $crc) { rcl_mail_payment_error($my_crc); die; } if (!parent::get_pay($data)) { parent::insert_pay($data); } echo 'OK'; exit; }
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 result($data) { global $rmag_options; $data->pay_summ = $_REQUEST["ik_am"]; $data->pay_id = $_REQUEST["ik_pm_no"]; $data->user_id = $_REQUEST["ik_x_user_id"]; $data->pay_type = $_REQUEST["ik_x_type"]; foreach ($_POST as $key => $value) { if (!preg_match('/ik_/', $key)) { continue; } $arr[$key] = $value; } $ikSign = $arr['ik_sign']; unset($arr['ik_sign']); if ($arr['ik_pw_via'] == 'test_interkassa_test_xts') { $secret_key = $rmag_options['intertestkey']; } else { $secret_key = $rmag_options['intersecretkey']; } ksort($arr, SORT_STRING); array_push($arr, $secret_key); $signStr = implode(':', $arr); $sign = base64_encode(md5($signStr, true)); if ($sign != $ikSign) { rcl_mail_payment_error($sign); die; } if (!parent::get_pay($data)) { parent::insert_pay($data); } exit; }