Ejemplo n.º 1
0
 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;
 }
Ejemplo n.º 2
0
 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;
 }
Ejemplo n.º 3
0
 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);
     }
 }
Ejemplo n.º 4
0
 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;
 }