/** * Оплата через яндекс кассу. * * @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; }
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';