function copayco_perform() { $sRequestType = NULL; try { $oCPC = copayco_api::instance(); // Получение ID транзакции для загрузки остальных параметров $sTaId = $oCPC->get_ta_id(); // Подготовка основных данных $aReq = $oCPC->get_request_data(); $sRequestType = $oCPC->get_request_type(); //в копейках же $nAmount = $aReq['amount'] / 100; $sCurrency = $aReq['currency']; $sCustom = $aReq['custom']; // Установка основных параметров $oCPC->set_main_data($sTaId, $nAmount, $sCurrency); // Установка custom-поля (если необходимо) $oCPC->set_custom_field($sCustom); //всякие штуки нужные для OpenPayz $hash = $sTaId; $customerid = trim($sCustom); $summ = $nAmount; $paysys = 'COPAYCO'; $note = $aReq['currency'] . ':' . $aReq['amount'] . ' ' . $aReq['custom'] . ' ' . $aReq['payment_mode']; $allcustomers = op_CustomersGetAll(); $transactionCheck = copayco_CheckTransaction($hash); if ($sRequestType == 'check') { // Проверка полученных данных // ограничимся просто проверкой на существование такого Payment ID и уникальности транзакции. if (!isset($allcustomers[$customerid])) { $oCPC->set_error_message('Unknown Payment ID'); } if (!$transactionCheck) { $oCPC->set_error_message('Transaction ID is not unique'); } } else { if ($aReq['status'] == 'finished') { //о, кажись нам пришли бабки, давайте нарисуем транзакцию для OpenPayz? //регистрируем новую транзакцию op_TransactionAdd($hash, $summ, $customerid, $paysys, $note); //вызываем обработчики необработанных транзакций op_ProcessHandlers(); } } } catch (copayco_exception $e) { // Обработка ошибок $nErrType = $e->get_error_type_code(); $nCode = $e->getCode(); $oCPC->set_error_message($e->getMessage() . ' ' . $nCode); } // Вывод результатов if ($sRequestType == 'perform') { $oCPC->output_perform_answer(); } else { $oCPC->output_check_answer(); } }
require_once '../../libs/api.openpayz.php'; header('Content-Type: text/html; charset=utf-8'); if (isset($_GET['customer_id'])) { $customer_id = vf($_GET['customer_id'], 3); } else { die('customer_id fail'); } $copConf = parse_ini_file("config/copayco.ini"); $sTaId = 'opcop_' . round(microtime(true) * 100); $nAmount = @$_POST['pushamount']; $sCurrency = $copConf['CURRENCY']; $sDescription = $copConf['DESC']; $sLang = $copConf['LANG']; $sCustom = $customer_id; try { $oCop = copayco_api::instance(); // Установка основных параметров $oCop->set_main_data($sTaId, $nAmount, $sCurrency); // Установка дополнительных параметров (если необходимо) $oCop->set_description($sDescription); $oCop->set_custom_field($sCustom); $oCop->set_language($sLang); $oCop->set_payment_mode(array('paycard', 'account', 'copayco', 'ecurrency', 'terminal', 'sms')); // Данные (в виде строки HTML-кода) для отображения формы способом 1 $sFormFields_1 = $oCop->get_form_fields(array('ta_id' => array('type' => 'hidden'), 'currency' => array('id' => 'currency1')), "\n"); // URL (строка) для подстановки в тэг <form ...> $sSubmitUrl = $oCop->get_submit_url(); $sException = NULL; } catch (copayco_exception $e) { $sException = print_r($e, true); }
/** * Get field name * @return string */ public function get_field_name() { $aFields = array_flip(copayco_api::get_field_number()); $nCode = (int) $this->get_field_code(); return $nCode && isset($aFields[$nCode]) ? $aFields[$nCode] : NULL; }