예제 #1
0
 function AuthorizeARBCheckStatus($orderId)
 {
     $db =& JFactory::getDBO();
     $query = " SELECT `order_number` FROM `#__osemsc_order` " . " WHERE `order-id`= '{$orderId}'";
     $db->setQuery($query);
     $ProfileID = $db->loadResult();
     if (!empty($ProfileID)) {
         require_once JPATH_ADMINISTRATOR . DS . 'components' . DS . 'com_osemsc' . DS . 'libraries' . DS . 'AuthnetARB.class.php';
         $arb = new AuthnetARB();
         $arb->setParameter('subscrId', $ProfileID);
         $arb->getSubscriptionStatus();
         return $arb->status;
     }
 }
예제 #2
0
 protected function apiCheck($oItem)
 {
     $result = array();
     $db = oseDB::instance();
     static $arb;
     $oseMscConfig = oseMscConfig::getConfig('payment', 'obj');
     // Authorize setting
     if (!defined('AUTHORIZENET_API_LOGIN_ID')) {
         define("AUTHORIZENET_API_LOGIN_ID", oseObject::getValue($oseMscConfig, 'an_loginid'));
     }
     if (!defined('AUTHORIZENET_TRANSACTION_KEY')) {
         define("AUTHORIZENET_TRANSACTION_KEY", oseObject::getValue($oseMscConfig, 'an_transkey'));
     }
     if (!$arb instanceof AuthnetARB) {
         $arb = new AuthnetARB();
         $pConfig = oseMscConfig::getConfig('payment', 'obj');
         $test_mode = $pConfig->cc_testmode;
         if ($test_mode) {
             $arb->apitest = "api.authorize.net";
         } else {
             $arb->url = "api.authorize.net";
         }
         $arb->login = AUTHORIZENET_API_LOGIN_ID;
         $arb->transkey = AUTHORIZENET_TRANSACTION_KEY;
     }
     // End
     // init Beanstream
     // End
     //oseExit($oItem->payment_method);
     $oParams = oseJson::decode($oItem->params);
     if ($oItem->payment_method == 'authorize') {
         if (empty($oItem->payment_serial_number)) {
             $result['success'] = false;
             $result['title'] = JText::_('ERROR');
             $result['content'] = JText::_('ERROR');
             oseExit(oseJson::encode($result));
         }
         if ($oItem->payment_mode == 'm') {
             $vals = array();
             // update expired date
             $vals['id'] = $obj->id;
             //$vals['status'] = 0;
             $vals['virtual_status'] = 0;
             $vals['eternal'] = 0;
             //$vals['expired_date'] = oseHtml::getDateTime();
             oseDB::update('#__osemsc_member', 'id', $vals);
         } else {
             $arb->setParameter('subscrId', $oItem->payment_serial_number);
             $arb->getSubscriptionStatus();
             //oseExit($arb);
             $response = $arb->status;
             $vals = array();
             if (strtolower($response) == 'active' && $arb->getResponseCode() == 'I00001' && $arb->isSuccessful()) {
                 $recurrence_num = oseObject::getValue($oParams, 'p3');
                 $recurrence_unit = oseObject::getValue($oParams, 't3');
                 if ($obj->expired_date == '0000-00-00 00:00:00') {
                     $expired_date = " DATE_ADD(`start_date` ,INTERVAL {$recurrence_num} {$recurrence_unit}) ";
                 } else {
                     $expired_date = " DATE_ADD(`expired_date` ,INTERVAL {$recurrence_num} {$recurrence_unit}) ";
                 }
                 $query = " UPDATE `#__osemsc_member` " . " SET  `status` = 1 ,`eternal`=0, `expired_date` = {$expired_date}" . " WHERE `id` = '{$oItem->member_id}' AND `expired_date` < DATE_ADD(NOW(),INTERVAL 2 DAY)";
                 $db->setQuery($query);
                 $updated = oseDB::query();
                 $result['finish'] = false;
                 $result['success'] = true;
                 $result['title'] = JText::_('SUCCESS');
                 $result['content'] = JText::_('SUCCESS');
             } elseif (substr($arb->getResponseCode(), 0, 1) == 'E') {
                 $vals['id'] = $oItem->member_id;
                 $vals['virtual_status'] = 0;
                 //$vals['status'] = 0;
                 $vals['eternal'] = 0;
                 //$vals['expired_date'] = oseHtml::getDateTime();
                 //oseDB::update('#__osemsc_member','id',$vals);
                 /*$ofVals = array();
                 		$ofVals['id'] = $oItem->fix_id;
                 		$ofVals['status'] = 'fixed';
                 		oseDB::update("#__osemsc_order_fix",'id',$ofVals);*/
                 $result['finish'] = true;
                 $result['success'] = false;
                 $result['title'] = JText::_('ERROR');
                 $result['content'] = $arb->getResponse();
             } else {
                 // update expired date
                 $vals['id'] = $oItem->member_id;
                 $vals['virtual_status'] = 0;
                 //$vals['status'] = 0;
                 $vals['eternal'] = 0;
                 //$vals['expired_date'] = oseHtml::getDateTime();
                 oseDB::update('#__osemsc_member', 'id', $vals);
                 /*$ofVals = array();
                 		$ofVals['id'] = $oItem->fix_id;
                 		$ofVals['status'] = 'fixed';
                 		oseDB::update("#__osemsc_order_fix",'id',$ofVals);*/
                 $result['finish'] = true;
                 $result['success'] = true;
                 $result['title'] = JText::_('SUCCESS');
                 $result['content'] = JText::_('SUCCESS');
             }
             return $result;
         }
         // if find expired date, updated it
     } else {
         $result['success'] = false;
         $result['title'] = JText::_('ERROR');
         $result['content'] = JText::_('Only Support Authorize');
         return $result;
     }
 }