Spamworldpro Mini Shell
Spamworldpro


Server : Apache
System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64
User : corals ( 1002)
PHP Version : 7.4.33
Disable Function : exec,passthru,shell_exec,system
Directory :  /home/corals/old/lib/internal/Customweb/Sogenactif/Authorization/Recurring/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //home/corals/old/lib/internal/Customweb/Sogenactif/Authorization/Recurring/Adapter.php
<?php

/**
 *  * You are allowed to use this API in your web application.
 *
 * Copyright (C) 2018 by customweb GmbH
 *
 * This program is licenced under the customweb software licence. With the
 * purchase or the installation of the software in your application you
 * accept the licence agreement. The allowed usage is outlined in the
 * customweb software licence which can be found under
 * http://www.sellxed.com/en/software-license-agreement
 *
 * Any modification or distribution is strictly forbidden. The license
 * grants you the installation in one application. For multiuse you will need
 * to purchase further licences at http://www.sellxed.com/shop.
 *
 * See the customweb software licence agreement for more details.
 *
 */



/**
 *
 * @author Thomas Hunziker
 * @Bean
 *
 */
class Customweb_Sogenactif_Authorization_Recurring_Adapter extends Customweb_Sogenactif_AbstractOfficeAdapter implements 
		Customweb_Payment_Authorization_Recurring_IAdapter {

	public function getAdapterPriority(){
		return 500;
	}

	public function getAuthorizationMethodName(){
		return self::AUTHORIZATION_METHOD_NAME;
	}

	public function preValidate(Customweb_Payment_Authorization_IOrderContext $orderContext, Customweb_Payment_Authorization_IPaymentCustomerContext $paymentContext){
		$this->getPaymentMethod($orderContext)->preValidate($orderContext, $paymentContext);
	}

	/**
	 *
	 * @return Customweb_Sogenactif_Method_Factory
	 */
	protected function getMethodFactory(){
		return $this->getContainer()->getBean('Customweb_Sogenactif_Method_Factory');
	}

	/**
	 *
	 * @param Customweb_Payment_Authorization_IOrderContext $orderContext
	 * @return Customweb_Sogenactif_Method_Default
	 */
	protected function getPaymentMethod(Customweb_Payment_Authorization_IOrderContext $orderContext){
		return $this->getMethodFactory()->getPaymentMethod($orderContext->getPaymentMethod(), $this->getAuthorizationMethodName());
	}

	protected function getEndpoint(){
		return $this->getConfiguration()->getDuplicateEndPointUrl();
	}

	public function validate(Customweb_Payment_Authorization_IOrderContext $orderContext, Customweb_Payment_Authorization_IPaymentCustomerContext $paymentContext, array $formData){}

	public function isDeferredCapturingSupported(Customweb_Payment_Authorization_IOrderContext $orderContext, Customweb_Payment_Authorization_IPaymentCustomerContext $paymentContext){
		return false;
	}

	public function isPaymentMethodSupportingRecurring(Customweb_Payment_Authorization_IPaymentMethod $paymentMethod){
		$paymentMethodClass = $this->getMethodFactory()->getPaymentMethod($paymentMethod, $this->getAuthorizationMethodName());
		return $paymentMethodClass->isRecurringPaymentSupported();
	}

	public function createTransaction(Customweb_Payment_Authorization_Recurring_ITransactionContext $transactionContext){
		$transaction = new Customweb_Sogenactif_Authorization_Transaction($transactionContext);
		$transaction->setAuthorizationMethod(self::AUTHORIZATION_METHOD_NAME);
		$transaction->setLiveTransaction(!$this->getConfiguration()->isTestMode());
		$transaction->setEnvironment($this->getConfiguration()->getConfiguredEnvironment());
		return $transaction;
	}

	public function isAuthorizationMethodSupported(Customweb_Payment_Authorization_IOrderContext $orderContext){
		return true;
	}

	public function process(Customweb_Payment_Authorization_ITransaction $transaction){
		if (!($transaction instanceof Customweb_Sogenactif_Authorization_Transaction)) {
			throw new Customweb_Core_Exception_CastException('Customweb_Sogenactif_Authorization_Transaction');
		}
		try {
			$builder = new Customweb_Sogenactif_Authorization_Recurring_ParameterBuilder($this->getContainer(), $transaction);
			$initialParameters = $builder->build();
			$authorizationParameters = $this->processWithSealValidation($initialParameters);
			$transaction->setPaymentId($initialParameters['transactionReference']);
			if (!isset($authorizationParameters['responseCode'])) {
				throw new Exception(Customweb_I18N_Translation('No response Code returned'));
			}
			if ($authorizationParameters['responseCode'] != '00' && $authorizationParameters['responseCode'] != '60') {
				throw new Exception(Customweb_Sogenactif_Util::getErrorMessageByResponseCode($authorizationParameters['responseCode']));
			}
			$transaction->addAuthorizationParameters(array_merge($initialParameters, $authorizationParameters));
			$transaction->authorize();
			
			if ($authorizationParameters['responseCode'] == '60') {
				$transaction->setAuthorizationUncertain();
				$transaction->setStatusAfterReceivingUpdate('pending');
			}
			$transaction->setUpdateExecutionDate(
					Customweb_Core_DateTime::_()->addMinutes(Customweb_Sogenactif_Util::UPDATE_INTERVAL_AUTHORIZED));
		}
		catch (Exception $e) {
			$transaction->setAuthorizationFailed($e->getMessage());
			throw new Customweb_Payment_Exception_RecurringPaymentErrorException($e);
		}
	}
}

Spamworldpro Mini