示例#1
0
文件: Oe.php 项目: rme/pm2qb
 /**
  * 
  * 
  * @param string $method
  * @param string $action
  * @param string $type
  * @param string $qbxml
  * @param array $callbacks
  * @param mixed $uniqueid
  * @param integer $priority
  * @param string $err
  * @param integer $recur
  * @return boolean
  */
 public function handleQBXML($method, $action, $type, $qbxml, $callbacks, $uniqueid, $priority, &$err, $recur = null)
 {
     $this->_setError(QUICKBOOKS_API_ERROR_OK);
     // Make sure we have a session ticket
     if (!$this->_isSignedOn()) {
         $this->_signOn();
         if ($this->errorNumber()) {
             return false;
         }
     }
     // @TODO Determine $action if it's not set
     // If a unique ID wasn't provided, we'll make one up
     if (strlen($uniqueid) == 0) {
         $uniqueid = md5(time() . $this->_user . mt_rand());
     }
     // The qbXML requests that get passed to this function are without the
     //	typical qbXML wrapper info, so we need to modify them to make them
     // 	into complete, valid requests.
     $qbxml = $this->_makeValidQBXML($qbxml, $this->_config['qbxml_version'], $this->_config['qbxml_onerror']);
     //$requestID = null;
     $extra = array('callbacks' => $callbacks);
     $last_action_time = null;
     $last_actionident_time = null;
     $qb_identifiers = array();
     // Send the request to QuickBooks Online Edition
     $response = $this->_request($qbxml);
     // Try to map the response to QuickBooks objects
     $map = array(QUICKBOOKS_ADD_CUSTOMER => array('', 'QuickBooks_Callbacks_API_Callbacks::CustomerAddResponse'), QUICKBOOKS_MOD_CUSTOMER => array('', 'QuickBooks_Callbacks_API_Callbacks::CustomerModResponse'), QUICKBOOKS_QUERY_CUSTOMER => array('', 'QuickBooks_Callbacks_API_Callbacks::CustomerQueryResponse'), '*' => array('', 'QuickBooks_Callbacks_API_Callbacks::RawQBXMLResponse'));
     //print($qbxml);
     //print('CALL THIS: QuickBooks_Server_API_Callbacks::' . $action . 'Response');
     //print($response);
     return QuickBooks_Callbacks::callResponseHandler($this->_driver, $map, $action, $this->_user, $action, $uniqueid, $extra, $err, $last_action_time, $last_actionident_time, $response, $qb_identifiers);
     //exit;
     /*
     if ($recur)
     {
     	return false;
     }
     else
     {
     	return $this->_driver->queueEnqueue($this->_user, $action, $uniqueid, true, $priority, $extra, $qbxml);
     }
     */
 }
示例#2
0
 /**
  * 
  * 
  * @param string $hook
  * @param string $requestID
  * @param string $user
  * @param string $ticket
  * @param string $err
  * @param array $hook_data
  * @return boolean
  */
 protected function _callHooks($hook, $requestID, $user, $ticket, &$err, $hook_data)
 {
     $err = '';
     return QuickBooks_Callbacks::callHook($this->_driver, $this->_hooks, $hook, $requestID, $user, $ticket, $err, $hook_data, $this->_callback_config);
 }
示例#3
0
 /**
  * Call an error-handler function and update the status of a request to ERROR
  * 
  * @param string $ticket
  * @param integer $errnum		The error number from QuickBooks (see the QuickBooks SDK/IDN for a list of error codes)
  * @param string $errmsg		The error message from QuickBooks
  * @param string $requestID
  * @param string $action
  * @param mixed $ident
  * @param array $extra
  * @param string $err
  * @param string $xml
  * @param array $qb_identifiers
  */
 protected function _handleError($ticket, $errnum, $errmsg, $requestID, $action, $ident, $extra, &$err, $xml = '', $qb_identifiers = array())
 {
     // , $requestID, $user, $action, $ident, $extra, &$err, $xml, $qb_identifier
     // Call the error handler (if one is set)
     // First, set the status of the item to error
     if ($action and $ident) {
         $this->_driver->queueStatus($ticket, $action, $ident, QUICKBOOKS_STATUS_ERROR, $errnum . ': ' . $errmsg);
     }
     // Log the last error (for the ticket)
     $this->_driver->errorLog($ticket, $errnum, $errmsg);
     $this->_driver->log('Attempting to handle error: ' . $errnum . ', ' . $errmsg);
     // By default, we don't want to continue if the error is not handled
     $continue = false;
     // Get username of user which experienced the error
     $user = $this->_driver->authResolve($ticket);
     // CALL THE ERROR HANDLER
     $err = '';
     $continue = QuickBooks_Callbacks::callErrorHandler($this->_driver, $this->_onerror, $errnum, $errmsg, $user, $action, $ident, $extra, $err, $xml, $this->_callback_config);
     //													$Driver, $errmap, $errnum, $errmsg, $user, $action, $ident, $extra, &$errerr, $xml, $callback_config
     if ($err) {
         // Log error messages returned by the error handler
         $this->_driver->log('An error occured while handling error: ' . $errnum . ': ' . $errmsg . ': ' . $err, $ticket, QUICKBOOKS_LOG_NORMAL);
         $this->_driver->errorLog($ticket, QUICKBOOKS_ERROR_HANDLER, $err);
     }
     // Log the last error (for the log)
     $this->_driver->log('Handled error: ' . $errnum . ': ' . $errmsg . ' (handler returned: ' . $continue . ')', $ticket, QUICKBOOKS_LOG_NORMAL);
     // Update the queue status
     if ($action and $ident) {
         if ($continue) {
             $this->_driver->queueStatus($ticket, $action, $ident, QUICKBOOKS_STATUS_HANDLED, $errnum . ': ' . $errmsg);
         }
     }
     return $continue;
 }
示例#4
0
 /**
  * 
  * 
  * @todo Support for object instance error handlers
  * 
  */
 public static function callErrorHandler($Driver, $errmap, $errnum, $errmsg, $user, $requestID, $action, $ident, $extra, &$errerr, $xml, $callback_config)
 {
     // $Driver, &$map, $action, $which, $user, $action, $ident, $extra, &$err, $last_action_time, $last_actionident_time, $xml_or_version = '', $qb_identifier_or_locale = array(), $callback_config = array(), $qbxml = null
     // Build the requestID
     //$requestID = QuickBooks_Utilities::constructRequestID($action, $ident);
     $callback = '';
     /*if (is_object($this->_instance_onerror) and 
     			method_exists($this->_instance_onerror, 'e' . $errnum))
     		{
     			$func = get_class($this->_instance_onerror) . '->e' . $errnum;
     		}*/
     //else
     if (isset($errmap[$errnum])) {
         $callback = $errmap[$errnum];
     } else {
         if (isset($errmap[$action])) {
             $callback = $errmap[$action];
         } else {
             if (isset($errmap['!'])) {
                 $callback = $errmap['!'];
             } else {
                 if (isset($errmap['*'])) {
                     $callback = $errmap['*'];
                 }
             }
         }
     }
     // Determine the type of hook
     $type = QuickBooks_Callbacks::_type($callback, $Driver, null);
     $vars = array($requestID, $user, $action, $ident, $extra, &$errerr, $xml, $errnum, $errmsg, $callback_config);
     $errerr = '';
     if ($type == QUICKBOOKS_CALLBACKS_TYPE_OBJECT_METHOD) {
         $Driver->log('Object method error handler: ' . get_class($callback[0]) . '->' . $callback[1], null, QUICKBOOKS_LOG_VERBOSE);
         $errerr = '';
         $continue = QuickBooks_Callbacks::_callObjectMethod($callback, $vars, $errerr, 5);
         if ($errerr) {
             $Driver->log('Error handler returned an error: ' . $errerr, null, QUICKBOOKS_LOG_NORMAL);
             return false;
         }
     } else {
         if ($type == QUICKBOOKS_CALLBACKS_TYPE_FUNCTION) {
             // It's a callback FUNCTION
             $Driver->log('Function error handler: ' . $callback, null, QUICKBOOKS_LOG_VERBOSE);
             $errerr = '';
             // This is an error message *returned by* the error handler function
             $continue = QuickBooks_Callbacks::_callFunction($callback, $vars, $errerr, 5);
             //$continue = $func($requestID, $user, $action, $ident, $extra, $errerr, $xml, $errnum, $errmsg, $callback_config);
             if ($errerr) {
                 $Driver->log('Error handler returned an error: ' . $errerr, null, QUICKBOOKS_LOG_NORMAL);
                 return false;
             }
         } else {
             if ($type == QUICKBOOKS_CALLBACKS_TYPE_STATIC_METHOD) {
                 // It's a callback STATIC METHOD
                 //$tmp = explode('::', $func);
                 //$class = trim(current($tmp));
                 //$method = trim(end($tmp));
                 $Driver->log('Static method error handler: ' . $callback, null, QUICKBOOKS_LOG_VERBOSE);
                 $errerr = '';
                 $continue = QuickBooks_Callbacks::_callStaticMethod($callback, $vars, $errerr, 5);
                 if ($errerr) {
                     $Driver->log('Error handler returned an error: ' . $errerr, null, QUICKBOOKS_LOG_NORMAL);
                     return false;
                 }
             } else {
                 return false;
             }
         }
     }
     return $continue;
 }
示例#5
0
 /**
  * 
  * 
  * @todo Implement error handling routines
  *
  * @param array $hooks
  * @param string $hook
  * @param string $requestID
  * @param string $user
  * @param string $err
  * @param array $hook_data
  * @param array $callback_config
  * @return boolean
  */
 protected static function _callHooks(&$hooks, $hook, $requestID, $user, &$err, $hook_data, $callback_config = array())
 {
     $Driver = QuickBooks_Driver_Singleton::getInstance();
     return QuickBooks_Callbacks::callHook($Driver, $hooks, $hook, $requestID, $user, null, $err, $hook_data, $callback_config, __FILE__, __LINE__);
 }
示例#6
0
 /**
  *
  *
  * @param string $method
  * @param string $action
  * @param string $type
  * @param string $qbxml
  * @param array $callbacks
  * @param mixed $uniqueid
  * @param integer $priority
  * @param string $err
  * @param integer $recur
  * @return boolean
  */
 public function handleQBXML($method, $action, $type, $qbxml, $callbacks, $uniqueid, $priority, &$err, $recur = null)
 {
     $this->_setError(QUICKBOOKS_API_ERROR_OK);
     // Make sure we have a session ticket
     if (!$this->_isSignedOn()) {
         $this->_signOn();
         if ($this->errorNumber()) {
             return false;
         }
     }
     // @TODO Determine $action if it's not set
     // If a unique ID wasn't provided, we'll make one up
     if (strlen($uniqueid) == 0) {
         $uniqueid = md5(time() . $this->_user . mt_rand());
     }
     // The qbXML requests that get passed to this function are without the
     //	typical qbXML wrapper info, so we need to modify them to make them
     // 	into complete, valid requests.
     $qbxml = $this->_makeValidQBXML($qbxml, $this->_config['qbxml_version'], $this->_config['qbxml_onerror']);
     //$requestID = null;
     $extra = array('callbacks' => $callbacks);
     $last_action_time = null;
     $last_actionident_time = null;
     $qb_identifiers = array();
     // Send the request to QuickBooks Online Edition
     $response = $this->_request($qbxml);
     // Try to map the response to QuickBooks objects
     $map = array(QUICKBOOKS_ADD_CLASS => array('', 'QuickBooks_Callbacks_API_Callbacks::ClassAddResponse'), QUICKBOOKS_QUERY_CLASS => array('', 'QuickBooks_Callbacks_API_Callbacks::ClassQueryResponse'), QUICKBOOKS_ADD_ACCOUNT => array('', 'QuickBooks_Callbacks_API_Callbacks::AccountAddResponse'), QUICKBOOKS_MOD_ACCOUNT => array('', 'QuickBooks_Callbacks_API_Callbacks::AccountModResponse'), QUICKBOOKS_QUERY_ACCOUNT => array('', 'QuickBooks_Callbacks_API_Callbacks::AccountQueryResponse'), QUICKBOOKS_ADD_CUSTOMER => array('', 'QuickBooks_Callbacks_API_Callbacks::CustomerAddResponse'), QUICKBOOKS_MOD_CUSTOMER => array('', 'QuickBooks_Callbacks_API_Callbacks::CustomerModResponse'), QUICKBOOKS_QUERY_CUSTOMER => array('', 'QuickBooks_Callbacks_API_Callbacks::CustomerQueryResponse'), QUICKBOOKS_ADD_CUSTOMERTYPE => array('', 'QuickBooks_Callbacks_API_Callbacks::CustomerTypeAddResponse'), QUICKBOOKS_QUERY_CUSTOMERTYPE => array('', 'QuickBooks_Callbacks_API_Callbacks::CustomerTypeQueryResponse'), QUICKBOOKS_ADD_DEPOSIT => array('', 'QuickBooks_Callbacks_API_Callbacks::DepositAddResponse'), QUICKBOOKS_MOD_DEPOSIT => array('', 'QuickBooks_Callbacks_API_Callbacks::DepositModResponse'), QUICKBOOKS_QUERY_DEPOSIT => array('', 'QuickBooks_Callbacks_API_Callbacks::DepositQueryResponse'), QUICKBOOKS_ADD_DATAEXT => array('', 'QuickBooks_Callbacks_API_Callbacks::DataExtAddResponse'), QUICKBOOKS_MOD_DATAEXT => array('', 'QuickBooks_Callbacks_API_Callbacks::DataExtModResponse'), QUICKBOOKS_DEL_DATAEXT => array('', 'QuickBooks_Callbacks_API_Callbacks::DataExtQueryResponse'), QUICKBOOKS_ADD_INVOICE => array('', 'QuickBooks_Callbacks_API_Callbacks::InvoiceAddResponse'), QUICKBOOKS_MOD_INVOICE => array('', 'QuickBooks_Callbacks_API_Callbacks::InvoiceModResponse'), QUICKBOOKS_QUERY_INVOICE => array('', 'QuickBooks_Callbacks_API_Callbacks::InvoiceQueryResponse'), QUICKBOOKS_ADD_EMPLOYEE => array('', 'QuickBooks_Callbacks_API_Callbacks::EmployeeAddResponse'), QUICKBOOKS_MOD_EMPLOYEE => array('', 'QuickBooks_Callbacks_API_Callbacks::EmployeeModResponse'), QUICKBOOKS_QUERY_EMPLOYEE => array('', 'QuickBooks_Callbacks_API_Callbacks::EmployeeQueryResponse'), QUICKBOOKS_ADD_ESTIMATE => array('', 'QuickBooks_Callbacks_API_Callbacks::EstimateAddResponse'), QUICKBOOKS_MOD_ESTIMATE => array('', 'QuickBooks_Callbacks_API_Callbacks::EstimateModResponse'), QUICKBOOKS_QUERY_ESTIMATE => array('', 'QuickBooks_Callbacks_API_Callbacks::EstimateQueryResponse'), QUICKBOOKS_ADD_PAYMENTMETHOD => array('', 'QuickBooks_Callbacks_API_Callbacks::PaymentAddResponse'), QUICKBOOKS_QUERY_PAYMENTMETHOD => array('', 'QuickBooks_Callbacks_API_Callbacks::PaymentQueryResponse'), QUICKBOOKS_ADD_RECEIVEPAYMENT => array('', 'QuickBooks_Callbacks_API_Callbacks::ReceivePaymentAddResponse'), QUICKBOOKS_MOD_RECEIVEPAYMENT => array('', 'QuickBooks_Callbacks_API_Callbacks::ReceivePaymentModResponse'), QUICKBOOKS_QUERY_RECEIVEPAYMENT => array('', 'QuickBooks_Callbacks_API_Callbacks::ReceivePaymentQueryResponse'), QUICKBOOKS_QUERY_ITEM => array('', 'QuickBooks_Callbacks_API_Callbacks::Ite,QueryResponse'), QUICKBOOKS_ADD_DISCOUNTITEM => array('', 'QuickBooks_Callbacks_API_Callbacks::DiscountItemAddResponse'), QUICKBOOKS_MOD_DISCOUNTITEM => array('', 'QuickBooks_Callbacks_API_Callbacks::DiscountItemModResponse'), QUICKBOOKS_QUERY_DISCOUNTITEM => array('', 'QuickBooks_Callbacks_API_Callbacks::DiscountItemQueryResponse'), QUICKBOOKS_ADD_FIXEDASSETITEM => array('', 'QuickBooks_Callbacks_API_Callbacks::FixedAssetItemAddResponse'), QUICKBOOKS_MOD_FIXEDASSETITEM => array('', 'QuickBooks_Callbacks_API_Callbacks::FixedAssetItemModResponse'), QUICKBOOKS_QUERY_FIXEDASSETITEM => array('', 'QuickBooks_Callbacks_API_Callbacks::FixedAssetItemQueryResponse'), QUICKBOOKS_ADD_SERVICEITEM => array('', 'QuickBooks_Callbacks_API_Callbacks::ServiceItemAddResponse'), QUICKBOOKS_MOD_SERVICEITEM => array('', 'QuickBooks_Callbacks_API_Callbacks::ServiceItemModResponse'), QUICKBOOKS_QUERY_SERVICEITEM => array('', 'QuickBooks_Callbacks_API_Callbacks::ServiceItemQueryResponse'), QUICKBOOKS_ADD_INVENTORYITEM => array('', 'QuickBooks_Callbacks_API_Callbacks::InventoryItemAddResponse'), QUICKBOOKS_MOD_INVENTORYITEM => array('', 'QuickBooks_Callbacks_API_Callbacks::InventoryItemModResponse'), QUICKBOOKS_QUERY_INVENTORYITEM => array('', 'QuickBooks_Callbacks_API_Callbacks::InventoryItemQueryResponse'), QUICKBOOKS_ADD_NONINVENTORYITEM => array('', 'QuickBooks_Callbacks_API_Callbacks::NonInventoryItemAddResponse'), QUICKBOOKS_MOD_NONINVENTORYITEM => array('', 'QuickBooks_Callbacks_API_Callbacks::NonInventoryItemModResponse'), QUICKBOOKS_QUERY_NONINVENTORYITEM => array('', 'QuickBooks_Callbacks_API_Callbacks::NonInventoryItemQueryResponse'), QUICKBOOKS_ADD_OTHERCHARGEITEM => array('', 'QuickBooks_Callbacks_API_Callbacks::OtherChargeItemAddResponse'), QUICKBOOKS_MOD_OTHERCHARGEITEM => array('', 'QuickBooks_Callbacks_API_Callbacks::OtherChargeItemModResponse'), QUICKBOOKS_QUERY_OTHERCHARGEITEM => array('', 'QuickBooks_Callbacks_API_Callbacks::OtherChargeItemQueryResponse'), QUICKBOOKS_ADD_SALESTAXITEM => array('', 'QuickBooks_Callbacks_API_Callbacks::SalesTaxItemAddResponse'), QUICKBOOKS_MOD_SALESTAXITEM => array('', 'QuickBooks_Callbacks_API_Callbacks::SalesTaxItemModResponse'), QUICKBOOKS_QUERY_SALESTAXITEM => array('', 'QuickBooks_Callbacks_API_Callbacks::SaltesTaxItemQueryResponse'), QUICKBOOKS_ADD_SALESRECEIPT => array('', 'QuickBooks_Callbacks_API_Callbacks::SalesReceiptAddResponse'), QUICKBOOKS_MOD_SALESRECEIPT => array('', 'QuickBooks_Callbacks_API_Callbacks::SalesReceiptModResponse'), QUICKBOOKS_QUERY_SALESRECEIPT => array('', 'QuickBooks_Callbacks_API_Callbacks::SaltesReceiptQueryResponse'), QUICKBOOKS_ADD_SHIPMETHOD => array('', 'QuickBooks_Callbacks_API_Callbacks::ShipMethodAddResponse'), QUICKBOOKS_QUERY_SHIPMETHOD => array('', 'QuickBooks_Callbacks_API_Callbacks::ShipMethodQueryResponse'), QUICKBOOKS_ADD_VENDOR => array('', 'QuickBooks_Callbacks_API_Callbacks::VendorAddResponse'), QUICKBOOKS_MOD_VENDOR => array('', 'QuickBooks_Callbacks_API_Callbacks::VendorModResponse'), QUICKBOOKS_QUERY_VENDOR => array('', 'QuickBooks_Callbacks_API_Callbacks::VendorQueryResponse'), '*' => array('', 'QuickBooks_Callbacks_API_Callbacks::RawQBXMLResponse'));
     //print($qbxml);
     //print('CALL THIS: QuickBooks_Server_API_Callbacks::' . $action . 'Response');
     //print($response);
     return QuickBooks_Callbacks::callResponseHandler($this->_driver, $map, $action, $this->_user, $action, $uniqueid, $extra, $err, $last_action_time, $last_actionident_time, $response, $qb_identifiers);
     //exit;
     /*
     if ($recur)
     {
     	return false;
     }
     else
     {
     	return $this->_driver->queueEnqueue($this->_user, $action, $uniqueid, true, $priority, $extra, $qbxml);
     }
     */
 }
示例#7
0
 /**
  * Call any user-defined hooks hooked into a particular type of event
  * 
  * Hooks will be executed in the order they were added in. If any hook 
  * returns FALSE, then execution for that type of hook will be stopped and 
  * no other hooks will run. Errors reported via the $err parameter will be 
  * logged using the driver logging mechanism. 
  * 
  * @param string $hook			The type of hook we're to execute
  * @param string $ticket		The Web Connector ticket 
  * @param string $err			Any error messages that should be reported 
  * @param array $hook_data		An array of hook data
  * @return boolean
  */
 protected final function _callHook($hook, $ticket, &$err, $hook_data)
 {
     $user = '';
     if ($ticket) {
         $user = (string) $this->_authResolve($ticket);
     }
     QuickBooks_Callbacks::callHook($this, $this->_hooks, $hook, null, $user, $ticket, $err, $hook_data, null, __FILE__, __LINE__);
     /*
     if (isset($this->_hooks[$hook]))
     {
     	foreach ($this->_hooks[$hook] as $func)		// Call each hook (if a hook return false, stop calling hooks)
     	{
     		$ret = $func($ticket, $user, $err, $hook_data);
     		
     		if ($ret == false)
     		{
     			return false;
     		}
     	}
     }
     */
     if ($err) {
         // Log errors reporting by hooks
         $this->errorLog($ticket, QUICKBOOKS_ERROR_HOOK, $err);
     }
     return true;
 }
示例#8
0
 /**
  * Call any user-defined hooks hooked into a particular type of event
  * 
  * Hooks will be executed in the order they were added in. If any hook 
  * returns FALSE, then execution for that type of hook will be stopped and 
  * no other hooks will run. Errors reported via the $err parameter will be 
  * logged using the driver logging mechanism. 
  * 
  * @param string $hook			The type of hook we're to execute
  * @param string $ticket		The Web Connector ticket 
  * @param string $err			Any error messages that should be reported 
  * @param array $hook_data		An array of hook data
  * @return boolean
  */
 protected final function _callHook($hook, $ticket, &$err, $hook_data)
 {
     $user = '';
     if ($ticket) {
         $user = (string) $this->_authResolve($ticket);
     }
     // Call the hook
     QuickBooks_Callbacks::callHook($this, $this->_hooks, $hook, null, $user, $ticket, $err, $hook_data, null, __FILE__, __LINE__);
     if ($err) {
         // Log errors reporting by hooks
         $this->errorLog($ticket, QUICKBOOKS_ERROR_HOOK, $err);
     }
     return true;
 }
 protected function _callHooks(&$hooks, $hook, $requestID, $user, &$err, $hook_data, $callback_config = array())
 {
     // @TODO Will this work with non-SQL drivers?
     $Driver = $this->_driver;
     return QuickBooks_Callbacks::callHook($Driver, $hooks, $hook, $requestID, $user, null, $err, $hook_data, $callback_config, __FILE__, __LINE__);
 }
示例#10
0
 /**
  * 
  * @TODO This callback code should be ported to QuickBooks_Callbacks style calls
  * 
  * @param string $func_or_method
  * @param string $method
  * @param string $action
  * @param mixed $ID
  * @param string $err
  * @param string $qbxml
  * @param object $qbobject
  * @param resource $qbres
  * @return boolean
  */
 protected static function _callCallbacks($funcs_or_methods, $method, $action, $ID, &$err, $qbxml, $qbobject, $qbres)
 {
     foreach ($funcs_or_methods as $callback) {
         if (!$callback) {
             continue;
         }
         $return = QuickBooks_Callbacks::callAPICallback(null, null, $callback, $method, $action, $ID, $err, $qbxml, $qbobject, $qbres);
         /*
         else if (false !== strpos($func, '::') and 
         	true) // method_exists()) 	// is this safe to do?
         {
         	// Callback *static method*
         	
         	$tmp = explode('::', $func);
         	
         	$return = call_user_func(array( $tmp[0], $tmp[1] ), $method, $action, $ID, $err, $qbxml, $qbobject, $qbres);
         }
         else if (function_exists($func))
         {
         	// Callback *function* 
         	
         	$return = call_user_func($func, $method, $action, $ID, $err, $qbxml, $qbobject, $qbres);
         }
         else
         {
         	$err = 'Could not call function or method: ' . $func;
         	return false;
         }
         */
         if (!$return) {
             break;
         }
     }
     if ($err) {
         return false;
     }
     return true;
 }
示例#11
0
 protected function _doCallback($auth_id, $ticket, $target_url, $realm_id_pseudonym)
 {
     if ($this->_callback) {
         $err = '';
         $redirect = QuickBooks_Callbacks::callSAMLCallback($this->_driver, $this->_callback, $auth_id, $ticket, $target_url, $realm_id_pseudonym, $this->_config, $err);
         if ($err) {
             $this->_setError(QuickBooks_IPP_Federator::ERROR_CALLBACK, 'Callback said: ' . $err);
             return false;
         }
     } else {
         // Just set the cookie
         $cookie_expire = (int) $this->_config['cookie_expire'];
         $cookie_path = $this->_config['cookie_path'];
         $cookie_domain = $this->_config['cookie_domain'];
         $cookie_secure = (bool) $this->_config['cookie_secure'];
         $cookie_httponly = (bool) $this->_config['cookie_httponly'];
         //print('setting cookie: ' . print_r($this->_config, true));
         if (QuickBooks_IPP_Federator::setCookie($ticket, $cookie_expire, $cookie_path, $cookie_domain, $cookie_secure, $cookie_httponly)) {
             $redirect = true;
         } else {
             // Cookie failed to set for some reason
             $this->_setError(QuickBooks_IPP_Federator::ERROR_COOKIE, 'Could not set the IPP context cookie (did you make sure *not* to send any output yet?)');
             return false;
         }
     }
     if ($redirect) {
         $this->_doRedirect($target_url);
     }
     return true;
 }