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