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
{
    $hash = mysql_real_escape_string($hash);
    $query = "SELECT `id` from `op_transactions` WHERE `hash`='" . $hash . "'";
    $data = simple_query($query);
    if (!empty($data)) {
        return $data['id'];
    } else {
        return false;
    }
}
$required = array('command', 'txn_id', 'account', 'sum');
//если нас пнули объязательными параметрами
if (comepay_CheckGet($required)) {
    //это нас киви как-бы проверяет на вшивость
    if ($_GET['command'] == 'check') {
        $allcustomers = op_CustomersGetAll();
        $hash = 'COME_' . $_GET['txn_id'];
        $summ = $_GET['sum'];
        $customerid = trim($_GET['account']);
        $paysys = 'COMEPAY';
        $note = 'some debug info';
        //нашелся братиша!
        if (isset($allcustomers[$customerid])) {
            $transactionCheck = nvp_CheckTransaction($hash);
            //если еще нету такой транзакции регистрируем и обрабатываем новую
            if (!$transactionCheck) {
                //регистрируем новую транзакцию
                op_TransactionAdd($hash, $summ, $customerid, $paysys, $note);
                //вызываем обработчики необработанных транзакций
                op_ProcessHandlers();
            }
Exemple #3
0
function pbx_ReplyPayment($customerid, $summ, $rawhash)
{
    $allcustomers = op_CustomersGetAll();
    if (isset($allcustomers[$customerid])) {
        if (pbx_CheckHash($rawhash)) {
            //do the payment
            $hash = 'PBX_' . $rawhash;
            $paysys = 'PBANKX';
            $note = 'inputreference: ' . $rawhash;
            op_TransactionAdd($hash, $summ, $customerid, $paysys, $note);
            op_ProcessHandlers();
            $templateOk = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                    <Transfer xmlns="http://debt.privatbank.ua/Transfer" interface="Debt" action="Pay">
                     <Data xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="Gateway" reference="' . $rawhash . '">
                    </Data>
                    </Transfer>';
            $result = $templateOk;
        } else {
            $templateFail = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                        <Transfer xmlns="http://debt.privatbank.ua/Transfer" interface="Debt" action="Pay">
                        <Data xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ErrorInfo" code="7">
                        <Message>' . PBX_EX_DUPLICATE . '</Message>
                        </Data>
                        </Transfer>';
            $result = $templateFail;
        }
    } else {
        $templateFail = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                        <Transfer xmlns="http://debt.privatbank.ua/Transfer" interface="Debt" action="Pay">
                        <Data xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="ErrorInfo" code="2">
                        <Message>' . PBX_EX_NOT_FOUND . '</Message>
                        </Data>
                        </Transfer>';
        $result = $templateFail;
    }
    $result = trim($result);
    return $result;
}
/**
 * Mail notification handler
 * 
 * @param string $body
 * 
 * @return void
 */
function op_HandleMail($body)
{
    $opconfig = op_LoadConfig();
    $allcustomers = op_CustomersGetAll();
    $notify_mail = $opconfig['NOTIFY_MAIL'];
    $subject = "New OpenPayz transaction";
    mail($notify_mail, $subject, $body);
}
Exemple #5
0
function ns_CheckCustomer($customerId)
{
    global $minAmount, $maxAmount, $serviceName;
    $allcustomers = op_CustomersGetAll();
    if (isset($allcustomers[$customerId])) {
        $login = $allcustomers[$customerId];
        $allrealnames = ns_UserGetAllRealnames();
        $alltariffprices = ns_TariffGetPricesAll();
        $userData = simple_query("SELECT * from `users` WHERE `login`='" . $login . "'");
        //extracting tariff price
        if (!empty($userData)) {
            $userTariff = $userData['Tariff'];
        } else {
            $userTariff = false;
        }
        if ($userTariff) {
            $tariffPrice = $alltariffprices[$userTariff];
        } else {
            $tariffPrice = 0;
        }
        $result = '<?xml version="1.0" encoding="UTF-8" ?>
        <pay-response>
        <balance>' . @$userData['Cash'] . '</balance>
        <name>' . @$allrealnames[$login] . '</name>
        <account>' . $customerId . '</account>
        <service_id>' . $serviceName . '</service_id>
        <abonplata>' . $tariffPrice . '</abonplata>
        <min_amount>' . $minAmount . '</min_amount>
        <max_amount>' . $maxAmount . '</max_amount>
        <status_code>21</status_code>
        <time_stamp>' . date('d.m.Y H:i:s') . '</time_stamp>
        </pay-response>
        ';
    } else {
        $result = '<?xml version="1.0" encoding="UTF-8" ?>
        <pay-response>
        <status_code>-40</status_code>
        <time_stamp>' . date('d.m.Y H:i:s') . '</time_stamp>
        </pay-response>
        ';
    }
    $result = trim($result);
    return $result;
}
Exemple #6
0
 //��������� ����� ������
 $total=0;
 //��� �� ��� ��������? �������.
 $items=unserialize($order_array['items']);
 foreach($items as $id=>$count)	{
 $itemdata=fn_cat_get_itemdata($id);
 $summ=$itemdata['price']*$count;
 $total=$total+$summ;
 }
 answer_to_ipay('answer.txt',array('%ORDER_ID%'=>$orderid,'%AMOUNT%'=>$total));
 }
 */
 ////////////////////////������ ����������////////////////////////
 if (strpos($_POST['XML'], 'TransactionStart') !== false) {
     preg_match("/<PersonalAccount>(.*)<\\/PersonalAccount>/imU", $_POST['XML'], $order);
     $order_array = op_CustomersGetAll();
     $orderid = $order['1'];
     if (!isset($order_array[$orderid])) {
         answer_to_ipay('error_no_order.txt', array('%ORDER_ID%' => $orderid, '%SITE%' => $site));
     }
     preg_match("/<RequestId>(.*)<\\/RequestId>/imU", $_POST['XML'], $hash_arr);
     $hash = $hash_arr['1'];
     $paysys = 'IPAYBY';
     $note = iconv("WINDOWS-1251", "UTF-8", $_POST['XML']);
     //������������ ����� ����������
     op_TransactionAdd($hash, $total, $orderid, $paysys, $note);
     answer_to_ipay('trans_start.txt', array('%TRX_ID%' => $orderid));
 }
 //////////////////////��������� ����������/////////////////////////
 if (strpos($_POST['XML'], 'TransactionResult') !== false) {
     preg_match("/<PersonalAccount>(.*)<\\/PersonalAccount>/imU", $_POST['XML'], $prog);
Exemple #7
0
function pltz_Check($login, $password, $payElementID, $transactionID, $account)
{
    global $serviceId;
    $extTransactionID = 0;
    //Платеж в системе Вашей системе
    $result = 0;
    //Поле кода завершения (см. Приложение А. Список кодов завершения)
    $comment = '';
    //Необязательном поле,  служебный комментарий.
    //Здесь записываем в базу поступивший запрос, для того что бы потом разобраться какие запросы к Вам приходили. Уникальный индификатор запроса - $transactionID
    if (pltz_AuthLogin($login, $password)) {
        //Проверяем $login, $password, что бы отсекать чужие запросы
        if ($payElementID == $serviceId) {
            //Ищем сервис для оплаты (по $payElementID) в Вашей БД
            $allcustomers = op_CustomersGetAll();
            if (isset($allcustomers[$account])) {
                //Проверяем в БД абонента (по $account)
                //Здесь нужно сохранить платеж в базу, со статусом не оплачен
                $extTransactionID = 'PLTZ_' . pltz_GetFreeId();
                //Записываем сюда номер Вашей транзакции.
                $comment = 'Ожидание платежа';
                //Коментарий не обязателен
            } else {
                $result = 5;
                //Идентификатор абонента не найден (Ошиблись номером). Здесь может быть другая ошибка, например 79 (Счет абонента не активен)
                $comment = 'Идентификатор абонента не найден';
                //Коментарий не обязателен
            }
        } else {
            $result = 7;
            //Прием платежа запрещен провайдером
        }
    } else {
        $result = 7;
        //Прием платежа запрещен провайдером
    }
    pltz_sendResponse("<extTransactionID>{$extTransactionID}</extTransactionID>\n     <account>{$account}</account>\n     <result>{$result}</result>\n     <comment>{$comment}</comment>");
}