function pay_form($data)
 {
     global $rmag_options;
     $shop_id = $rmag_options['interidshop'];
     $test = $rmag_options['interkassatest'];
     $key = $rmag_options['intersecretkey'];
     if ($this->pay_type == 1) {
         $arr['ik_desc'] = __('Top up personal account', 'wp-recall');
     } else {
         if ($this->pay_type == 2) {
             $arr['ik_desc'] = __('Payment for the order on the website', 'wp-recall');
         } else {
             $arr['ik_desc'] = __('Other payments', 'wp-recall');
         }
     }
     $submit = $data->pay_type == 1 ? __('Confirm the operation', 'wp-recall') : __('Pay through payment system', 'wp-recall');
     if ($test == 1) {
         $ik_pw_via = 'test_interkassa_test_xts';
         $arr['ik_pw_via'] = $ik_pw_via;
         $test_input = "<input pay_type='hidden' name='ik_pw_via' value='{$ik_pw_via}'>";
     }
     $arr['ik_am'] = $data->pay_summ;
     $arr['ik_co_id'] = $shop_id;
     $arr['ik_pm_no'] = $data->pay_id;
     $arr['ik_x_user_id'] = $data->user_id;
     $arr['ik_x_type'] = $data->pay_type;
     ksort($arr, SORT_STRING);
     array_push($arr, $key);
     $signStr = implode(':', $arr);
     $ik_sign = base64_encode(md5($signStr, true));
     $fields = array('ik_co_id' => $shop_id, 'ik_am' => $data->pay_summ, 'ik_pm_no' => $data->pay_id, 'ik_desc' => $arr['ik_desc'], 'ik_x_user_id' => $data->user_id, 'ik_sign' => $ik_sign, 'ik_x_type' => $data->pay_type);
     $form = parent::form($fields, $data, 'https://sci.interkassa.com/');
     return $form;
 }
 function pay_form($data)
 {
     global $rmag_options;
     if ($rmag_options['robotest'] == 1) {
         $formaction = 'http://test.robokassa.ru/Index.aspx';
         $pass1 = $rmag_options['test_onerobopass'];
     } else {
         $formaction = 'https://merchant.roboxchange.com/Index.aspx';
         $pass1 = $rmag_options['onerobopass'];
     }
     $login = $rmag_options['robologin'];
     $crc = md5("{$login}:{$data->pay_summ}:{$data->pay_id}:{$pass1}:Shp_item=2:shpa={$data->user_id}:shpb={$data->pay_type}");
     $submit = $data->pay_type == 1 ? __('Confirm the operation', 'wp-recall') : __('Pay through payment system', 'wp-recall');
     $fields = array('MrchLogin' => $login, 'OutSum' => $data->pay_summ, 'InvId' => $data->pay_id, 'shpb' => $data->pay_type, 'shpa' => $data->user_id, 'SignatureValue' => $crc, 'Shp_item' => '2', 'Culture' => 'ru');
     $form = parent::form($fields, $data, $formaction);
     return $form;
 }
 function pay_form($data)
 {
     global $rmag_options;
     $merchant_id = $rmag_options['WO_MERCHANT_ID'];
     $secret_key = $rmag_options['WO_SECRET_KEY'];
     $curs = array('RUB' => 643, 'UAH' => 980, 'KZT' => 398, 'USD' => 840, 'EUR' => 978);
     $code_cur = isset($curs[$rmag_options['primary_cur']]) ? $curs[$rmag_options['primary_cur']] : 643;
     $fields = array('WMI_MERCHANT_ID' => $merchant_id, 'WMI_PAYMENT_AMOUNT' => $data->pay_summ . '.00', 'WMI_CURRENCY_ID' => $code_cur, 'WMI_PAYMENT_NO' => $data->pay_id, 'WMI_SUCCESS_URL' => get_permalink($rmag_options['page_successfully_pay']), 'WMI_FAIL_URL' => get_permalink($rmag_options['page_fail_pay']), 'WMI_CUSTOMER_ID' => $data->user_id, 'USER_ID' => $data->user_id, 'TYPE_PAY' => $data->pay_type);
     //Сортировка значений внутри полей
     foreach ($fields as $name => $val) {
         if (is_array($val)) {
             usort($val, "strcasecmp");
             $fields[$name] = $val;
         }
     }
     // Формирование сообщения, путем объединения значений формы,
     // отсортированных по именам ключей в порядке возрастания.
     uksort($fields, "strcasecmp");
     $fieldValues = "";
     foreach ($fields as $value) {
         if (is_array($value)) {
             foreach ($value as $v) {
                 //Конвертация из текущей кодировки (UTF-8)
                 //необходима только если кодировка магазина отлична от Windows-1251
                 $v = iconv("utf-8", "windows-1251", $v);
                 $fieldValues .= $v;
             }
         } else {
             //Конвертация из текущей кодировки (UTF-8)
             //необходима только если кодировка магазина отлична от Windows-1251
             $value = iconv("utf-8", "windows-1251", $value);
             $fieldValues .= $value;
         }
     }
     // Формирование значения параметра WMI_SIGNATURE, путем
     // вычисления отпечатка, сформированного выше сообщения,
     // по алгоритму MD5 и представление его в Base64
     $signature = base64_encode(pack("H*", md5($fieldValues . $secret_key)));
     //Добавление параметра WMI_SIGNATURE в словарь параметров формы
     $fields["WMI_SIGNATURE"] = $signature;
     $form = parent::form($fields, $data, 'https://wl.walletone.com/checkout/checkout/Index');
     return $form;
 }