public static function getInstance($type) { static $instance; $className = "osePaymentSC{$type}"; $arrayInstance = array(); $arrayInstance['MscList'] = 'osePaymentMscList'; $arrayInstance['View'] = 'osePaymentView'; $arrayInstance['Price'] = 'osePaymentPrice'; $arrayInstance['Tax'] = 'osePaymentTax'; $arrayInstance['GateWay'] = 'osePaymentGateWay'; if (isset($arrayInstance[$type])) { if (strtolower($type) == 'price') { $primaryCurrency = osePayment::getCurrencyInfo(); $instance = new osePaymentPrice($primaryCurrency->value, oseJson::decode($primaryCurrency->default)); return $instance; } $className = $arrayInstance[$type]; } else { $className = "osePaymentSC{$type}"; } if (!$instance instanceof $className) { $instance = new $className(); } return $instance; }
function confirmOrder($order_id, $params = array()) { $db = oseDB::instance(); $where = array(); $where[] = '`order_id` = ' . $db->Quote($order_id); $orderInfo = $this->getOrder($where, 'obj'); if (!isset($params['params'])) { $params['params'] = oseJson::decode($orderInfo->params); $params['params']->recurrence_times = 1 + oseObject::getValue($params['params'], 'recurrence_times', 0); $params['params'] = oseJson::encode($params['params']); } $this->updateOrder($order_id, "confirmed", $params); $user_id = $orderInfo->user_id; $payment_mode = $orderInfo->payment_mode; $payment_method = $orderInfo->payment_method; $user = new JUser($user_id); $email = $user->get('email'); $query = " SELECT * FROM `#__osemsc_order_item`" . " WHERE `order_id` = '{$orderInfo->order_id}'"; $db->setQuery($query); $items = oseDB::loadList('obj'); foreach ($items as $item) { switch ($item->entry_type) { case 'license': $license = oseRegistry::call('lic')->getInstance(0); $licenseInfo = $license->getKeyInfo($item->entry_id, 'obj'); $licenseInfoParams = oseJson::decode($licenseInfo->params); $msc_id = $licenseInfoParams->msc_id; $updated = $this->joinMsc($order_id, $item->order_item_id, $msc_id, $user_id); break; default: case 'msc': $updated = $this->joinMsc($order_id, $item->order_item_id, $item->entry_id, $user_id); break; } if (!$updated['success']) { return $updated; } } //Auto reucrring email control $emailConfig = oseMscConfig::getConfig('email', 'obj'); $send = true; $orderparams = oseJson::decode($params['params']); $recurrence_times = oseObject::getValue($orderparams, 'recurrence_times', 1); if ($recurrence_times > 1 && oseObject::getValue($emailConfig, 'sendReceiptOnlyOneTime', false)) { $send = false; } if ($orderInfo->payment_mode == 'm' && (empty($orderInfo->payment_price) || $orderInfo->payment_price == '0.00')) { if (!oseObject::getValue($emailConfig, 'sendFreeReceipt', false)) { $send = false; } } if (oseObject::getValue($emailConfig, 'disabledSendEmailInAdmin', false)) { $app = JFactory::getApplication('CPU'); if ($app->isAdmin()) { $send = false; } } if ($send && !empty($emailConfig->default_receipt)) { $memEmail = oseRegistry::call('member')->getInstance('Email'); $receipt = $memEmail->getReceipt($orderInfo); $memEmail->sendEmail($receipt, $email); if (!empty($emailConfig->sendReceipt2Admin)) { $memEmail->sendToAdminGroup($receipt, $emailConfig->admin_group); } } $orderInfoParams = oseJson::decode($orderInfo->params); $session = JFactory::getSession(); $return_url = isset($orderInfoParams->returnUrl) ? urldecode($orderInfoParams->returnUrl) : "index.php"; $return['success'] = true; $return['payment'] = $payment_method; $return['payment_method'] = $payment_method; $return['title'] = JText::_('SUCCESSFUL_ACTIVATION'); $return['content'] = JText::_('MEMBERSHIP_ACTIVATED_CONTINUE'); $return['url'] = $return_url; $return['returnUrl'] = $return_url; $this->updateOrder($order_id, "confirmed"); osePayment::getInstance('Cart')->init(); return $return; }