/**
 * Оплата через яндекс кассу.
 * 
 * @param type $type - тип оплаты
 * @param type $data - данные по параметрам покупаемой услуги
 *
 * @return \xajaxResponse
 */
function quickPaymentMasssendingYandexKassa($type, $data)
{
    $is_error = true;
    $uid = get_uid(false);
    $objResponse =& new xajaxResponse();
    $send_id = (int) $data['send_id'];
    $promo_code = (string) @$data['promo'];
    $pay_methods = array(quickPaymentPopup::PAYMENT_TYPE_CARD => yandex_kassa::PAYMENT_AC, quickPaymentPopup::PAYMENT_TYPE_YA => yandex_kassa::PAYMENT_YD, quickPaymentPopup::PAYMENT_TYPE_WM => yandex_kassa::PAYMENT_WM, quickPaymentPopup::PAYMENT_TYPE_ALFACLICK => yandex_kassa::PAYMENT_AB, quickPaymentPopup::PAYMENT_TYPE_SBERBANK => yandex_kassa::PAYMENT_SB);
    if (!isset($pay_methods[$type])) {
        return $objResponse;
    }
    $masssending = new masssending();
    $params = $masssending->getAccepted($send_id, $uid);
    if ($params) {
        $is_error = false;
        $bill = new billing(get_uid(false));
        //Допустимо использование промокодов
        $bill->setPromoCodes('SERVICE_MASSSENDING', $promo_code);
        $option = array('amount' => $params['pre_sum'], 'masssending_id' => $params['id']);
        //Формируем заказ
        $billReserveId = $bill->addServiceAndCheckout(masssending::OPER_CODE, $option);
        $payed_sum = $bill->getRealPayedSum();
        $payment = $pay_methods[$type];
        $yandex_kassa = new yandex_kassa();
        $html_form = $yandex_kassa->render($payed_sum, $bill->account->id, $payment, $billReserveId);
        $objResponse->script("\n            var qp_form_wrapper = \$\$('#quick_payment_masssending .__quick_payment_form');\n            if(qp_form_wrapper){    \n                qp_form_wrapper.set('html','{$html_form}');\n                qp_form_wrapper.getElement('form')[0].submit();\n            }\n        ");
        //сохранаем в сессию куда перейти при успешной покупке
        $_SESSION[quickPaymentPopup::QPP_REDIRECT] = '/bill/history/?period=3';
    }
    // Показываем предупреждение в случае ошибки
    if ($is_error) {
        $objResponse->script("\n            var qp = window.quick_payment_factory.getQuickPayment('masssending');\n            if(qp) qp.show_error('Возникла ошибка при оплате рассылки!');\n        ");
    }
    return $objResponse;
}
示例#2
0
require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/stdf.php';
require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/masssending.php';
require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/quick_payment/quickPaymentPopupMasssending.php';
session_start();
$id = __paramInit('int', 'id');
//Должен быть id рассылки
if (!$id) {
    include ABS_PATH . '/404.php';
    exit;
}
$uid = get_uid(false);
if (!$uid) {
    include ABS_PATH . '/404.php';
    exit;
}
$masssending = new masssending();
$params = $masssending->getAccepted($id, $uid);
if (!$params) {
    //должна существовать одобренная неоплаченная рассылка, принадлежащая текущему пользователю.
    include ABS_PATH . '/404.php';
    exit;
}
$text = reformat($params['msgtext'], 1000, false, true);
$calc = $masssending->Calculate(get_uid(false), array($params));
//print_r($calc);exit;
quickPaymentPopupMasssending::getInstance()->init(array('count' => $params['all_count'], 'count_pro' => $params['pro_count'], 'price' => $params['pre_sum'], 'send_id' => $id));
$stretch_page = true;
$header = '../header.php';
$footer = '../footer.html';
$content = 'tpl.masssending_pay.php';
include '../template2.php';