function updateAction() { $model = new Profile(); if (isset($_POST['ajax'])) { // Add method to profile if (isset($_POST['model']) && $_POST['model'] == 'profiles_methods') { $profileMethod = new ProfileMethod(); @$this->performAjaxValidation($profileMethod); // Uncomment the line if AJAX validation is needed if ($_POST['action'] == 'create') { $profileMethod->fillFromArray($_POST, TRUE); } elseif ($_POST['action'] == 'update') { $methodID = (int) AF::get($_POST, 'method_id'); $profileID = (int) AF::get($_POST, 'profile_id'); $profileMethod = ProfileMethod::model()->findByPk(array('method_id' => $methodID, 'profile_id' => $profileID)); $profileMethod->fillFromArray($_POST); } if ($profileMethod->method_id == Method::METHOD_CC) { if (isset($_POST['flags']['filter']) && $_POST['flags']['filter']) { if (!$profileMethod->flags) { $profileMethod->flags = ''; } @$profileMethod->addFlags('filter'); } else { $profileMethod->removeFlags('filter'); } } if (!$profileMethod->flags) { $profileMethod->flags = ''; } if ($profileMethod->save()) { $link = AF::link(array('profiles' => 'update'), array('id' => $profileMethod->profile_id)); Message::echoJson('success', array('redirect' => $link)); } else { Message::echoJsonError(__('profile_method_not_' . $_POST['action'] . 'd') . '. ' . $profileMethod->errors2string); } } if (isset($_POST['getprofilemethodinfo'])) { $methodID = (int) AF::get($_POST, 'method_id'); $profileID = (int) AF::get($_POST, 'profile_id'); $methods = Method::model()->cache()->findAllInArray(); //$model = ProfileMethod::model()->find("profiles_methods_id=:profiles_methods_id", array(':profiles_methods_id'=>$id)); $model = ProfileMethod::model()->findByPk(array('method_id' => $methodID, 'profile_id' => $profileID)); echo $this->view->includeFile('_methods_form', array('application', 'views', 'profiles'), array('action' => 'update', 'ajax' => TRUE, 'popup' => TRUE, 'methodModel' => $model, 'methods' => $methods)); die; } } if (isset($_POST['model'])) { // Change profile_name if ($_POST['model'] == 'profile') { if (isset($_POST['ajax'])) { $this->performAjaxValidation($model); // Uncomment the line if AJAX validation is needed $model->fillFromArray($_POST, FALSE); $model->user_id_updated = $this->user->user_id; $model->updated = 'NOW():sql'; $model->model_uset_id = $this->user->user_id; if ($model->save()) { $link = AF::link(array('profiles' => 'update'), array('id' => $model->PkValue)); Message::echoJson('success', array('redirect' => $link)); } else { Message::echoJsonError(__('profile_no_updated')); } die; } $this->redirect(); die; } // Add gateway to profile if ($_POST['model'] == 'profiles_gateways') { $profileGateway = new ProfileGateway(); $this->performAjaxValidation($profileGateway); // Uncomment the line if AJAX validation is needed $profileGateway->fillFromArray($_POST, TRUE); $profileGateway->addGateway(); } } $id = AF::get($this->params, 'id', FALSE); $pagination = new Pagination(array('action' => $this->action, 'controller' => $this->controller, 'params' => $this->params)); $models = AFActiveDataProvider::models('ProfileGateway', $this->params, $pagination); $profile_methods = ProfileMethod::model()->getProfileMethodsByProfile($id); //$method_ids = '0'; if ($profile_methods) { foreach ($profile_methods as $key => $value) { $method_id_array[] = $value['method_id']; } $method_ids = implode(',', $method_id_array); } $methods = Method::model()->cache()->findAllInArray(); $gateways = Gateway::model()->getGateways(); if (!$id) { throw new AFHttpException(0, 'no_id'); } if (!$model->findByPk($id)) { throw new AFHttpException(0, 'incorrect_id'); } //for create profile method $modelProfileMethod = new ProfileMethod(); $modelProfileMethod->profile_id = $model->profile_id; Assets::js('jquery.form'); $this->addToPageTitle('Edit Profile'); $this->render('update', array('model' => $model, 'gateways' => $gateways, 'models' => $models, 'methods' => $methods, 'profile_methods' => $profile_methods, 'modelProfileMethod' => $modelProfileMethod)); }
/** * @return PaymentAPIResponse */ public function payOrder($order, $price) { $this->_paymetnResponse->clear(); if (!$this->initOrder($order)) { return $this->_paymetnResponse; } $this->attemptModel = new Attempt(); $this->attemptModel->getLastOrderAttempt($this->orderModel->order_id, Attempt::DEBIT_TYPE); // if in inprogress status, update status if (in_array($this->attemptModel->status, array(Attempt::SUBMITED_STATUS, Attempt::INPROGRESS_STATUS))) { $this->updateStatusAttempt(); } //Set response params $this->_paymetnResponse->attemptModel = $this->attemptModel; $this->_paymetnResponse->paymentModel = $this->paymentModel; if (!$this->attemptModel->attempt_id || in_array($this->attemptModel->status, array(Attempt::NEW_STATUS, Attempt::DECLINED_STATUS, Attempt::UNKNOWN_STATUS))) { $payAttempt = 1; $gatewayAttemptArray = array(); $currentGatewayID = $this->gatewayModel->gateway_id; // Trying to pay via several gateways do { if ($payAttempt > 1) { $gatewayModel = Gateway::model()->findByPk($this->gatewayModel->next_id); // if empty or we have tried this gateway yet, then return response if (!$gatewayModel || in_array($gatewayModel->gateway_id, $gatewayAttemptArray)) { break; } $this->gatewayModel = $gatewayModel; $this->_ps->setModel($this->gatewayModel); } $this->createAttempt(Attempt::DEBIT_TYPE, $price); $this->payAttempt(); $gatewayAttemptArray[] = $currentGatewayID = $this->gatewayModel->gateway_id; $payAttempt++; } while ($this->_paymetnResponse->attemptStatus == Attempt::DECLINED_STATUS && $this->gatewayModel->next_id); // rewrite gateway_id by order if changed if ($this->orderModel->gateway_id != $currentGatewayID) { $this->orderModel->gateway_id = $currentGatewayID; $this->orderModel->save(); } } elseif (in_array($this->attemptModel->status, array(Attempt::SUCCESS_STATUS, Attempt::CHARGEBACK_STATUS))) { //return success $this->_paymetnResponse->status = PaymentAPIResponse::SUCCESS_STATUS; } elseif (in_array($this->attemptModel->status, array(Attempt::SUBMITED_STATUS, Attempt::INPROGRESS_STATUS))) { //return status $this->_paymetnResponse->status = PaymentAPIResponse::SUCCESS_STATUS; } else { //unknown error $this->_paymetnResponse->status = PaymentAPIResponse::ERROR_STATUS; $this->_paymetnResponse->addError('unknown_error'); } return $this->_paymetnResponse; }
@include_once '../../ws/class/payment.class.php'; @include_once '../../ws/class/payment_'.$orderModel->payment_type.'.class.php'; $paymentSystem = Payment::getPaymentSystem($orderModel); */ $paymentModelName = 'Order' . ucfirst($orderModel->payment_type); $paymentModel = new $paymentModelName(); $paymentModel->fillFromDbPk($orderModel->order_id); $newPaymentModel = new $paymentModelName(); $newPaymentModel->setIsNewRecord(false); $newPaymentModel->order_id = $orderModel->order_id; $newPaymentModel->request_id = base_convert($orderModel->order_id . time(), 10, 36); $newPaymentModel->save(false); //if Pacnet @(include_once '../../ws/class/raven_config_demo.class.php'); @(include_once '../../ws/class/ravenrequest.class.php'); $gateway = Gateway::model()->findByPk($orderModel->gateway_id)->getAttributes(); $arrayNote1 = unserialize(NoteBase64::decode($paymentModel->note1)); //if test credit card if ($arrayNote1['ccn'] == Config::TESTCREDITCARDNUMBER || $paymentModel->pn_status == 'test') { $newPaymentModel->pn_status = 'test'; $newPaymentModel->save(false); $orderModel->status = 'ok'; //$orderModel->recurring_next = 'NULL:sql'; $orderModel->payment_total = $orderModel->amount_product + $orderModel->amount_shipping; $orderModel->save(false); continue; } if (!$arrayNote1['ccn'] || !$arrayNote1['ccc'] || !$paymentModel->currency || !$paymentModel->pn_payment_type || !$paymentModel->expiry_date || !$orderModel->fullAmountCent) { $newPaymentModel->pn_status = 'error'; $newPaymentModel->save(false); $orderModel->status = 'error';
public function updateAction() { $model = new Gateway(); $this->performAjaxValidation($model); // Uncomment the following line if AJAX validation is needed if (isset($_POST['model']) && $_POST['model'] == 'Gateway') { if (isset($_POST['ajax'])) { $model->fillFromArray($_POST, FALSE); $model->user_id_updated = $this->user->user_id; $model->updated = 'NOW():sql'; $model->model_uset_id = $this->user->user_id; if ($model->save()) { Message::echoJsonSuccess(__('gateway_updated')); } else { Message::echoJsonError(__('gateway_no_updated')); } die; } $model->save(); $this->redirect(); die; } $id = AF::get($this->params, 'id', FALSE); if (!$id) { throw new AFHttpException(0, 'no_id'); } if (!$model->cache()->findByPk($id)) { throw new AFHttpException(0, 'incorrect_id'); } $currencies = Currency::model()->cache()->findAllInArray(); $methods = Method::model()->cache()->findAllInArray(); $systems = PSystem::model()->cache()->findAllInArray(); $gateways = Gateway::model()->cache()->findAllInArray(); $pagination = new Pagination(array('action' => $this->action, 'controller' => $this->controller, 'params' => $this->params)); $models = AFActiveDataProvider::models('GatewayLimit', $this->params, $pagination); $limits = $models->getLimitsByGatewayId($id); Assets::js('jquery.form'); $this->addToPageTitle('Update Gateway'); $this->render('update', array('model' => $model, 'currencies' => $currencies, 'limits' => $limits, 'methods' => $methods, 'systems' => $systems, 'gateways' => $gateways)); }
public function crmInit($post) { $this->wsType = 'x1'; $this->intervalCheck = false; $this->campaign = new Campaign(); // is this a valid campaign? if (!$this->campaign->fillfromDbPk($post['campaign_id'])) { // if(!$campaign->getPkValue()) $this->apiError('This is not a valid request'); } $this->post = $post; $this->post['user_ip'] = '127.0.0.1'; if (!isset($this->post['is_payment']) || !$this->post['is_payment']) { $this->isPayment = false; } if ($this->isPayment) { // determine ps $gateway = Gateway::model()->fillFromDbPk($this->post['gateway_id']); if ($gateway->gateway_id) { $this->post['ps'] = $gateway->system_code; } } if (isset($this->post['customer_id']) && $this->post['customer_id']) { $this->newCustomer = false; } }