Ejemplo n.º 1
0
 /**
  * Get selected payment or do payment mean selection automatically
  *
  * @return array
  */
 public function getSelectedPayment()
 {
     $paymentMethods = $this->getPayments();
     if (!empty($this->View()->sUserData['additional']['payment'])) {
         $payment = $this->View()->sUserData['additional']['payment'];
     } elseif (!empty($this->session['sPaymentID'])) {
         $payment = $this->admin->sGetPaymentMeanById($this->session['sPaymentID'], $this->View()->sUserData);
     }
     if ($payment && !$this->checkPaymentAvailability($payment, $paymentMethods)) {
         $payment = null;
     }
     $paymentClass = $this->admin->sInitiatePaymentClass($payment);
     if ($payment && $paymentClass instanceof \ShopwarePlugin\PaymentMethods\Components\BasePaymentMethod) {
         $data = $paymentClass->getCurrentPaymentDataAsArray(Shopware()->Session()->sUserId);
         $payment['validation'] = $paymentClass->validate($data);
         if (!empty($data)) {
             $payment['data'] = $data;
         }
     }
     if (!empty($payment)) {
         return $payment;
     }
     if (empty($paymentMethods)) {
         unset($this->session['sPaymentID']);
         return false;
     }
     $payment = reset($paymentMethods);
     $this->session['sPaymentID'] = (int) $payment['id'];
     $this->front->Request()->setPost('sPayment', (int) $payment['id']);
     $this->admin->sUpdatePayment();
     return $payment;
 }
Ejemplo n.º 2
0
	/**
	 * Get selected payment or do payment mean selection automatically
	 *
	 * @return array
	 */
	public function getSelectedPayment()
	{
		if(!empty($this->View()->sUserData['additional']['payment'])) {
			$payment = $this->View()->sUserData['additional']['payment'];
		} elseif(!empty($this->session['sPaymentID'])) {
			$payment = $this->admin->sGetPaymentMeanById($this->session['sPaymentID'], $this->View()->sUserData);
		}
		if (!empty($payment['table'])) {
			$paymentClass = $this->admin->sInitiatePaymentClass($payment);
			if (!empty($paymentClass)) {
				$payment['data'] = $paymentClass->getData();
			}
		}
		if(!empty($payment)) {
			return $payment;
		}
		$payments = $this->getPayments();
		if(empty($payments)) {
			unset($this->session['sPaymentID']);
			return false;
		}
		$payment = reset($payments);
		$this->session['sPaymentID'] = (int) $payment['id'];
		return $payment;
	}
Ejemplo n.º 3
0
 /**
  * Saves the registration
  *
  * @return void
  */
 public function saveRegister()
 {
     $paymentData = isset($this->session['sRegister']['payment']['object']) ? $this->session['sRegister']['payment']['object'] : false;
     $this->admin->sSaveRegister();
     $userId = $this->admin->sSYSTEM->_SESSION["sUserId"];
     if (!empty($paymentData) && $userId) {
         $paymentObject = $this->admin->sInitiatePaymentClass($paymentData);
         if ($paymentObject instanceof \ShopwarePlugin\PaymentMethods\Components\BasePaymentMethod) {
             $paymentObject->savePaymentData($userId, $this->request);
         }
     }
 }
Ejemplo n.º 4
0
 /**
  * @covers sAdmin::sInitiatePaymentClass
  */
 public function testsInitiatePaymentClass()
 {
     $payments = Shopware()->Models()->getRepository('Shopware\\Models\\Payment\\Payment')->findAll();
     foreach ($payments as $payment) {
         $paymentClass = $this->module->sInitiatePaymentClass($this->module->sGetPaymentMeanById($payment->getId()));
         if (is_bool($paymentClass)) {
             $this->assertFalse($paymentClass);
         } else {
             $this->assertInstanceOf('ShopwarePlugin\\PaymentMethods\\Components\\BasePaymentMethod', $paymentClass);
             Shopware()->Front()->setRequest(new Enlight_Controller_Request_RequestHttp());
             $validationResult = $paymentClass->validate(Shopware()->Front()->Request());
             $this->assertTrue(is_array($validationResult));
             if (count($validationResult)) {
                 $this->assertArrayHasKey('sErrorFlag', $validationResult);
                 $this->assertArrayHasKey('sErrorMessages', $validationResult);
             }
         }
     }
 }
Ejemplo n.º 5
0
 /**
  * Payment action method
  *
  * Read and change payment mean and payment data
  */
 public function paymentAction()
 {
     $this->View()->sPaymentMeans = $this->admin->sGetPaymentMeans();
     $this->View()->sFormData = array('payment' => $this->View()->sUserData['additional']['user']['paymentID']);
     $this->View()->sTarget = $this->Request()->getParam('sTarget', $this->Request()->getControllerName());
     $getPaymentDetails = $this->admin->sGetPaymentMeanById($this->View()->sFormData['payment']);
     $paymentClass = $this->admin->sInitiatePaymentClass($getPaymentDetails);
     if ($paymentClass instanceof \ShopwarePlugin\PaymentMethods\Components\BasePaymentMethod) {
         $data = $paymentClass->getCurrentPaymentDataAsArray(Shopware()->Session()->sUserId);
         if (!empty($data)) {
             $this->View()->sFormData += $data;
         }
     }
     if ($this->Request()->isPost()) {
         $values = $this->Request()->getPost();
         $values['payment'] = $this->Request()->getPost('register');
         $values['payment'] = $values['payment']['payment'];
         $values['isPost'] = true;
         $this->View()->sFormData = $values;
     }
 }
Ejemplo n.º 6
0
	/**
	 * Payment action method
	 *
	 * Read and change payment mean and payment data
	 */
	public function paymentAction()
	{
		$this->View()->sPaymentMeans = $this->admin->sGetPaymentMeans();
		$this->View()->sFormData = array('payment'=>$this->View()->sUserData['additional']['user']['paymentID']);
		$this->View()->sTarget = $this->Request()->getParam('sTarget', $this->Request()->getControllerName());

		$getPaymentDetails = $this->admin->sGetPaymentMeanById($this->View()->sFormData['payment']);
		if ($getPaymentDetails['table'])
		{
			$paymentClass = $this->admin->sInitiatePaymentClass($getPaymentDetails);
			if (!empty($paymentClass))
			{
				$this->View()->sFormData += $paymentClass->getData();
			}
		}

		if($this->Request()->isPost())
		{
			$values = $this->Request()->getPost();
			$values['payment'] = $this->Request()->getPost('register');
			$values['payment'] = $values['payment']['payment'];
			$this->View()->sFormData = $values;
		}
	}