/** * Abstract method to find matches in lookup tables. * * @param string $table * @param string $code * @return mixed description of response code if valid, otherwise false * @access protected */ protected function _lookup($table, $code) { $_this =& CyberSourceAppendices::getInstance(); if (isset($_this->{$table}[$code])) { $code = $_this->{$table}[$code]; } else { $code = false; } return $code; }
/** * Parse result object returned by CyberSourceSoapClient and save to * $this->lastResult; return a small array of essential data. * * @param stdClass $result object from CyberSourceSoapClient transaction * @return array * @access public */ public function parseResult($result) { $success = false; $orderId = null; $requestId = null; $requestToken = null; $subscriptionId = null; $avsCode = null; $cvCode = null; if (isset($result->ccAuthReply) && $this->config['useAppendices']) { // Process address verification response code if (isset($result->ccAuthReply->avsCode)) { $avsCode = $result->ccAuthReply->avsCode; $result->ccAuthReply->avsDescription = CyberSourceAppendices::avsDescription($avsCode); } // Process card verification response code if (isset($result->ccAuthReply->cvCode)) { $cvCode = $result->ccAuthReply->cvCode; $result->ccAuthReply->cvDescription = CyberSourceAppendices::cvDescription($cvCode); } // Process auth factor code if (isset($resul->ccAuthReply->authFactorCode)) { $result->ccAuthReply->authFactorDescription = CyberSourceAppendices::authFactorDescription($result->ccAuthReply->authFactorCode); } } // Process transaction request response code if (isset($result->reasonCode)) { if ($this->config['useAppendices']) { $result->reasonDescription = CyberSourceAppendices::reasonDescription($result->reasonCode); if (!$result->reasonDescription) { trigger_error("CyberSource Error: CyberSource returned unrecognized Reason code: \"{$result->reasonCode}\"", E_USER_WARNING); } } if ($result->reasonCode == '100') { $success = true; $orderId = @$result->merchantReferenceCode; $requestId = @$result->requestID; $requestToken = @$result->requestToken; if (isset($result->paySubscriptionCreateReply)) { @($subscriptionId = $result->paySubscriptionCreateReply->subscriptionID); } } else { trigger_error("CybserSource Error: CyberSource denied request. Reason: {$result->reasonCode}" . (isset($result->reasonDescription) ? ': ' . $result->reasonDescription : ' ') . " - Request ID: {$result->requestID}", E_USER_NOTICE); } } // Save the result as lastResult $this->lastResult = $result; // Return essential information $parsedResult = array('success' => $success, 'message' => $result->reasonDescription, 'orderId' => $orderId, 'requestId' => $requestId, 'requestToken' => $requestToken, 'subscriptionId' => $subscriptionId, 'avsCode' => $avsCode, 'cvCode' => $cvCode); return $parsedResult; }