/** * 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; }
/** * 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; }
/** * 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); } } }
/** * @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); } } } }
/** * 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; } }
/** * 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; } }