Exemplo n.º 1
0
 /**
  * @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;
 }