Beispiel #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();
    }
}
Beispiel #2
0
 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();
         }
         $good_reply = '
         <?xml version="1.0"?>
         <response>
         <osmp_txn_id>' . $hash . '</osmp_txn_id>
         <result>0</result>
         </response>
         ';
         die(trim($good_reply));
     } else {
         $bad_reply = '
         <?xml version="1.0"?>
         <response>
         <osmp_txn_id>' . $hash . '</osmp_txn_id>
         <result>4</result>
Beispiel #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;
}
Beispiel #4
0
function ns_PaymentProcessing($payId, $summ, $customerid, $note)
{
    global $serviceName;
    $hash = '24NS_' . mysql_real_escape_string($payId);
    $note = mysql_real_escape_string($note);
    if (ns_CheckTransaction($hash)) {
        op_TransactionAdd($hash, $summ, $customerid, '24NONSTOP', $note);
        op_ProcessHandlers();
        $result = '<?xml version="1.0" encoding="UTF-8" ?>
            <pay-response>
            <pay_id>' . $payId . '</pay_id >
            <service_id>' . $serviceName . '</service_id>
            <amount>' . $summ . '</amount>
            <status_code>22</status_code>
            <description>' . $serviceName . '</description>
            <time_stamp>' . date('d.m.Y H:i:s') . '</time_stamp>
            </pay-response>';
    } else {
        //if duplicate hash
        $result = '<?xml version="1.0" encoding="UTF-8" ?>
                <pay-response>
                <status_code>-100</status_code>
                <time_stamp>' . date('d.m.Y H:i:s') . '</time_stamp>
                </pay-response>';
    }
    $result = trim($result);
    return $result;
}
Beispiel #5
0
function pltz_Payment($login, $password, $transactionID, $payTimestamp, $payID, $payElementID, $account, $amount, $terminalId)
{
    $extTransactionID = 0;
    //Платеж в системе Вашей системе
    $result = 0;
    //Поле кода завершения (см. Приложение А. Список кодов завершения)
    $comment = '';
    //Необязательном поле,  служебный комментарий.
    //Здесь записываем в базу поступивший запрос, для того что бы потом разобраться какие запросы к Вам приходили. Уникальный индификатор запроса - $transactionID
    if (pltz_AuthLogin($login, $password)) {
        //Проверяем $login, $password, что бы отсекать чужие запросы
        $extTransactionID = 'PLTZ_' . pltz_GetFreeId();
        //Записываем сюда номер Вашей транзакции
        if (pltz_CheckTransaction($extTransactionID)) {
            //Обязательно нужно проверить(по $payID) платеж в Вашей системе, если платеж оплачен -  возвращаем result - 0
            $hash = $extTransactionID;
            $summ = $amount / 100;
            // деньги то в копейках
            $customerid = $account;
            $paysys = 'PLATEZHKA';
            $note = 'transactionID:' . $transactionID . ' amount:' . $amount;
            //регистрируем новую транзакцию
            op_TransactionAdd($hash, $summ, $customerid, $paysys, $note);
            //вызываем обработчики необработанных транзакций
            op_ProcessHandlers();
            $result = 0;
            //ОК
            $comment = 'Платеж выполнен';
            //Коментарий не обязателен
        } else {
            $result = 0;
            //ОК
        }
    } else {
        $result = 7;
        //Прием платежа запрещен провайдером
    }
    pltz_sendResponse("<extTransactionID>{$extTransactionID}</extTransactionID>\n      <account>{$account}</account>\n     <result>{$result}</result>\n     <comment>{$comment}</comment>");
}