コード例 #1
0
ファイル: paymentSC.php プロジェクト: kosmosby/medicine-prof
 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;
 }
コード例 #2
0
 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;
 }