Exemple #1
0
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();
    }
}
Exemple #2
0
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);
}