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(); } }
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>
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; }
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; }
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>"); }