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; } }
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; } }