?> " /> <input type="hidden" name="id" value="<?php echo $stage->data['id']; ?> " /> <input type="hidden" name="bank" value="1" /> </div> <?php break; case exrates::WMR: case exrates::WMZ: require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/wmpay.php"; require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/pmpay.php"; $wm = new wmpay(); $pm = new pmpay(); ?> <form method="POST" action="https://paymaster.ru/Payment/Init" id="reserveFrm"> <div> <input type="hidden" name="LMI_MERCHANT_ID" value="<?php echo $pm->merchants[pmpay::MERCHANT_SBR]; ?> " /> <input type="hidden" name="LMI_PAYMENT_AMOUNT" value="<?php echo round($sbr->reserve_sum, 2); ?> " /> <input type="hidden" name="LMI_CURRENCY" value="RUB" /> <input type="hidden" name="LMI_PAYMENT_DESC_BASE64" value="<?php echo base64_encode(iconv('CP1251', 'UTF-8', 'Оплата по договору-оферте ' . $sbr->getContractNum() . '. ' . $ndss . '. Счет #' . $account->id . ', логин ' . $sbr->getLogin())); ?>
if (date('i') % 15 == 0) { // проверка статусов платежей paymaster при возврате require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/pmpay.php"; $pm = new pmpay(); if (DEBUG) { $pm->setDebugUrl($GLOBALS['host'] . '/norisk2/admin/pm-server-test.php'); } $pm->checkRefund(); } if (SERVER === 'release') { /* * @todo: https://beta.free-lance.ru/mantis/view.php?id=29134#c87337 * require_once($_SERVER['DOCUMENT_ROOT'] . "/classes/qiwipay.php"); $qiwipay = new qiwipay(); $qiwipay->checkBillsStatus($error); */ if (date('i') % 10 == 0) { // проверка статусов платежей paymaster require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/pmpay.php"; $pm = new pmpay(); $pm->checkInvoiced(); } } // запускаетс¤ в 0 и 1 минуту каждого часа с начала суток до 5 утра if (date('i') == 0 && date('H') >= 0 && date('H') <= 5) { $log = new log('minutly/' . SERVER . '-%d%m%Y[%H].log', 'w'); // разморозка ѕ–ќ $log->TRACE(payed::freezeUpdateProUsers()); } professions::autoProlongSpecs();
/** * Возврат денежных средств. * * @global type $DB * * @param type $payment_id ИД операции в paymaster * * @return bool */ public function refund($payment_id = null, $stage = null, $debug = false) { global $DB; $log = new log('pmpay/refundPayments-%d%m%Y.log', 'a', '%d.%m.%Y %H:%M:%S : '); $log->writeln("payment_id = [{$payment_id}], stage = [{$stage}], debug = [{$debug}]"); if (!$payment_id) { return false; } require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/pmpay.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/exrates.php'; $pmpay = new pmpay(); // Возврат осуществляется только при резервировании через WMR $sql = 'SELECT * FROM sbr_stages_payouts WHERE stage_id = ?i AND user_id = ?i AND is_refund IS NULL;'; $row = $DB->row($sql, $stage->id, $stage->sbr->emp_id); // Возврат осуществляется только для работодателей if ($row) { if (DEBUG) { $log->writeln('debug_mode = ON'); $pmpay->setDebugUrl($GLOBALS['host'] . '/norisk2/admin/pm-server-test.php'); } $operation = (array) $pmpay->refundPayments($payment_id, $row['credit_sum']); if ($operation && $operation['Status'] != 'FAILURE' && $operation['ErrorCode'] == 0) { if ($operation['Status'] == 'EXECUTING' || $operation['Status'] == 'PENDING') { $update = array('is_refund' => false, 'refund_id' => $operation['RefundID']); $this->refundStatusUpdate($update, $row['id']); } elseif ($operation['Status'] == 'SUCCESS') { $update = array('is_refund' => true, 'refund_id' => $operation['RefundID'], 'completed' => 'NOW()'); $this->refundStatusUpdate($update, $row['id']); } else { $update = array('is_refund' => null, 'refund_id' => $operation['RefundID']); $this->refundStatusUpdate($update, $row['id']); } } } else { $log = new log('pmpay/refundPayments-%d%m%Y.log', 'a', '%d.%m.%Y %H:%M:%S : '); $log->writeln("Ошибка выдачи SQL -- [{$DB->sql}]."); } }
<?php define('NO_CSRF', 1); $reqv = $_POST; // ƒл¤ автоплатежей, тк мы не знаем u_token_key require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/pmpay.php'; $account = new pmpay(); if (pmpay::getPaymentBillNO($reqv['LMI_PAYMENT_DESC']) > 0 && $reqv['PAYMENT_BILL_NO'] == '') { $reqv['PAYMENT_BILL_NO'] = pmpay::getPaymentBillNO($reqv['LMI_PAYMENT_DESC']); } $error = $reqv['LMI_PREREQUEST'] == 1 ? $account->prepare($reqv) : $account->checkdeposit($reqv); ////////////////////////////// echo $error ? $error : 'YES';
/** * Вывод страницы по платежным системам WebMoney /bill/webmoney/. */ public function webmoneyAction() { front::og('tpl')->page = 'index'; front::og('tpl')->type = 'webmoney'; front::og('tpl')->script = array('/scripts/bill2.js', 'md5.js'); require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/pmpay.php'; $wmpay = new wmpay(); $pmpay = new pmpay(); mt_srand(); $user = new users(); $user->GetUserByUID(get_uid(0)); if (date('Ymd') >= 20130301) { // #0022399 $wm_paymaster = 2; } else { $wm_paymaster = $user->wm_paymaster; $is_weekend = in_array(date('w'), array(0, 6)); if ($wm_paymaster === null || $wm_paymaster == 2 && $is_weekend) { // 1:wmr, 2:paymaster $wm_paymaster = 1; if (!$is_weekend) { $wm_paymaster += mt_rand(1, 100) > 50; } $user->setWmPaymaster($user->uid, $wm_paymaster); } } front::og('tpl')->_user = $user; front::og('tpl')->payment_number = mt_rand(1, 500000); front::og('tpl')->wmr_purse = $wmpay->wmzr[1]; if ($is_paymaster = $wm_paymaster == 2) { front::og('tpl')->payment_number = $pmpay->genPaymentNo(); front::og('tpl')->wmr_purse = $pmpay->merchants[pmpay::MERCHANT_BILL]; } front::og('tpl')->is_paymaster = $is_paymaster; front::og('tpl')->display('bill/bill_paysys.tpl'); }