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; }