public function createOrder($payment_mode, $payment_method, $msc_id, $msc_option, $user_id) { $nItem = array('entry_id' => $msc_id, 'entry_type' => 'msc', 'msc_option' => $msc_option); $cart = $this->getCart($payment_mode, $nItem); $result = oseMscAddon::runAction('register.payment.save', array('member_id' => $user_id, 'payment_method' => $payment_method), true, false); return $result['order_id']; }
public static function activate($params) { $result = array(); $result['success'] = true; if (empty($params['allow_work'])) { $result['success'] = false; $result['title'] = 'Error'; $result['content'] = JText::_('Error Renew.Order'); return $result; } //unset($params['allow_work']); return oseMscAddon::runAction('join.order.save', $params); }
function cancelMsc($member_ids, $msc_id) { $result = array(); $result['success'] = false; $result['title'] = 'Error'; $result['content'] = 'Fail removing'; $member = oseRegistry::call('member'); foreach ($member_ids as $member_id) { $member->instance($member_id); if (!$member->cancelMsc($msc_id)) { return $result; } else { $params = array(); $params['msc_id'] = $msc_id; $params['member_id'] = $member_id; $params['join_from'] = 'payment'; $params['allow_work'] = true; $params['master'] = true; $list = oseMscAddon::getAddonList('join', true, 1, 'obj'); foreach ($list as $addon) { $action_name = oseMscAddon::getActionName($addon, 'cancel', 'join'); $result = oseMscAddon::runAction($action_name, $params); if (!$result['success']) { $result['content'] = 'Member ID:' . $member_id . ' ' . $action_name . ' ' . $result['content']; return $result; } } //Cancel Emial $userInfo = $member->getUserInfo('obj'); $msc = oseRegistry::call('msc'); $ext = $msc->getExtInfo($msc_id, 'msc', 'obj'); if ($ext->cancel_email) { $email = $member->getInstance('email'); $emailTempDetail = $email->getDoc($ext->cancel_email, 'obj'); $variables = $email->getEmailVariablesCancel($member_id, $msc_id); $emailParams = $email->buildEmailParams($emailTempDetail->type); $emailDetail = $email->transEmail($emailTempDetail, $variables, $emailParams); $email->sendEmail($emailDetail, $userInfo->email); $emailConfig = oseMscConfig::getConfig('email', 'obj'); if ($emailConfig->sendCancel2Admin) { $email->sendToAdminGroup($emailDetail, $emailConfig->admin_group); } } } } $result['success'] = true; $result['title'] = 'Done'; $result['content'] = 'Removed successfully!'; return $result; }
protected function activateMsc($params = array()) { if (empty($params)) { return array('success' => false); } $member_id = $params['member_id']; if (empty($member_id)) { return false; } $db = oseDB::instance(); $msc = oseRegistry::call('msc'); $member_id = $params['member_id']; $msc_id = $params['msc_id']; $order_id = $params['order_id']; $result = array(); $member = oseRegistry::call('member'); $member->instance($member_id); $updated = $member->joinMsc($msc_id); if ($updated) { $list = oseMscAddon::getAddonList('renew', false, 1, 'obj'); foreach ($list as $addon) { $action_name = oseMscAddon::getActionName($addon, 'activate', 'renew'); $result = oseMscAddon::runAction($action_name, $params, true, false); if (!$result['success']) { self::cancelMsc($params); return $result; } } $userInfo = $member->getBasicInfo('obj'); $ext = $msc->getExtInfo($msc_id, 'msc', 'obj'); if ($ext->wel_email && !$this->isLicensee) { $email = $member->getInstance('email'); $emailTempDetail = $email->getDoc($ext->wel_email, 'obj'); $variables = $email->getEmailVariablesWelcome($order_id, $msc_id); $emailParams = $email->buildEmailParams($emailTempDetail->type); $emailDetail = $email->transEmail($emailTempDetail, $variables, $emailParams); $email->sendEmail($emailDetail, $userInfo->email); $emailConfig = oseMscConfig::getConfig('email', 'obj'); if ($emailConfig->sendWel2Admin) { $email->sendToAdminGroup($emailDetail, $emailConfig->admin_group); } } $result = array(); $result['success'] = true; $result['title'] = $result['status'] = 'Done'; $result['content'] = $result['result'] = JText::_('MEMBERSHIP_JOIN_SUCCEED'); } else { $result['success'] = false; $result['title'] = $result['status'] = 'Error'; $result['content'] = $result['result'] = JText::_('MEMBERSHIP_JOIN_FAILED'); } return $result; }
function createOrder() { $result = array(); $result['success'] = true; $result['title'] = JText::_('DONE'); $result['content'] = JText::_('DONE'); $post = JRequest::get('post'); $msc_id = $post['msc_id']; $msc_option = $post['msc_option']; $user_id = $post['user_id']; $cart = oseMscPublic::getCart(); // get current item $cCart = $cart->cart; $cart->init(); $cart->__construct(); $cart->updateParams('payment_mode', 'm'); $paymentInfo = oseRegistry::call('msc')->getPaymentMscInfo($msc_id, $cart->get('currency'), 0); $nItem = array('entry_id' => $msc_id, 'entry_type' => 'msc', 'msc_option' => $msc_option); $cart->addItem($nItem['entry_id'], $nItem['entry_type'], $nItem); $cart->update(); oseMscAddon::runAction('register.payment.save', array('member_id' => $user_id, 'payment_method' => 'none'), true, false); return $result; }
function runAddonAction($action_name, $params = array(), $manual = false, $backend = true) { return oseMscAddon::runAction($action_name, $params, $manual, $backend); }
public static function renew($params) { $result = array(); $result['success'] = true; if(empty($params['allow_work'])) { $result['success'] = false; $result['title'] = 'Error'; $result['content'] = JText::_("Error"); return $result; } unset($params['allow_work']); $db = oseDB::instance(); $post = JRequest::get('post'); $msc_id = $params['msc_id']; $member_id = $params['member_id']; $order_id = $params['order_id']; $order_item_id = oseObject::getValue($params,'order_item_id'); if(empty($msc_id)) { $result['success'] = false; $result['title'] = 'Error'; $result['content'] = JText::_("Renew Msc: No Msc ID"); return $result; } $where = array(); $where[] = "order_item_id = {$order_item_id}"; $payment = oseRegistry::call('payment'); $curOrder = $payment->getOrderItem($where,'obj'); $curOrderParams = oseJson::decode($curOrder->params); $msc = oseRegistry::call('msc'); $exts = $msc->getExtInfo($msc_id,'payment','obj'); $ext = $exts->{$curOrderParams->msc_option}; if(empty($ext)) { $result['success'] = false; $result['title'] = 'Done'; $result['content'] = JText::_('Fail Renewing Membership.'); return $result; } $config = $msc->getConfig('global','obj'); $manual_renew_mode = empty($ext->manual_renew_mode)?$config->manual_renew_mode:$ext->manual_renew_mode; $manual_to_automatic_mode = empty($ext->manual_to_automatic_mode)?$config->manual_to_automatic_mode:$ext->manual_to_automatic_mode; //oseExit($manual_renew_mode.'&'.$manual_to_automatic_mode); //oseExit($curOrder); //echo $manual_renew_mode."<br>"; //oseExit($ext); if($curOrder->payment_mode == 'm') { $updated = self::renewInManualMode($msc_id,$member_id,$manual_renew_mode,$curOrder,$ext); } else // current order payment mode is a! { $member = oseRegistry::call('member'); $member->instance($member_id); $memInfo = $member->getRenewMscInfo($msc_id,'obj'); //oseExit(oseDB::instance()->_sql); $memParams = oseJson::decode($memInfo->params); if(empty($memParams->order_items_id)) { $params['allow_work'] = true; oseMscAddon::runAction('join.order.save',$params,true,false); } $where = array(); $where[] = "order_item_id = {$memParams->order_item_id}"; $lastOrder = $payment->getOrderItem($where,'obj'); if($lastOrder->payment_mode == 'm') // m 2 a { $updated = self::renewInAutoMaticMode($msc_id,$member_id,$manual_to_automatic_mode,$curOrder,$ext); } else // a 2 a extend { $updated = self::renewInAutoMaticMode($msc_id,$member_id,'extend',$curOrder,$ext); } } return $updated; }
public static function save() { $post = JRequest :: get('post'); $result = array (); $result['success'] = true; $result['title'] = 'Done'; $result['content'] = JText :: _('Member Information Updated'); $user = JFactory :: getUser(); $member_id = $user->id; $array = array (); $array['username'] = $post['username']; $array['name'] = $post['firstname'] . ' ' . $post['lastname']; $array['password'] = $post['password']; $array['password2'] = $post['password2']; $array['email'] = $post['email']; if ($user->guest) { $result['success'] = false; $result['title'] = 'Error'; $result['content'] = JText :: _('You are not a member!'); $isNew = true; return $result; } else { $isNew = false; $member_id = $user->id; } $exists = $this->checkEmail($array['email'], $member_id); if ($exists == true) { $result['success'] = false; $result['title'] = 'Error'; $result['content'] = JText :: _('Email already exists.'); $isNew = true; return $result; } $user_id = $member_id; $username = $post['username']; $updated = oseMscPublic :: uniqueUserName($username, $user_id); oseRegistry :: call('msc')->runAddonAction('member.billinginfo.save'); if (!$updated['success']) { return $updated; } $uid = self :: jvsave($member_id, $array); if ($isNew) { $result['success'] = true; $result['title'] = 'Done'; $result['content'] = JText :: _('Member Information Updated'); $result['member_id'] = $uid; return $result; } else { $member = oseRegistry :: call('member'); $member->instance($member_id); $updated = $member->updateUserInfo($post); if (!$updated) { $result['success'] = false; $result['title'] = 'Error'; $result['content'] = JText :: _('Failed Updating Member Information'); $result['member_id'] = ''; } else { $list = oseMscAddon :: getAddonList('usersync', false, null, 'obj'); $params = array (); $params['member_id'] = $member_id; $params['allow_work'] = true; foreach ($list as $addon) { $action_name = 'usersync.' . $addon->name . '.juserSave'; $result = oseMscAddon :: runAction($action_name, $params); if (!$result['success']) { return $result; } } } return $result; } }
public static function save() { $post = JRequest::get('post'); $user = JFactory::getUser(); $my = JFactory::getUser(); $company = array(); foreach($post as $key => $value) { if(strstr($key,'company_')) { $billKey = preg_replace('/company_/','',$key,1); $company[$billKey] = $value; } } //oseExit($company); $db = oseDB::instance(); $query = " SELECT member_id FROM `#__oselic_cs_keys_view`" ." WHERE user_id = {$user->id}" ; $db->setQuery($query); $member_id = $db->loadResult(); if(empty($member_id)) { $result['success'] = false; $result['title'] = JText::_('Error'); $result['content'] = JText::_('Fail Saving Joomla User Info.'); } $query = " SELECT company_id FROM `#__oselic_cs_company` WHERE user_id='{$member_id}'"; $db->setQuery($query); $num = $db->loadResult(); if (empty ($num)) { $keys = array_keys($company); $keys = '`'.implode('`,`',$keys).'`'; $fields = $db->getTableFields('#__oselic_cs_company'); if(!isset($fields['#__oselic_cs_company'][$key])) { if($my->get('gid') == 24 || $my->get('gid') == 25) { $query = "ALTER TABLE `#__oselic_cs_company` ADD `{$key}` TEXT NULL DEFAULT NULL"; $db->setQuery($query); if (!oseDB::query()) { $result['success'] = false; $result['title'] = JText::_('Error'); $result['content'] = JText::_('Fail Saving Joomla User Info.'); } } else { unset($company[$key]); } } foreach($company as $key => $value) { $company[$key] = $db->Quote($value); } $values = implode(',',$company); $query = "INSERT INTO `#__oselic_cs_company` (`user_id`,{$keys}) VALUES ('{$member_id}',{$values});"; } else { $fields = $db->getTableFields('#__oselic_cs_company'); foreach($company as $key => $value) { if(!isset($fields['#__oselic_cs_company'][$key])) { $query = "ALTER TABLE `#__oselic_cs_company` ADD `{$key}` TEXT NULL DEFAULT NULL"; $db->setQuery($query); if (!oseDB::query()) { $result['success'] = false; $result['title'] = JText::_('Error'); $result['content'] = JText::_('Fail Saving Joomla User Info.'); } } $company[$key] = "`{$key}`=".$db->Quote($value); } $company_id = $num; $values = implode(',',$company); $query = " UPDATE `#__oselic_cs_company` SET {$values}" ." WHERE `company_id` ={$company_id}" ; } //echo $query;exit; $db->setQuery($query); if (!oseDB::query()) { $result = array(); $result['success'] = true; $result['title'] = 'Done'; $result['content'] = JText::_('Fail Saving Company Info.'); } else { $list = oseMscAddon::getAddonList('usersync',false,null,'obj'); $params = array(); $params['member_id'] = $member_id; $params['allow_work'] = true; foreach($list as $addon) { $action_name = 'usersync.'.$addon->name.'.companySave'; $result = oseMscAddon::runAction($action_name,$params); if(!$result['success']) { return $result; } } $result = array(); $result['success'] = true; $result['title'] = 'Done'; $result['content'] = JText::_('Saved Company Info.'); } return $result; }
private static function joinFromPayment($params) { $db = oseDB::instance(); $msc = oseRegistry::call('msc'); $member_id = $params['member_id']; $msc_id = $params['msc_id']; $order_id = $params['order_id']; $result = array(); if (empty($msc_id)) { $result['success'] = false; $result['title'] = 'Error'; $result['content'] = JText::_('Please Select A Membership First'); return $result; } $member = oseRegistry::call('member'); $member->instance($member_id); $updated = $member->joinMsc($msc_id); if ($updated) { $list = oseMscAddon::getAddonList('join', false, 1, 'obj'); foreach ($list as $addon) { $action_name = oseMscAddon::getActionName($addon, 'save', 'join'); $result = oseMscAddon::runAction($action_name, $params, true, false); if (!$result['success']) { self::cancelMsc($params); return $result; } } $userInfo = $member->getBasicInfo('obj'); $ext = $msc->getExtInfo($msc_id, 'msc', 'obj'); if (oseObject::GetValue($ext, 'wel_email', false)) { $email = $member->getInstance('email'); $emailTempDetail = $email->getDoc($ext->wel_email, 'obj'); $variables = $email->getEmailVariablesWelcome($order_id, $msc_id); $emailParams = $email->buildEmailParams($emailTempDetail->type); $emailDetail = $email->transEmail($emailTempDetail, $variables, $emailParams); $email->sendEmail($emailDetail, $userInfo->email); $emailConfig = oseMscConfig::getConfig('email', 'obj'); if ($emailConfig->sendWel2Admin) { $email->sendToAdminGroup($emailDetail, $emailConfig->admin_group); } } $result = array(); $result['success'] = true; $result['title'] = 'Done'; $result['content'] = JText::_('Joined Membership.'); } else { $result['success'] = false; $result['title'] = 'Error'; $result['content'] = JText::_('Fail Joining Membership.'); } return $result; }
public function runActions($addons, $type, $action, $params) { foreach ($addons as $addon) { $action_name = "{$type}.{$addon->name}.{$action}"; $updated = oseMscAddon::runAction($action_name, $params); if (!$updated['success']) { return $updated; } } return array('success' => true); }
/** * This method should handle any login logic and report back to the subject * * @access public * @param array holds the user data * @param array array holding options (remember, autoregister, group) * @return boolean True on success * @since 1.5 */ function onUserLogin($user, $options = array()) { require_once(JPATH_SITE.DS.'components'.DS.'com_osemsc'.DS.'init.php'); $mainframe = JFactory::getApplication(); $db = JFactory::getDBO(); $option=JRequest::getVar("option"); jimport('joomla.user.helper'); if ($mainframe->isAdmin() ) { return; // Dont run in admin } $pluginParams = $this->params; //$loginRedirection = $pluginParams->get('loginRedirection'); // Move to OSE Router; $singleLogin = $pluginParams->get('singleLogin'); $loginRedirect= $pluginParams->get('loginRedirect'); $autoUpdate = $pluginParams->get('autoUpdateOnLogin'); $autoUpdateGroup = $pluginParams->get('autoUpdateGroup'); $user = self::getUser($user); // Update BillingInfo names; $query = " SELECT user_id, firstname FROM #__osemsc_billinginfo WHERE user_id = ".(int)$user->id; $db->setQuery($query); $objects = $db->loadObject(); if (!empty($objects->user_id) && empty($objects->firstname)) { $thisUser = JFactory::getUser($objects->user_id); $names = explode(' ',$thisUser->name); $firstname = $db->Quote($names[0]); $lastname = count($names)>1?$names[1]:'null'; $lastname = $db->Quote($lastname); $query = "UPDATE `#__osemsc_billinginfo` SET `firstname` = {$firstname},`lastname` = {$lastname} WHERE `user_id` = ".(int)$user->id; $db->setQuery($query); $db->Query(); } $query = " SELECT user_id, lastname FROM #__osemsc_billinginfo WHERE user_id = ".(int)$user->id; $db->setQuery($query); $objects = $db->loadObject(); if (!empty($objects->user_id) && empty($objects->lastname)) { $query = "UPDATE `#__osemsc_billinginfo` SET `lastname` = (SELECT lastname FROM #__osemsc_userinfo WHERE user_id = ".(int)$user->id.") WHERE `user_id` =".(int)$user->id; $db->setQuery($query); $db->Query(); } // BillingInfo names; $enableVMUser = $pluginParams->get('enableVMUser'); if ($enableVMUser==true) { $oseUser['user_id'] = oseObject::getValue($user,'id'); $query= "SELECT * FROM `#__virtuemart_userinfos` WHERE `address_type` = 'BT' AND `virtuemart_user_id` = ". (int)$user->id; $db->setQuery($query); $result= $db->loadObject(); if(!empty($result)) { $query = "SELECT `country_3_code` FROM `#__virtuemart_countries` WHERE `virtuemart_country_id` = ". $db->Quote($result->virtuemart_country_id); $db->setQuery($query); $country_3_code=$db->loadResult(); if (!empty($country_3_code)) { $result->country = $country_3_code; } else { $result->country = substr($result->country, 0,3); } $query = "SELECT `state_2_code` FROM `#__virtuemart_states` WHERE `virtuemart_state_id` = ". $db->Quote($result->virtuemart_state_id); $db->setQuery($query); $state_2_code=$db->loadResult(); if (!empty($state_2_code)) { $result->state = $state_2_code; } else { $result->state = substr($result->state, 0,2); } $query= "SELECT count(*) FROM `#__osemsc_billinginfo` WHERE `user_id` = ". (int)$user->id; $db->setQuery($query); $result2= $db->loadResult(); if (empty($result2)) { $query= "INSERT INTO `#__osemsc_billinginfo` (`user_id`, `firstname`, `lastname`, `company`, `addr1`, `addr2`, `city`, `state`, `country`, `postcode`, `telephone`) VALUES (".(int)$user->id.", '{$result->first_name}', '{$result->last_name}', '{$result->company}', '{$result->address_1}', '{$result->address_2}', '{$result->city}', '{$result->state}', '{$result->country}', '{$result->zip}', '{$result->phone_1}');"; } else { $query = " UPDATE `#__osemsc_billinginfo` " . " SET `firstname` = '{$result->first_name}', " . " `lastname` = '{$result->last_name}', " . " `company` = '{$result->company}', " . " `addr1` = '{$result->address_1}', " . " `addr2` = '{$result->address_2}', " . " `city` = '{$result->city}', " . " `state` = '{$result->state}', " . " `country` = '{$result->country}', " . " `postcode` = '{$result->zip}', " . " `telephone` = '{$result->phone_1}' " . " WHERE `user_id` =".(int)$user->id; } $db->setQuery($query); $db->query(); } } if ($autoUpdate==true && !empty($autoUpdateGroup)) { if (!class_exists("oseMscPublic")) { require_once(JPATH_SITE.DS.'components'.DS.'com_osemsc'.DS.'helpers'.DS.'oseMscPublic.php'); } oseAppConfig::load('msc'); $cart = oseMscPublic::getCart(); $items = $cart->get('items'); $update = true; if(count($items) >0) { foreach($items as $item) { if($item['entry_id'] == $autoUpdateGroup) { $update = false; } } } $query = " SELECT count(*) FROM #__osemsc_member WHERE msc_id = ".(int)$autoUpdateGroup." AND member_id=".(int)$user->id; $db->setQuery($query); $exists = $db->loadResult(); if ($update && empty($exists)) { // join msc if($mainframe->isSite()) { $cart = oseMscPublic::getCart(); // get current item $cCart = $cart->cart; $cart->init(); $cart->__construct(); $cart->updateParams('payment_mode','m'); $paymentInfo = oseRegistry::call('msc')->getPaymentMscInfo($autoUpdateGroup,$cart->get('currency'),0); $nItem = array('entry_id'=>$autoUpdateGroup,'entry_type'=>'msc','msc_option'=>oseObject::getValue($paymentInfo,'msc_option')); $cart->addItem($nItem['entry_id'],$nItem['entry_type'],$nItem); $cart->update(); //$orderPaymentInfo = array();//$cart->output(); oseMscAddon::runAction('register.payment.save',array('member_id'=>$user->id,'payment_method'=>'none'), true, false); $order_id = JRequest::getInt('order_id',0); oseRegistry::call('payment')->getInstance('Order')->confirmOrder($order_id, array()); $cart->init(); $cart->__construct(); $cart1 = oseMscPublic::getCart();$cart1->__construct(); $cart1->cart = $cCart; $cart1->update(); } else { $cart = oseMscPublic::getCart(); // get current item //$cItems = $cart->output(); //$cart->init(); $cart->updateParams('payment_mode','m'); $paymentInfo = oseRegistry::call('msc')->getPaymentMscInfo($autoUpdateGroup,$cart->get('currency'),0); $nItem = array('entry_id'=>$autoUpdateGroup,'entry_type'=>'msc','msc_option'=>oseObject::getValue($paymentInfo,'msc_option')); $cart->addItem($nItem['entry_id'],$nItem['entry_type'],$nItem); $cart->update(); $orderPaymentInfo = array();//$cart->output(); $orderResult = oseMscAddon::runAction('register.payment.save',array('member_id'=>$user->id,'payment_method'=>'none'), true, false); $order_id = JRequest::getInt('order_id',0); oseRegistry::call('payment')->getInstance('Order')->confirmOrder($order_id, array()); $cart->init(); /*$orderPaymentInfo = $cart->output(); oseMscPublic::generateOrder($user['id'],'none',$orderPaymentInfo); $order_id = JRequest::getInt('order_id',0);oseExit($order_id); oseRegistry::call('payment')->getInstance('Order')->confirmOrder($order_id, array());*/ } } } $member = oseRegistry::call('member'); $member->instance($user->id); $mscs = $member->getAllOwnedMsc(true,null,'obj'); $date = oseHTML::getDateTime(); $date = strtotime($date); $updateStatus = false; if(!empty($mscs)) { foreach($mscs as $msc) { $startdate = strtotime($msc->start_date); $expdate = strtotime($msc->expired_date); $params = oseJson::decode($msc->params); if($msc->status && ($startdate>$date) && (($date<$expdate) || $msc->eternal == 1 || $msc->expired_date == '0000-00-00 00:00:00')) { $updateStatus = true; $status = 0; }elseif(empty($msc->status) && ($startdate < $date) && (($date<$expdate) || $msc->eternal == 1 || $msc->expired_date == '0000-00-00 00:00:00')) { $updateStatus = true; $status = 1; } if($updateStatus) { $query = "SELECT * FROM `#__osemsc_order_item` WHERE `order_id` = ".$params->order_id; $db->setQuery($query); $orderItem = $db->loadObject(); $orderItemParams = oseJson::decode($orderItem->params); if($orderItemParams->recurrence_mode == 'fixed') { $query = "UPDATE `#__osemsc_member` SET `status` = '{$status}' WHERE `id` = ".$msc->id; $db->setQuery($query); $db->query(); } } } } if ($singleLogin>0) { self::singleLogin($singleLogin, $db, $user, $mainframe); } if ($loginRedirect == true) { if (!empty($user)) { self::loginRedirect($user->id); } } return true; }
private function toPaymentOS() { $model = $this->getModel('register'); $post = JRequest::get('POST'); $post['payment_method'] = $payment_method = oseMscPublic::getPaymentMethod(); $cart = oseMscPublic::getCart(); $items = $cart->get('items'); $item = $items[0]; $payment_mode = $cart->getParams('payment_mode'); $msc_id = oseMscPublic::getEntryMscID($item); $allow_to_join = $this->checkJoiningControl($msc_id); if ($allow_to_join == false) { $result['success'] = false; $result['title'] = JText::_('Error'); $result['content'] = JText::_('Permission denied, this membership is for members only!'); $result = oseJson::encode($result); oseExit($result); } $msc_option = JRequest::getCmd('msc_option', null); if (empty($payment_mode)) { $result['success'] = false; $result['title'] = JText::_('Error!'); $result['content'] = JText::_('Fail Paying...'); return $result; } if (empty($msc_id)) { $result['success'] = false; $result['title'] = JText::_('Error!'); $result['content'] = JText::_('Fail Paying...'); return $result; } $list = oseMscAddon::getAddonList('registerOS_body', false, 1, 'obj'); $list = oseMscPublic::filter($list, array('juser'), false); foreach ($list as $addon) { $action_name = oseMscAddon::getActionName($addon, 'formValidate', 'register'); $updated = oseMscAddon::runAction($action_name, array('inner' => true)); if (!$updated['success']) { return $updated; } } $user = oseMscPublic::getUser(); $params['member_id'] = $user->id; $params['payment_method'] = $payment_method; oseRegistry::call('msc')->runAddonAction('member.billinginfo.save'); oseRegistry::call('msc')->runAddonAction('register.profile.save', $params); $order = oseRegistry::call('msc')->runAddonAction('register.payment.save', $params); $order_id = $order['order_id']; if ($order_id) { $updated = $model->processPayment($order_id, $post, $msc_option); $result = $updated; if (is_array($result)) { $result['order_id'] = $order_id; } } else { $result['success'] = false; $result['title'] = JText::_('Error!'); $result['content'] = JText::_('Fail Creating Order...'); } return $result; }
public static function renewMsc($params = array()) { if (empty($params)) { return array('success' => false); } $member_id = $params['member_id']; if (empty($member_id)) { return array('success' => false); } $db = oseDB::instance(); $msc = oseRegistry::call('msc'); //$licInfo = $msc->getExtInfo($item->msc_id,'lic','obj'); $member_id = $params['member_id']; $msc_id = $params['msc_id']; $order_id = $params['order_id']; $result = array(); $member = oseRegistry::call('member'); $member->instance($member_id); $updated = $member->joinMsc($msc_id); if ($updated) { $list = oseMscAddon::getAddonList('renew', true, 1, 'obj'); foreach ($list as $addon) { $action_name = 'renew.' . $addon->name . '.renew'; //echo $action_name.'<br>'; $result = oseMscAddon::runAction($action_name, $params); if (!$result['success']) { self::cancelMsc($params); return $result; } } $userInfo = $member->getBasicInfo('obj'); $ext = $msc->getExtInfo($msc_id, 'msc', 'obj'); if ($ext->wel_email) { $email = $member->getInstance('email'); $emailTempDetail = $email->getDoc($ext->wel_email, 'obj'); $variables = $email->getEmailVariablesWelcome($order_id, $msc_id); $emailParams = $email->buildEmailParams($emailTempDetail->type); $emailDetail = $email->transEmail($emailTempDetail, $variables, $emailParams); $email->sendEmail($emailDetail, $userInfo->email); $emailConfig = oseMscConfig::getConfig('email', 'obj'); if (!empty($emailConfig->sendWel2Admin)) { $email->sendToAdminGroup($emailDetail, $emailConfig->admin_group); } } $result = array(); $result['success'] = true; $result['title'] = JText::_('DONE'); $result['content'] = JText::_('JOINED_MEMBERSHIP'); } else { $result['success'] = false; $result['title'] = JText::_('ERROR'); $result['content'] = JText::_('FAIL_JOINING_MEMBERSHIP'); } return $result; }
function createUser() { $post = JRequest::get('post'); $member_id = JRequest::getInt('member_id', 0); $password1 = JRequest::getString('password', '', 'post', JREQUEST_ALLOWRAW); $password2 = JRequest::getString('password2', '', 'post', JREQUEST_ALLOWRAW); $array = array(); $array['username'] = $post['username']; $array['name'] = $post['firstname'] . ' ' . $post['lastname']; $array['password'] = $password1; $array['password2'] = $password2; $array['email'] = $array['email1'] = $post['email']; $array['email2'] = $post['email']; $uid = self::jvsave($member_id, $array); if (empty($uid)) { oseExit('dfdf'); } $list = array(); //oseMscAddon::getAddonList('usersync',true,null,'obj'); $params = array(); $params['member_id'] = $uid; $params['allow_work'] = true; foreach ($list as $addon) { $action_name = 'usersync.' . $addon->name . '.juserSave'; $result = oseMscAddon::runAction($action_name, $params); if (!$result['success']) { return $result; } } JRequest::setVar('member_id', $uid); $member = oseRegistry::call('member'); $member->instance($uid); $updated = $member->updateUserInfo($post); if (!$updated) { $result['success'] = false; $result['title'] = JText::_('ERROR'); $result['content'] = JText::_('FAIL_SAVING_OSEMSC_USER_INFO'); $result['member_id'] = ''; return $result; } $updated = oseRegistry::call('msc')->runAddonAction('member.billinginfo.save'); if (!$updated['success']) { return $updated; } else { $result['success'] = true; $result['title'] = JText::_('DONE'); $result['content'] = JText::_('CREATE_SUCCESSFULLY'); return $result; } }
function cancelOrder() { $result = array(); $result['success']= false; $result['title']= 'Error'; $result['content']= 'Error'; $db = oseDB::instance(); $msc= oseRegistry :: call('msc'); $member = oseRegistry::call('member'); $email = oseRegistry::call('member')->getInstance('Email'); $payment= oseRegistry :: call('payment'); $paymentOrder= $payment->getInstance('Order'); $my = JFactory::getUser(); $user_id = $my->id; $member->instance($user_id); $order_id = JRequest::getInt('order_id',0); $member->instance($user_id); $memberships = $member->getMemberOwnedMscInfo(false,1,'obj'); $query = " SELECT * FROM `#__osemsc_order`" ." WHERE `user_id` = '{$user_id}' AND `order_status` = 'confirmed' AND `payment_mode`='a'" ; $db->setQuery($query); $list = oseDB::loadList('obj'); $order_ids = array(); foreach($list as $oItem) { //$memParams = oseJson::decode($membership->params); $order_ids[$oItem->order_id] = $oItem->order_id; } if( !in_array( $order_id,$order_ids ) ) { $result['success']= false; $result['title']= 'Error'; $result['content']= JText :: _('Error No this authority: ').$order_id; } $where= array(); $where[]= "`order_id` = ".$db->Quote($order_id); $order = $payment->getOrder($where, 'obj'); //$result['success']= true; $result['payment_mode']= $order->payment_mode; $result['payment_method'] = $order->payment_method; //$msc_id = $order->entry_id; switch($order->payment_method) { case('paypal_cc') : if($order->payment_mode == 'a') { $config= oseMscConfig :: getConfig('payment', 'obj'); $updated = $paymentOrder->PaypalAPIDeleteProfile($order->payment_serial_number, substr($order->order_number, 0, 20), $user_id); if ($updated['success']==true) { $email->sendCancelOrderEmail(array('orderInfo'=>$order)); $result['success']= true; $result['title']= JText :: _('SUB_PLAN_CANCEL_SUCCESSFULLY_TITLE'); $result['content']= JText :: _('SUB_PLAN_CANCEL_SUCCESSFULLY'); } else { $result['success']= false; $result['title']= 'Error'; $result['content']= JText :: _('ERROR_CANCELLING_SUB_PLAN').' '.urldecode($order->payment_serial_number). "<br />".JText::_(' Error response from server: '). urldecode($updated['text']); } } break; case('paypal') : if($order->payment_mode == 'a') { $config= oseMscConfig :: getConfig('payment', 'obj'); if($config->paypal_mode == 'paypal_express') { $test_mode= $config->paypal_testmode; $paypal_email = $config->paypal_email; if($test_mode == true) { $url= "https://www.sandbox.paypal.com/cgi-bin/webscr"; } else { $url= "https://www.paypal.com/cgi-bin/webscr"; } $url = $url.'?cmd=_subscr-find&alias='.$paypal_email; $result['success']= true; $result['payment_method'] = 'paypal'; $result['paypal']= 'ipn'; $result['url']= $url; return $result; } else { //$result['payment_method'] = 'paypal_pro'; $updated= $paymentOrder->PaypalAPIDeleteProfile($order->payment_serial_number, substr($order->order_number, 0, 20), $user_id); if ($updated['success']==true) { $paymentOrder->updateOrder($order->order_id,'cancelled'); $email->sendCancelOrderEmail(array('orderInfo'=>$order)); $result['success']= true; $result['title']= JText :: _('SUB_PLAN_CANCEL_SUCCESSFULLY_TITLE'); $result['content']= JText :: _('SUB_PLAN_CANCEL_SUCCESSFULLY'); } else { $result['success']= false; $result['title']= 'Error'; $result['content']= JText :: _('ERROR_CANCELLING_SUB_PLAN').' '.urldecode($order->payment_serial_number). "<br />".JText::_(' Error response from server: '). urldecode($updated['text']); } } } break; case('authorize') : if($order->payment_mode == 'a') { $updated= $paymentOrder->AuthorizeARBDeleteProfile($order->payment_serial_number, substr($order->order_number, 0, 20), $user_id); if ($updated['success']==true) { $email->sendCancelOrderEmail(array('orderInfo'=>$order)); $result['success']= true; $result['title']= JText :: _('SUB_PLAN_CANCEL_SUCCESSFULLY_TITLE'); $result['content']= JText :: _('SUB_PLAN_CANCEL_SUCCESSFULLY'); } else { $result['success']= false; $result['title']= 'Error'; if (strpos($order->payment_serial_number, "_")>0) { $tmpUID = explode("_", $order->payment_serial_number); if ($tmpUID[0] == $order->user_id) { $result['content']= JText :: _('CREDIT_CARD_EXPIRE_BEFORE_SUB_ENDS'); } else { $result['content']= JText :: _('ERROR_CANCELLING_SUB_PLAN').' '.urldecode($order->payment_serial_number); } } else { $result['content']= $updated['text']; } } } break; case('eway'): if($order->payment_mode == 'a') { $updated= $paymentOrder->eWayDeleteProfile($order); if ($updated['success']==true) { $email->sendCancelOrderEmail(array('orderInfo'=>$order)); $result['success']= true; $result['title']= JText :: _('SUB_PLAN_CANCEL_SUCCESSFULLY_TITLE'); $result['content']= JText :: _('SUB_PLAN_CANCEL_SUCCESSFULLY'); } else { $result['success']= false; $result['title']= 'Error'; $result['content']= $updated['text'];//JText :: _('Error cancelling subscription plan! Please contact the web administrator and quote this profile ID: ').urldecode($order->payment_serial_number); } } break; case('beanstream') : if($order->payment_mode == 'a') { $updated= $paymentOrder->BeanStreamDeleteProfile($order); if ($updated['success']==true) { $email->sendCancelOrderEmail(array('orderInfo'=>$order)); $result['success']= true; $result['title']= JText :: _('SUB_PLAN_CANCEL_SUCCESSFULLY_TITLE'); $result['content']= JText :: _('SUB_PLAN_CANCEL_SUCCESSFULLY'); } else { $result['success']= false; $result['title']= 'Error'; $result['content']= $updated['text'];//JText :: _('Error cancelling subscription plan! Please contact the web administrator and quote this profile ID: ').urldecode($order->payment_serial_number); } } break; case('epay') : if($order->payment_mode == 'a') { require_once(OSEMSC_B_PATH.DS.'libraries'.DS.'epaysoap.php'); $epay = new EpaySoap(); $config = oseMscConfig::getConfig('payment','obj'); $merchantnumber = $config->epay_merchantnumber; $subscriptionid = $order->payment_serial_number; $updated= $epay->deleteSubscription($merchantnumber, $subscriptionid); if($updated['deletesubscriptionResult'] == true && $result['epayresponse'] == '-1') //$updated= $paymentOrder->BeanStreamDeleteProfile($order); //if ($updated['success']==true) { $email->sendCancelOrderEmail(array('orderInfo'=>$order)); $result['success']= true; $result['title']= JText :: _('SUB_PLAN_CANCEL_SUCCESSFULLY_TITLE'); $result['content']= JText :: _('SUB_PLAN_CANCEL_SUCCESSFULLY'); } else { $result['success']= false; $result['title']= 'Error'; $result['content']= $updated['text'];//JText :: _('Error cancelling subscription plan! Please contact the web administrator and quote this profile ID: ').urldecode($order->payment_serial_number); } } break; case('2co') : if($order->payment_mode == 'a') { $updated= $paymentOrder->twoCheckoutDeleteProfile($order); if ($updated['success']==true) { $email->sendCancelOrderEmail(array('orderInfo'=>$order)); $result['success']= true; $result['title']= JText :: _('SUB_PLAN_CANCEL_SUCCESSFULLY_TITLE'); $result['content']= JText :: _('SUB_PLAN_CANCEL_SUCCESSFULLY'); } else { $result['success']= false; $result['title']= 'Error'; $result['content']= $updated['text'];//JText :: _('Error cancelling subscription plan! Please contact the web administrator and quote this profile ID: ').urldecode($order->payment_serial_number); } } break; default : $orderItems = $paymentOrder->getOrderItems($order->order_id,'obj'); foreach($orderItems as $key=>$orderItem) { if($orderItem->entry_type == 'msc') { $msc_id = $orderItem->entry_id; $params= oseRegistry :: call('member')->getAddonParams($msc_id, $user_id, $order_id); $updated= $msc->runAddonAction('member.msc.cancelMsc', $params); if(!$updated['success']) { return $updated; } } } break; } if ($result['success']==true) { $orderItems = $paymentOrder->getOrderItems($order->order_id,'obj'); foreach($orderItems as $key=>$orderItem) { if($orderItem->entry_type == 'msc') { $msc_id = $orderItem->entry_id; $arr = array('allow_work'=>true,'msc_id'=>$msc_id,'member_id'=>$user_id,'master'=>true); oseMscAddon::runAction('join.history.manualCancelOrder', $arr); } } $paymentOrder->updateOrder($order_id, 'cancelled', $params= array('payment_mode'=>'a')); //$paymentOrder->updateMembership($msc_id, $user_id, $order_id, 'm'); } return $result; }
function generateOrder($member_id, $payment_method, $orderPaymentInfo) { return oseRegistry::call('msc')->runAddonAction('register.payment.save', array('member_id' => $member_id, 'payment_method' => $payment_method), true, false); $result = array(); if (empty($member_id)) { $result['success'] = false; $result['title'] = 'Error'; $result['content'] = JText::_('Error'); return $result; } $paymentOrder = oseRegistry::call('payment')->getInstance('Order'); $params = array(); $items = $orderPaymentInfo['items']; unset($orderPaymentInfo['items']); $order_number = $paymentOrder->generateOrderNumber($member_id); $orderPaymentInfo['order_number'] = $order_number; $orderPaymentInfo['entry_type'] = 'msc_list'; $orderPaymentInfo['create_date'] = oseHTML::getDateTime();//date("Y-m-d H:i:s"); $orderPaymentInfo['payment_serial_number'] = substr($orderPaymentInfo['order_number'], 0, 20); $orderPaymentInfo['payment_method'] = 'system'; $orderPaymentInfo['payment_from'] = 'system_admin'; $orderPaymentInfo['payment_mode'] = 'm'; oseObject::setParams($orderPaymentInfo, array('time_stamp' => uniqid("{$member_id}_", true))); // Extra Order Params Updating Function $list = oseMscAddon::getAddonList('register_order', true, 1, 'obj'); foreach ($list as $addon) { $action_name = 'register_order.' . $addon->name . '.add'; //echo $action_name; $params = oseMscAddon::runAction($action_name, $orderPaymentInfo['params'], true, false); } // generate Order $updated = $paymentOrder->generateOrder('', $member_id, $orderPaymentInfo); if (!$updated) { $result['success'] = false; $result['title'] = 'Error'; $result['content'] = JText::_('Error'); return $result; } // generate orer item // in the backend, only manual payment $order_id = $result['order_id'] = $updated; $payment_mode = 'm'; foreach ($items as $item) { $itemParams = array(); $entry_type = oseObject::getValue($item, 'entry_type'); switch ($entry_type) { case ('license'): $license_id = oseObject::getValue($item, 'entry_id'); $license = oseRegistry::call('lic')->getInstance(0); $licenseInfo = $license->getKeyInfo($license_id, 'obj'); $licenseInfoParams = oseJson::decode($licenseInfo->params); $msc_id = $licenseInfoParams->msc_id; break; case ('msc'): $msc_id = oseObject::getValue($item, 'entry_id'); break; } $msc_option = oseObject::getValue($item, 'msc_option'); if (oseObject::getValue($item, 'eternal')) { $itemParams['payment_mode'] = 'm'; } else { $itemParams['payment_mode'] = 'm'; } $price = oseObject::getValue($item, 'a3'); if ($payment_mode == 'a') { if (oseObject::getValue($item, 'has_trial')) { $price = oseObject::getValue($item, 'a1'); } } $itemParams['entry_type'] = oseObject::getValue($item, 'entry_type'); $itemParams['payment_price'] = 0;//oseObject::getValue($item,'first_raw_price'); $itemParams['payment_currency'] = $orderPaymentInfo['payment_currency']; $itemParams['create_date'] = oseHTML::getDateTime();//date("Y-m-d H:i:s"); $price_params = $paymentOrder->generateOrderParams($msc_id, $price, $payment_mode, $msc_option); $price_params['start_date'] = oseObject::getValue($item, 'start_date', null); $price_params['expired_date'] = oseObject::getValue($item, 'expired_date', null); $itemParams['params'] = oseJSON::encode($price_params); $paymentInfos = oseMscAddon::getExtInfo($msc_id, 'payment', 'obj'); $paymentInfo = oseObject::getValue($paymentInfos, $msc_option); $updated = $paymentOrder->generateOrderItem($order_id, oseObject::getValue($item, 'entry_id'), $itemParams); } if ($updated) { $result['success'] = true; $result['title'] = JText::_('Done'); $result['content'] = JText::_('Done'); } else { $result['success'] = false; $result['title'] = 'Error'; $result['content'] = JText::_('Order Generate Error'); } return $result; }
private static function saveOS( $params ) { $result = array(); //$post = JRequest::get('post'); $member_id = $params['member_id']; $payment_method = $params['payment_method']; //oseExit($params); JRequest::setVar('member_id',$member_id); if(empty($member_id)) { $result['success'] = false; $result['title'] = 'Error'; $result['content'] = JText :: _('Error1'); return $result; } $params = array(); //$paymentCart = oseMscPublic::getCart(); $paymentCart = $cart = oseRegistry::call('payment')->getInstance('Cart'); $paymentCart->refreshCartItems($paymentCart->get('items'),$paymentCart->get('currency')); $osePaymentCurrency = $paymentCart->get('currency'); $payment_mode = $paymentCart->getParams('payment_mode'); $subtotal = $paymentCart->getSubtotal(); if(empty($payment_mode)) { $payment_mode = oseMscPublic::savePaymentMode(); } $items = $paymentCart->get('items'); $oneItem = $items[0]; $payment = oseRegistry::call('payment'); $keys = array_keys($items); //$payment_mode = $paymentCart->getParams('payment_mode'); $order_number = $payment->generateOrderNumber( $member_id ); $params['entry_type'] = 'msc_list'; $params['payment_price'] = $paymentCart->get('total'); $params['payment_currency'] = $osePaymentCurrency; $params['order_number'] = $order_number; $params['create_date'] = oseHTML::getDateTime();//date("Y-m-d H:i:s"); $params['payment_serial_number'] = substr($order_number,0,20); $params['payment_method'] = $payment_method; $params['payment_mode'] = $payment_mode; $params['payment_from'] = 'system_reg'; $params['params'] = array(); $params['params']['start_date'] = oseObject::getValue($oneItem,'start_date',null); $params['params']['expired_date'] = oseObject::getValue($oneItem,'expired_date',null); $params['params']['total'] = $paymentCart->get('total'); if($paymentCart->getParams('coupon_range2') == 'all') { $params['params']['next_total'] = $params['params']['total']; } else { $params['params']['next_total'] = $paymentCart->get('next_total'); // } //$params['params']['next_total'] = $params['params']['total'];//$paymentCart->get('next_total'); $params['params']['discount'] = $paymentCart->get('discount'); $params['params']['subtotal'] = $subtotal; $params['params']['coupon_user_id'] = $paymentCart->getParams('coupon_user_id'); $params['params']['gross_tax'] = $paymentCart->getTaxParams('amount'); $params['params']['next_gross_tax'] = $paymentCart->getTaxParams('next_amount'); $params['params']['vat_number'] = $paymentCart->getTaxParams('vat_number'); $params['params']['timestamp'] = uniqid("{$member_id}_",true); $params['params']['returnUrl'] = $paymentCart->getParams('returnUrl'); if($payment_mode == 'a') { $params['params']['has_trial'] = oseObject::getValue($oneItem,'has_trial',0); } else { $params['params']['has_trial'] = 0; } $params['params']['a1'] = $paymentCart->get('total'); $params['params']['p1'] = oseObject::getValue($oneItem,'p1',0); $params['params']['t1'] = oseObject::getValue($oneItem,'t1'); $params['params']['a3'] = $paymentCart->get('next_total'); $params['params']['p3'] = oseObject::getValue($oneItem,'p3',0); $params['params']['t3'] = oseObject::getValue($oneItem,'t3'); $params['params'] = oseJSON::encode($params['params']); $list = oseMscAddon :: getAddonList('register_order', false, 1, 'obj'); foreach($list as $addon) { $action_name= 'register_order.'.$addon->name.'.add'; //echo $action_name; $params = oseMscAddon :: runAction($action_name, $params); } $paymentOrder = $payment->getInstance('Order'); $updated = $paymentOrder->generateOrder('', $member_id, $params); if($updated) { $order_id = $updated; $result['order_id'] = $order_id; JRequest::setVar('order_id',$order_id); } else { $result['success'] = false; $result['title'] = 'Error'; $result['content'] = JText :: _('Error2'); return $result; } //$paymentOrder->__construct('#__osemsc_order_item'); foreach($items as $item) { $itemParams = array(); $entry_type = oseObject::getValue($item,'entry_type'); switch($entry_type) { case('license'): $license_id = oseObject::getValue($item,'entry_id'); $license = oseRegistry::call('lic')->getInstance(0); $licenseInfo = $license->getKeyInfo($license_id,'obj'); //oseExit($item); $licenseInfoParams = oseJson::decode($licenseInfo->params); $msc_id = $licenseInfoParams->msc_id; break; case('msc'): $msc_id = oseObject::getValue($item,'entry_id'); break; } $msc_option = oseObject::getValue($item,'msc_option'); //$paymentInfos = oseRegistry::call('msc')->getExtInfo($msc_id,'payment','obj'); //$paymentInfo = oseObject::getValue($paymentInfos,$msc_option); if ( oseObject::getValue($item,'eternal')) { $itemParams['payment_mode'] = 'm'; } else { $itemParams['payment_mode'] = $payment_mode; } $price = oseObject::getValue($item,'a3'); if($payment_mode == 'a') { if(oseObject::getValue($item,'has_trial')) { $price = oseObject::getValue($item,'a1'); } } //$price = $payment->pricing($price,$msc_id,$osePaymentCurrency); $itemParams['entry_type'] = oseObject::getValue($item,'entry_type'); $itemParams['payment_price'] = oseObject::getValue($item,'first_raw_price'); $itemParams['payment_currency'] = $osePaymentCurrency; $itemParams['create_date'] = oseHTML::getDateTime();//date("Y-m-d H:i:s"); $price_params = $payment->generateOrderParams($msc_id,$price,$payment_mode,$msc_option); $price_params['start_date'] = oseObject::getValue($item,'start_date',null); $price_params['expired_date'] = oseObject::getValue($item,'expired_date',null); $price_params['recurrence_mode'] = oseObject::getValue($item,'recurrence_mode','period'); $itemParams['params'] = oseJSON::encode($price_params); $paymentInfos = oseMscAddon::getExtInfo($msc_id,'payment','obj'); $paymentInfo = oseObject::getValue($paymentInfos,$msc_option); $updated = $paymentOrder->generateOrderItem($order_id,oseObject::getValue($item,'entry_id'), $itemParams); } //$paymentOrder->__construct('#__osemsc_order'); if($updated) { /* $vmorder=self::AddVmOrder($msc_id,$params,$order_number,$paymentInfo); if(!$vmorder['success']) { return $vmorder; } */ $result['success'] = true; $result['title'] = JText :: _('Done'); $result['content'] = JText :: _('Done'); } else { $result['success'] = false; $result['title'] = 'Error'; $result['content'] = JText :: _('Order Generate Error'); } return $result; }
function saveCart($post) { $result = array(); $result['success'] = true; $result['reload'] = false; $result['script'] = false; $result['title'] = JText::_('SUCCESSFUL_ACTIVATION'); $result['content'] = JText::_('MEMBERSHIP_ACTIVATED_CONTINUE'); $juser = oseMscAddon::getPost('juser_', $post); $password1 = JRequest::getString('juser_password1', '', 'post', JREQUEST_ALLOWRAW); $password2 = JRequest::getString('juser_password2', '', 'post', JREQUEST_ALLOWRAW); if (oseObject::getValue($juser, 'firstname', false) && oseObject::getValue($juser, 'lastname', false)) { $juser['name'] = oseObject::getValue($juser, 'firstname', '') . ' ' . oseObject::getValue($juser, 'lastname', ''); } else { $juser['name'] = oseObject::getValue($juser, 'username', false); } $juser['password'] = $juser['password1'] = $password1; $juser['password2'] = $password2; $juser['email1'] = $juser['email']; $juser['email2'] = $juser['email']; // check unique username $list = oseMscAddon::getAddonList('registerOS_body', false, 1, 'obj'); foreach ($list as $addon) { $action_name = oseMscAddon::getActionName($addon, 'formValidate', 'register'); $updated = oseMscAddon::runAction($action_name, array('inner' => true)); if (!$updated['success']) { return $updated; } } if (!$updated['success']) { return $updated; } // check empty password if (empty($juser['password'])) { $result['success'] = false; $result['title'] = 'Error'; $result['content'] = JText::_('MUST_SUPPLY_PASSWORD'); return $result; } $register = oseMscPublic::juserRegister($juser); if (!oseObject::getValue($register, 'success', false)) { return $register; } else { $memConfig = oseMscConfig::getConfig('register', 'obj'); if ($memConfig->auto_login) { $result['reload'] = true; } $list1 = oseMscAddon::getAddonList('registerOS_header', false, 1, 'obj'); $list2 = oseMscAddon::getAddonList('registerOS_body', false, 1, 'obj'); $list3 = oseMscAddon::getAddonList('registerOS_footer', false, 1, 'obj'); $list = array_merge($list1, $list2, $list3); $user = oseObject::getValue($register, 'user'); $cart = oseMscPublic::getCart(); $items = $cart->get('items'); $item = $items[0]; $params = array(); $params['msc_id'] = oseMscPublic::getEntryMscId($item); $params['msc_option'] = oseObject::getValue($item, 'msc_option'); $params['payment_mode'] = $post['payment_payment_mode']; $params['member_id'] = $user->id; $params['payment_method'] = $post['payment_method']; foreach ($list as $addon) { $action_name = oseMscAddon::getActionName($addon, 'save', 'register'); $updated = oseMscAddon::runAction($action_name, $params); if (!$updated['success']) { return $updated; } } $emailConfig = oseMscConfig::getConfig('email', 'obj'); if (!empty($emailConfig->default_reg_email)) { $member = oseRegistry::call('member'); $email = $member->getInstance('email'); $emailTempDetail = $email->getDoc($emailConfig->default_reg_email, 'obj'); if (!empty($emailTempDetail)) { $variables = $email->getEmailVariablesRegistration($user->id); $variables['user'] = oseObject::setValue($variables['user'], 'password', $juser['password1']); $emailParams = $email->buildEmailParams($emailTempDetail->type); $emailDetail = $email->transEmail($emailTempDetail, $variables, $emailParams); $email->sendEmail($emailDetail, $user->email); if ($emailConfig->sendReg2Admin) { $email->sendToAdminGroup($emailDetail, $emailConfig->admin_group); } } } if ($memConfig->auto_login) { $isLogin = $this->login($juser['username'], $juser['password']); if (!$isLogin['success']) { $session = JFactory::getSession(); $return = $session->get('oseReturnUrl', base64_encode('index.php?option=com_osemsc&view=login')); $result['success'] = false; $result['title'] = 'Error'; $result['content'] = $isLogin['content']; $result['returnUrl'] = $return; return $result; } } return $result; } }
protected function generateMscIdOptionJS() { $list = oseMscPublic::getList(); $cart = oseMscPublic::getCart(); $selectedMsc = oseMscAddon::runAction('register.msc.getSelectedMsc', array()); $options = array(); $msc = oseRegistry::call('msc'); foreach ($list as $key => $entry) { $msc_id = oseObject::getValue($entry, 'id'); $node = $msc->getInfo($msc_id, 'obj'); $paymentInfos = $msc->getExtInfo($msc_id, 'payment'); $osePaymentCurrency = $cart->get('currency'); $option = oseMscPublic::generatePriceOption($node, $paymentInfos, $osePaymentCurrency); $options = array_merge($options, $option); } $currency = oseMscPublic::getCurrency(); $mscList = array('total' => count($list), 'results' => $list); $mscOptions = array('total' => count($options), 'results' => $options); $currency = array('total' => count($currency), 'results' => $currency); $output = "var getMscList = function() {return " . oseJson::encode($mscList) . "};"; $output .= "\r\n"; $output .= "var getMscOption = function() {return " . oseJson::encode($mscOptions) . "};"; return $output; }
private static function saveOS($params) { $result = array(); $member_id = $params['member_id']; $payment_method = $params['payment_method']; JRequest::setVar('member_id', $member_id); if (empty($member_id)) { $result['success'] = false; $result['title'] = 'Error'; $result['content'] = JText::_('Error1'); return $result; } $params = array(); $paymentCart = $cart = oseRegistry::call('payment')->getInstance('Cart'); $paymentCart->refreshCartItems($paymentCart->get('items'), $paymentCart->get('currency')); $osePaymentCurrency = $paymentCart->get('currency'); $payment_mode = $paymentCart->getParams('payment_mode'); $subtotal = $paymentCart->getSubtotal(); if (empty($payment_mode)) { $payment_mode = oseMscPublic::savePaymentMode(); } $items = $paymentCart->get('items'); $oneItem = $items[0]; $payment = oseRegistry::call('payment'); $keys = array_keys($items); $order_number = $payment->generateOrderNumber($member_id); $params['entry_type'] = 'msc_list'; $params['payment_price'] = $paymentCart->get('total'); $params['payment_currency'] = $osePaymentCurrency; $params['order_number'] = $order_number; $params['create_date'] = oseHTML::getDateTime(); $params['payment_serial_number'] = substr($order_number, 0, 20); $params['payment_method'] = $payment_method; $params['payment_mode'] = $payment_mode; $params['payment_from'] = 'system_reg'; $params['params'] = array(); $params['params']['start_date'] = oseObject::getValue($oneItem, 'start_date', null); $params['params']['expired_date'] = oseObject::getValue($oneItem, 'expired_date', null); $params['params']['total'] = $paymentCart->get('total'); $params['params']['next_total'] = $paymentCart->get('next_total'); $params['params']['discount'] = $paymentCart->get('discount'); $params['params']['subtotal'] = $subtotal; $params['params']['coupon_user_id'] = $paymentCart->getParams('coupon_user_id'); $params['params']['gross_tax'] = $paymentCart->getTaxParams('amount'); $params['params']['next_gross_tax'] = $paymentCart->getTaxParams('next_amount'); $params['params']['vat_number'] = $paymentCart->getTaxParams('vat_number'); $params['params']['timestamp'] = uniqid("{$member_id}_", true); $params['params']['returnUrl'] = $paymentCart->getParams('returnUrl'); if ($payment_mode == 'a') { $params['params']['has_trial'] = oseObject::getValue($oneItem, 'has_trial', 0); } else { $params['params']['has_trial'] = 0; } $sisow_issuerid = JRequest::getVar('sisow_issuerid'); if ($sisow_issuerid) { $params['params']['sisow_issuerid'] = $sisow_issuerid; } $sisow_payment = JRequest::getVar('sisow_payment'); if ($sisow_payment) { $params['params']['sisow_payment'] = $sisow_payment; } $params['params']['a1'] = $paymentCart->get('total'); $params['params']['p1'] = oseObject::getValue($oneItem, 'p1', 0); $params['params']['t1'] = oseObject::getValue($oneItem, 't1'); $params['params']['a3'] = $paymentCart->get('next_total'); $params['params']['p3'] = oseObject::getValue($oneItem, 'p3', 0); $params['params']['t3'] = oseObject::getValue($oneItem, 't3'); $params['params'] = oseJSON::encode($params['params']); $list = oseMscAddon::getAddonList('register_order', false, 1, 'obj'); foreach ($list as $addon) { $action_name = 'register_order.' . $addon->name . '.add'; $params = oseMscAddon::runAction($action_name, $params); } $paymentOrder = $payment->getInstance('Order'); $updated = $paymentOrder->generateOrder('', $member_id, $params); if ($updated) { $order_id = $updated; $result['order_id'] = $order_id; JRequest::setVar('order_id', $order_id); } else { $result['success'] = false; $result['title'] = 'Error'; $result['content'] = JText::_('Error2'); return $result; } foreach ($items as $item) { $itemParams = array(); $entry_type = oseObject::getValue($item, 'entry_type'); switch ($entry_type) { case ('license'): $license_id = oseObject::getValue($item, 'entry_id'); $license = oseRegistry::call('lic')->getInstance(0); $licenseInfo = $license->getKeyInfo($license_id, 'obj'); $licenseInfoParams = oseJson::decode($licenseInfo->params); $msc_id = $licenseInfoParams->msc_id; break; case ('msc'): $msc_id = oseObject::getValue($item, 'entry_id'); break; } $msc_option = oseObject::getValue($item, 'msc_option'); if (oseObject::getValue($item, 'eternal')) { $itemParams['payment_mode'] = 'm'; } else { $itemParams['payment_mode'] = $payment_mode; } $price = oseObject::getValue($item, 'a3'); if ($payment_mode == 'a') { if (oseObject::getValue($item, 'has_trial')) { $price = oseObject::getValue($item, 'a1'); } } $itemParams['entry_type'] = oseObject::getValue($item, 'entry_type'); $itemParams['payment_price'] = oseObject::getValue($item, 'first_raw_price'); $itemParams['payment_currency'] = $osePaymentCurrency; $itemParams['create_date'] = oseHTML::getDateTime(); $price_params = $payment->generateOrderParams($msc_id, $price, $payment_mode, $msc_option); $price_params['start_date'] = oseObject::getValue($item, 'start_date', null); $price_params['expired_date'] = oseObject::getValue($item, 'expired_date', null); $price_params['recurrence_mode'] = oseObject::getValue($item, 'recurrence_mode', 'period'); $itemParams['params'] = oseJSON::encode($price_params); $paymentInfos = oseMscAddon::getExtInfo($msc_id, 'payment', 'obj'); $paymentInfo = oseObject::getValue($paymentInfos, $msc_option); $updated = $paymentOrder->generateOrderItem($order_id, oseObject::getValue($item, 'entry_id'), $itemParams); } if ($updated) { $result['success'] = true; $result['title'] = JText::_('Done'); $result['content'] = JText::_('Done'); } else { $result['success'] = false; $result['title'] = 'Error'; $result['content'] = JText::_('Order Generate Error'); } $emailConfig = oseMscConfig::getConfig('email', 'obj'); if (!empty($emailConfig->order_notification)) { $db = oseDB::instance(); $where = array(); $where[] = '`order_id` = ' . $db->Quote($order_id); $orderInfo = $paymentOrder->getOrder($where, 'obj'); $memEmail = oseRegistry::call('member')->getInstance('Email'); $receipt = $memEmail->getOrderNotification($orderInfo);//print_r($receipt);exit; $memEmail->sendToAdminGroup($receipt, $emailConfig->admin_group); } return $result; }
private function cancelMsc($order_id, $order_item_id, $msc_id, $user_id) { $params = oseRegistry::call('member')->getAddonParams($msc_id, $user_id, $order_id, array('order_item_id' => $order_item_id)); $member = oseRegistry::call('member'); $member->instance($user_id); $msc = oseRegistry::call('msc'); $ext = $msc->getExtInfo($msc_id, 'msc', 'obj'); $updated = oseMscAddon::runAction('member.msc.cancelMsc', $params, true, false); return $updated; }