コード例 #1
0
 /**
  * функция проверяет параметры полченные от сервера SmsCoin в $_POST (Success URL или Fail URL)
  *
  * @param (array) $arrData - массив параметров ($_POST от сервера SmsCoin)
  * 
  * @return bool
  */
 static function checkStatusParams(&$arrData)
 {
     if (isset($arrData['s_purse']) && isset($arrData['s_order_id']) && isset($arrData['s_amount']) && isset($arrData['s_clear_amount']) && isset($arrData['s_status']) && isset($arrData['s_sign']) && isset($arrData['sd_service']) && $arrData['sd_service']) {
         return $arrData['s_sign'] === smscoin::refSign(array(SMSCOIN_CONF_BANK_SECRET_CODE, $arrData['s_purse'], $arrData['s_order_id'], $arrData['s_amount'], $arrData['s_clear_amount'], $arrData['s_status'])) ? true : false;
     } else {
         return false;
     }
 }
コード例 #2
0
ファイル: index.php プロジェクト: innova-market/JobExpert
        $payments->doAction($ourData[0], $ourData[1], smscoin::generateLogData($_POST, 'SUCCESS'), $_POST['s_order_id']);
    } else {
        // логируем ответ в файл
        $logData = logs::logPaymentData($_POST, 'WRONG PARAMS', 'SMSCoin');
        $payments->sendAdminEmail($logData, 'WRONG PARAMS');
    }
} elseif (isset($_GET['success']) && !empty($_POST)) {
    if (smscoin::checkStatusParams($_POST)) {
        $ourData = $payments->explodeServiceString($_POST['sd_service']);
        $payments->succesAnswer($ourData[0]);
    }
} elseif (isset($_GET['fail']) && !empty($_POST)) {
    if (smscoin::checkStatusParams($_POST)) {
        // логируем ответ в файл
        $logData = logs::logPaymentData($_POST, 'FAIL', 'SMSCoin');
        $payments->sendAdminEmail($logData, 'FAIL');
        $smarty->assignByRef('order_id', $_POST['s_order_id']);
        $smarty->assignByRef('amount', $_POST['s_amount']);
        $smarty->assign('include_template', SD_ROOT_DIR . 'core/mods/payments/smscoin/templates/smscoin.fail.tpl');
    }
} else {
    // проверяем наличие в сессии необходимых параметров и установлена ли цена в тарифной сетке для выбранной услуги
    if (isset($_SESSION['payment']) && isset($_SESSION['payment']['service']) && $payments->checkPriceInTariff($_SESSION['payment']['service'], $arrTariffs)) {
        $smsData = array('order_id' => time(), 'amount' => $arrTariffs[$_SESSION['payment']['service']], 'clear_amount' => 0, 'description' => $payments->generatePaymentDescription($_SESSION['payment']['service']), 'service' => $_SESSION['payment']['service'] . '::' . $_SESSION['payment']['id']);
        $smsData['sign'] = smscoin::refSign(array(SMSCOIN_CONF_BANK_ID, $smsData['order_id'], $smsData['amount'], $smsData['clear_amount'], $smsData['description'], SMSCOIN_CONF_BANK_SECRET_CODE));
        $smarty->assignByRef('smsData', $smsData);
        $smarty->assign('include_template', SD_ROOT_DIR . 'core/mods/payments/smscoin/templates/smscoin.pay.form.tpl');
    } else {
        $arrErrors[] = ERROR_PAY_SYSTEM_NOT_DEFINE_PRICE;
    }
}