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
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();
            }
            $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>
Exemple #3
0
                    $merchantData = $merchantData[0];
                    if ($merchantData->name == 'paymentid') {
                        $customerId = $merchantData->value;
                        $allcustomers = op_CustomersGetAll();
                        if (isset($allcustomers[$customerId])) {
                            $paysys = 'FONDY';
                            $hash = 'OPL_' . $requestData->payment_id;
                            $summ = $requestData->amount / 100;
                            // деньги то в копейках
                            $orderStatus = $requestData->order_status;
                            //а нету ли уже такой транзакции?
                            if (opl_CheckTransaction($hash)) {
                                //проверяем состояние платежа
                                if ($orderStatus == 'approved') {
                                    //регистрируем новую транзакцию
                                    op_TransactionAdd($hash, $summ, $customerId, $paysys, 'NOPE');
                                    //вызываем обработчики необработанных транзакций
                                    op_ProcessHandlers();
                                }
                            } else {
                                //здесь по логике должен быть ответ о том, что это дубль
                            }
                        } else {
                            // тут должен быть вопль о том, что невалидный пользователь aka merchantData->value
                        }
                    }
                }
            }
        }
    }
}
Exemple #4
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;
}
Exemple #5
0
 }
 //обработка входящего платежа
 if ($action == 'payment') {
     if (sber_CheckGet(array('amount', 'receipt', 'number'))) {
         $hashClean = $_GET['receipt'];
         $hashStore = 'SBERBANK_' . $hashClean;
         $summ = $_GET['amount'];
         $paysys = 'SBERBANK';
         $note = 'some debug info here';
         $customer_id = $_GET['number'];
         $date = date("Y-m-d\\TH:i:s");
         $allcustomers = op_CustomersGetAll();
         if (isset($allcustomers[$customer_id])) {
             if (sber_CheckTransaction($hashStore)) {
                 //регистрируем новую транзакцию
                 op_TransactionAdd($hashStore, $summ, $customer_id, $paysys, $note);
                 //вызываем обработчики необработанных транзакций
                 op_ProcessHandlers();
                 $replyPayment = '
                 <?xml version="1.0" encoding="utf-8"?>
                 <response>
                 <code>0</code>
                 <date>' . $date . '</date>
                 <message>Платеж успешно обработан</message>
                 </response>
                 ';
             } else {
                 $replyPayment = '
                 <?xml version="1.0" encoding="utf-8"?>
                 <response>
                 <code>0</code>
Exemple #6
0
         <Comment></Comment>
         </Response>';
     $reply = trim($reply);
     die($reply);
 }
 //ловим запрос на пополнение счета
 if ($_GET['QueryType'] == 'pay') {
     if (cpay_CheckGet(array('Amount', 'TransactionDate'))) {
         $amount = $_GET['Amount'];
         $payDate = $_GET['TransactionDate'];
         //если абонент найден по платежному ID регистрируем транзакцию
         if (isset($allcustomers[$customerid])) {
             $note = 'hash:' . mysql_real_escape_string($hash) . ' date:' . mysql_real_escape_string($payDate);
             if (cpay_CheckTransaction($hashPrepared)) {
                 //регистрируем новую транзакцию
                 op_TransactionAdd($hashPrepared, $amount, $customerid, $paysys, $note);
                 //вызываем обработчики необработанных транзакций
                 op_ProcessHandlers();
             }
             //выцепляем ее внутренний ID
             $transactionExtID = cpay_GetTransactionID($hashPrepared);
             $resultPayCode = 0;
         } else {
             $resultPayCode = 21;
             $transactionExtID = '';
         }
         $reply = '<?xml version="1.0" encoding="UTF-8"?>
                 <Response>
                 <TransactionId>' . $hash . '</TransactionId>
                 <TransactionExt>' . $transactionExtID . '</TransactionExt>
                 <Amount>' . $amount . '</Amount>
Exemple #7
0
// Ловим сообщения о совершенных платежах в виде:
// ?action=bill_input&bill_identifier=2887647236&summ=10&pkey=aaa444455656&date=2012-04-02T18:20:15
if (isset($_GET['action'])) {
    if ($_GET['action'] == 'bill_input') {
        $customerid = vf($_GET['bill_identifier'], 3);
        //если все нормально регистрируем новую транзакцию
        if (!empty($customerid)) {
            $summ = $_GET['sum'];
            $hash = $_GET['pkey'];
            $ophash = 'PB' . $_GET['pkey'];
            $date = date("Y-M-d H:i:s");
            //точно ли уникальный хеш?
            if (pb_IsHashUnique($ophash)) {
                //не нулевая ли сумма
                if ($summ > 1 and !ispos($summ, ',')) {
                    op_TransactionAdd($ophash, $summ, $customerid, 'PBANK', $date);
                    op_ProcessHandlers();
                    $transaction_ok = '
               <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                <ResponseExtInputPay>
                  <extInputPay>
                   <inner_ref>' . $hash . '</inner_ref>
                </extInputPay>
              </ResponseExtInputPay>
               ';
                    print $transaction_ok;
                } else {
                    $sum_fail = '
				<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
				<ResponseExtInputPay>
					  <errorResponse>
Exemple #8
0
         die($reply);
     }
 }
 //
 // создание платежа
 //
 if (isset($rawXml['Request']['Payment'])) {
     $allcustomers = op_CustomersGetAll();
     $paymentCustomerId = mysql_real_escape_string($rawXml['Request']['Payment']['Account']);
     $hashClean = mysql_real_escape_string($rawXml['Request']['Payment']['OrderId']);
     $hash = 'EP_' . $hashClean;
     $summ = mysql_real_escape_string($rawXml['Request']['Payment']['Amount']);
     if (isset($allcustomers[$paymentCustomerId])) {
         if (!ep_GetTransaction($hash)) {
             //регистрируем новую транзакцию, вызываем хендлеры, получаем айдишку
             op_TransactionAdd($hash, $summ, $paymentCustomerId, 'EASYPAY', 'no debug info');
             op_ProcessHandlers();
             $newTransactionId = ep_GetTransaction($hash);
             $reply = '
         <Response>
         <StatusCode>0</StatusCode>
         <StatusDetail>Order Created</StatusDetail>
         <DateTime>' . date("Y-m-d\\TH:i:s") . '</DateTime>
         <PaymentId>' . $newTransactionId . '</PaymentId>
         </Response>
         ';
             $reply = trim($reply);
             die($reply);
         } else {
             //уже есть такая транзакцийка
             $reply = '
Exemple #9
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;
}
Exemple #10
0
     }
     */
     ////////////////////////������ ����������////////////////////////
     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);
         $orderid = $prog['1'];
         if (strpos($_POST['XML'], 'ErrorText') !== false) {
             //��������! ����� ���������!
             answer_to_ipay('error_time_out.txt', array('%TRX_ID%' => $orderid, '%SITE%' => $site));
         }
         //�������� ����������� �������������� ����������
         op_ProcessHandlers();
         answer_to_ipay('success.txt', array('%TRX_ID%' => $orderid, '%SITE%' => $site));
     }
 }
Exemple #11
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>");
}