public static function checkResponse($transactionId, $responseCode, $responseText, $type = 'credit')
 {
     $e = HpsIssuerResponseValidation::getException((string) $transactionId, (string) $responseCode, (string) $responseText, $type);
     if ($e != null) {
         throw $e;
     }
 }
 public static function checkResponse($transactionId, $responseCode, $responseText)
 {
     $e = HpsIssuerResponseValidation::getException($transactionId, $responseCode, $responseText);
     if ($e != null) {
         throw $e;
     }
 }
 public static function fromDict($rsp, $txnType, $filterBy = null, $returnType = 'HpsReportTransactionSummary')
 {
     $transactions = array();
     if ((string) $rsp->Transaction->ReportActivity->Header->TxnCnt == "0") {
         return $transactions;
     }
     if ($filterBy != null && is_string($filterBy)) {
         $filterBy = HpsTransaction::serviceNameToTransactionType($filterBy);
     }
     $summary = null;
     $serviceName = isset($filterBy) ? HpsTransaction::transactionTypeToServiceName($filterBy) : null;
     foreach ($rsp->Transaction->ReportActivity->Details as $charge) {
         if (isset($serviceName) && $serviceName != (string) $charge->ServiceName) {
             continue;
         }
         $summary = new HpsReportTransactionSummary();
         // Hydrate the header
         $summary->_header = new HpsTransactionHeader();
         $summary->_header->gatewayResponseCode = (string) $charge->GatewayRspCode;
         $summary->_header->gatewayResponseMessage = (string) $charge->GatewayRspMsg;
         $summary->transactionId = (string) $charge->GatewayTxnId;
         $summary->originalTransactionId = isset($charge->OriginalGatewayTxnId) ? (string) $charge->OriginalGatewayTxnId : null;
         $summary->maskedCardNumber = isset($charge->MaskedCardNbr) ? (string) $charge->MaskedCardNbr : null;
         $summary->responseCode = isset($charge->IssuerRspCode) ? (string) $charge->IssuerRspCode : null;
         $summary->responseText = isset($charge->IssuerRspText) ? (string) $charge->IssuerRspText : null;
         $summary->amount = isset($charge->Amt) ? (string) $charge->Amt : null;
         $summary->settlementAmount = isset($charge->SettlementAmt) ? (string) $charge->SettlementAmt : null;
         $summary->transactionType = isset($charge->ServiceName) ? HpsTransaction::serviceNameToTransactionType((string) $charge->ServiceName) : null;
         $summary->transactionUTCDate = isset($charge->TxnUtcDT) ? (string) $charge->TxnUtcDT : null;
         $gwResponseCode = isset($charge->GatewayRspCode) ? (string) $charge->GatewayRspCode : null;
         $issuerResponseCode = isset($charge->IssuerRspCode) ? (string) $charge->IssuerRspCode : null;
         if ($gwResponseCode != "0" || $issuerResponseCode != "00") {
             $exceptions = new HpsChargeExceptions();
             if ($gwResponseCode != "0") {
                 $message = (string) $charge->GatewayRspMsg;
                 $exceptions->hpsException = HpsGatewayResponseValidation::getException((string) $charge->GatewayTxnId, $gwResponseCode, $message);
             }
             if ($issuerResponseCode != "00") {
                 $message = (string) $charge->IssuerRspText;
                 $exceptions->cardException = HpsIssuerResponseValidation::getException((string) $charge->GatewayTxnId, $issuerResponseCode, $message);
             }
             $summary->exceptions = $exceptions;
         }
         $transactions[] = $summary;
     }
     return $transactions;
 }
 public function _submitTransaction($transaction, $txnType, $clientTxnId = null)
 {
     $response = $this->doTransaction($transaction, $clientTxnId);
     HpsGatewayResponseValidation::checkResponse($response, $txnType);
     HpsIssuerResponseValidation::checkResponse($response->Header->GatewayTxnId, $response->Transaction->{$txnType}->RspCode, $response->Transaction->{$txnType}->RspText);
     $rvalue = '';
     switch ($txnType) {
         case 'GiftCardActivate':
             $rvalue = HpsGiftCardActivate::fromDict($response, $txnType, 'HpsGiftCardActivate');
             break;
         case 'GiftCardAddValue':
             $rvalue = HpsGiftCardAddValue::fromDict($response, $txnType, 'HpsGiftCardAddValue');
             break;
         case 'GiftCardAlias':
             $rvalue = HpsGiftCardAlias::fromDict($response, $txnType, 'HpsGiftCardAlias');
             break;
         case 'GiftCardBalance':
             $rvalue = HpsGiftCardBalance::fromDict($response, $txnType, 'HpsGiftCardBalance');
             break;
         case 'GiftCardDeactivate':
             $rvalue = HpsGiftCardDeactivate::fromDict($response, $txnType, 'HpsGiftCardDeactivate');
             break;
         case 'GiftCardReplace':
             $rvalue = HpsGiftCardReplace::fromDict($response, $txnType, 'HpsGiftCardReplace');
             break;
         case 'GiftCardReward':
             $rvalue = HpsGiftCardReward::fromDict($response, $txnType, 'HpsGiftCardReward');
             break;
         case 'GiftCardSale':
             $rvalue = HpsGiftCardSale::fromDict($response, $txnType, 'HpsGiftCardSale');
             break;
         case 'GiftCardVoid':
             $rvalue = HpsGiftCardVoid::fromDict($response, $txnType, 'HpsGiftCardVoid');
             break;
         case 'GiftCardReversal':
             $rvalue = HpsGiftCardReversal::fromDict($response, $txnType, 'HpsGiftCardReversal');
             break;
         default:
             break;
     }
     return $rvalue;
 }
 public static function fromDict($rsp, $txnType, $filterBy = null, $returnType = 'HpsReportTransactionSummary')
 {
     $transactions = array();
     if ($rsp->Transaction->ReportActivity->Header->TxnCnt == "0") {
         return $transactions;
     }
     $summary = null;
     $serviceName = isset($filterBy) ? HpsTransaction::transactionTypeToServiceName($filterBy) : null;
     foreach ($rsp->Transaction->ReportActivity->Details as $charge) {
         if ($filterBy == null || $charge->ServiceName != $serviceName) {
             $summary = parent::fromDict($rsp, $txnType, $returnType);
             $summary->originalTransactionId = isset($charge->OriginalGatewayTxnId) ? $charge->OriginalGatewayTxnId : null;
             $summary->maskedCardNumber = isset($charge->MaskedCardNbr) ? $charge->MaskedCardNbr : null;
             $summary->responseCode = isset($charge->IssuerRspCode) ? $charge->IssuerRspCode : null;
             $summary->responseText = isset($charge->IssuerRspText) ? $charge->IssuerRspText : null;
             $summary->amount = isset($charge->Amt) ? $charge->Amt : null;
             $summary->settlementAmount = isset($charge->SettlementAmt) ? $charge->SettlementAmt : null;
             $summary->transactionType = isset($charge->ServiceName) ? HpsTransaction::serviceNameToTransactionType($charge->ServiceName) : null;
             $summary->transactionUTCDate = isset($charge->TxnUtcDT) ? $charge->TxnUtcDT : null;
             if ($filterBy != null) {
                 $summary->transactionType = $filterBy;
             }
             $gwResponseCode = isset($charge->GatewayRspCode) ? $charge->GatewayRspCode : null;
             $issuerResponseCode = isset($charge->IssuerRspCode) ? $charge->IssuerRspCode : null;
             if ($gwResponseCode != "0" || $issuerResponseCode != "00") {
                 $exceptions = new HpsChargeExceptions();
                 if ($gwResponseCode != "0") {
                     $message = $charge->GatewayRspMsg;
                     $exceptions->gatewayException = HpsGatewayResponseValidation::getException($charge->GatewayTxnId, $gwResponseCode, $message);
                 }
                 if ($issuerResponseCode != "00") {
                     $message = $charge->IssuerRspText;
                     $exceptions->issuerException = HpsIssuerResponseValidation::getException($charge->GatewayTxnId, $issuerResponseCode, $message);
                 }
                 $summary->exceptions = $exceptions;
             }
         }
         $transactions[] = $summary;
     }
     return $transactions;
 }
 public static function fromDict($rsp, $txnType, $returnType = 'HpsReportTransactionDetails')
 {
     $reportResponse = $rsp->Transaction->{$txnType};
     $details = parent::fromDict($rsp, $txnType, $returnType);
     $details->originalTransactionId = isset($reportResponse->OriginalGatewayTxnId) ? (string) $reportResponse->OriginalGatewayTxnId : null;
     $details->authorizedAmount = isset($reportResponse->Data->AuthAmt) ? (string) $reportResponse->Data->AuthAmt : null;
     $details->maskedCardNumber = isset($reportResponse->Data->MaskedCardNbr) ? (string) $reportResponse->Data->MaskedCardNbr : null;
     $details->authorizationCode = isset($reportResponse->Data->AuthCode) ? (string) $reportResponse->Data->AuthCode : null;
     $details->avsResultCode = isset($reportResponse->Data->AVSRsltCode) ? (string) $reportResponse->Data->AVSRsltCode : null;
     $details->avsResultText = isset($reportResponse->Data->AVSRsltText) ? (string) $reportResponse->Data->AVSRsltText : null;
     $details->cardType = isset($reportResponse->Data->CardType) ? (string) $reportResponse->Data->CardType : null;
     $details->descriptor = isset($reportResponse->Data->TxnDescriptor) ? (string) $reportResponse->Data->TxnDescriptor : null;
     $details->transactionType = isset($reportResponse->ServiceName) ? HpsTransaction::serviceNameToTransactionType((string) $reportResponse->ServiceName) : null;
     $details->transactionUTCDate = isset($reportResponse->RspUtcDT) ? (string) $reportResponse->RspUtcDT : null;
     $details->cpcIndicator = isset($reportResponse->Data->CPCInd) ? (string) $reportResponse->Data->CPCInd : null;
     $details->cvvResultCode = isset($reportResponse->Data->CVVRsltCode) ? (string) $reportResponse->Data->CVVRsltCode : null;
     $details->cvvResultText = isset($reportResponse->Data->CVVRsltText) ? (string) $reportResponse->Data->CVVRsltText : null;
     $details->referenceNumber = isset($reportResponse->Data->RefNbr) ? (string) $reportResponse->Data->RefNbr : null;
     $details->responseCode = isset($reportResponse->Data->RspCode) ? (string) $reportResponse->Data->RspCode : null;
     $details->responseText = isset($reportResponse->Data->RspText) ? (string) $reportResponse->Data->RspText : null;
     $details->transactionStatus = isset($reportResponse->Data->TxnStatus) ? (string) $reportResponse->Data->TxnStatus : null;
     if (isset($reportResponse->Data->TokenizationMsg)) {
         $details->tokenData = new HpsTokenData();
         $details->tokenData->responseMessage = (string) $reportResponse->Data->TokenizationMsg;
     }
     if (isset($reportResponse->Data->AdditionalTxnFields)) {
         $additionalTxnFields = $reportResponse->Data->AdditionalTxnFields;
         $details->memo = isset($additionalTxnFields->Description) ? (string) $additionalTxnFields->Description : null;
         $details->invoiceNumber = isset($additionalTxnFields->InvoiceNbr) ? (string) $additionalTxnFields->InvoiceNbr : null;
         $details->customerId = isset($additionalTxnFields->CustomerID) ? (string) $additionalTxnFields->CustomerID : null;
     }
     if ((string) $reportResponse->Data->RspCode != '00') {
         if ($details->exceptions == null) {
             $details->exceptions = new HpsChargeExceptions();
         }
         $details->exceptions->issuerException = HpsIssuerResponseValidation::getException((string) $rsp->Header->GatewayTxnId, (string) $reportResponse->Data->RspCode, (string) $reportResponse->Data->RspText);
     }
     return $details;
 }
 private function _submitTransaction($transaction, $txnType, $clientTxnId = null)
 {
     $response = $this->doTransaction($transaction, $clientTxnId);
     HpsGatewayResponseValidation::checkResponse($response, $txnType);
     HpsIssuerResponseValidation::checkResponse($response->Header->GatewayTxnId, $response->Transaction->{$txnType}->RspCode, $response->Transaction->{$txnType}->RspText);
     $rvalue = '';
     if ($txnType == 'GiftCardActivate') {
         $rvalue = HpsGiftCardActivate::fromDict($response, $txnType, 'HpsGiftCardActivate');
     } else {
         if ($txnType == 'GiftCardAddValue') {
             $rvalue = HpsGiftCardAddValue::fromDict($response, $txnType, 'HpsGiftCardAddValue');
         } else {
             if ($txnType == 'GiftCardAlias') {
                 $rvalue = HpsGiftCardAlias::fromDict($response, $txnType, 'HpsGiftCardAlias');
             } else {
                 if ($txnType == 'GiftCardBalance') {
                     $rvalue = HpsGiftCardBalance::fromDict($response, $txnType, 'HpsGiftCardBalance');
                 } else {
                     if ($txnType == 'GiftCardDeactivate') {
                         $rvalue = HpsGiftCardDeactivate::fromDict($response, $txnType, 'HpsGiftCardDeactivate');
                     } else {
                         if ($txnType == 'GiftCardReplace') {
                             $rvalue = HpsGiftCardReplace::fromDict($response, $txnType, 'HpsGiftCardReplace');
                         } else {
                             if ($txnType == 'GiftCardReward') {
                                 $rvalue = HpsGiftCardReward::fromDict($response, $txnType, 'HpsGiftCardReward');
                             } else {
                                 if ($txnType == 'GiftCardSale') {
                                     $rvalue = HpsGiftCardSale::fromDict($response, $txnType, 'HpsGiftCardSale');
                                 } else {
                                     if ($txnType == 'GiftCardVoid') {
                                         $rvalue = HpsGiftCardVoid::fromDict($response, $txnType, 'HpsGiftCardVoid');
                                     } else {
                                         if ($txnType == 'GiftCardReversal') {
                                             $rvalue = HpsGiftCardReversal::fromDict($response, $txnType, 'HpsGiftCardReversal');
                                         }
                                     }
                                 }
                             }
                         }
                     }
                 }
             }
         }
     }
     return $rvalue;
 }
Example #8
0
 private function _processChargeIssuerResponse($response, $expectedType)
 {
     $transactionId = isset($response->Header->GatewayTxnId) ? $response->Header->GatewayTxnId : null;
     $item = $response->Transaction->{$expectedType};
     if ($item != null) {
         $responseCode = isset($item->RspCode) ? $item->RspCode : null;
         $responseText = isset($item->RspText) ? $item->RspText : null;
         if ($responseCode != null) {
             // check if we need to do a reversal
             if ($responseCode == '91') {
                 try {
                     $this->reverse($transactionId, $this->_amount, $this->_currency);
                 } catch (HpsGatewayException $e) {
                     // if the transaction wasn't found; throw the original timeout exception
                     if ($e->details->gatewayResponseCode == 3) {
                         HpsIssuerResponseValidation::checkResponse($transactionId, $responseCode, $responseText);
                     }
                     throw new HpsCreditException($transactionId, HpsExceptionCodes::ISSUER_TIMEOUT_REVERSAL_ERROR, 'Error occurred while reversing a charge due to HPS issuer timeout', $e);
                 } catch (HpsException $e) {
                     throw new HpsCreditException($transactionId, HpsExceptionCodes::ISSUER_TIMEOUT_REVERSAL_ERROR, 'Error occurred while reversing a charge due to HPS issuer timeout', $e);
                 }
             }
             HpsIssuerResponseValidation::checkResponse($transactionId, $responseCode, $responseText);
         }
     }
 }
 protected function assertExceptionValues($codes, $exceptionCode, $exceptionMessage, $type)
 {
     foreach ($codes as $code) {
         $exception = HpsIssuerResponseValidation::getException(null, $code, null, $type);
         $this->assertNotNull($exception);
         $this->assertEquals($exceptionCode, $exception->getCode());
         $this->assertEquals($exceptionMessage, $exception->getMessage());
     }
 }