/** * @param $shopperReference * @param $storeId * @return array * @throws \Exception */ public function getRecurringContractsForShopper($shopperReference, $storeId) { $recurringContracts = []; $recurringTypes = $this->_recurringType->getAllowedRecurringTypesForListRecurringCall(); foreach ($recurringTypes as $recurringType) { try { // merge ONECLICK and RECURRING into one record with recurringType ONECLICK,RECURRING $listRecurringContractByType = $this->listRecurringContractByType($shopperReference, $storeId, $recurringType); if (isset($listRecurringContractByType['details'])) { foreach ($listRecurringContractByType['details'] as $recurringContractDetails) { if (isset($recurringContractDetails['RecurringDetail'])) { $recurringContract = $recurringContractDetails['RecurringDetail']; if (isset($recurringContract['recurringDetailReference'])) { $recurringDetailReference = $recurringContract['recurringDetailReference']; // check if recurring reference is already in array if (isset($recurringContracts[$recurringDetailReference])) { /* * recurring reference already exists so recurringType is possible * for ONECLICK and RECURRING */ $recurringContracts[$recurringDetailReference]['recurring_type'] = "ONECLICK,RECURRING"; } else { $recurringContracts[$recurringDetailReference] = $recurringContract; } } } } } } catch (\Exception $exception) { // log exception $this->_adyenLogger->addError($exception); throw $exception; } } return $recurringContracts; }