/** * Action Listener to execute the capture for applicable transactions */ public function captureAction() { $result = false; require_once dirname(__FILE__) . '/../../lib/Services/Paymill/Preauthorizations.php'; $swConfig = Shopware()->Plugins()->Frontend()->PaymPaymentCreditcard()->Config(); $modelHelper = new Shopware_Plugins_Frontend_PaymPaymentCreditcard_Components_ModelHelper(); $preAuthObject = new Services_Paymill_Preauthorizations(trim($swConfig->get("privateKey")), 'https://api.paymill.com/v2/'); //Gather Data $orderNumber = $modelHelper->getOrderNumberById($this->Request()->getParam("orderId")); $preAuthId = $modelHelper->getPaymillPreAuthorization($orderNumber); $preAuthObject = $preAuthObject->getOne($preAuthId); //Create Transaction $parameter = array('amount' => $preAuthObject['amount'], 'currency' => $preAuthObject['currency'], "description" => $preAuthObject['client']['email'] . ' ' . Shopware()->Config()->get('shopname')); $paymentProcessor = new Shopware_Plugins_Frontend_PaymPaymentCreditcard_Components_PaymentProcessor($parameter, $orderNumber); $paymentProcessor->setPreauthId($preAuthId); try { $result = $paymentProcessor->capture(); $modelHelper->setPaymillTransactionId($orderNumber, $paymentProcessor->getTransactionId()); $this->View()->assign(array('success' => $result)); if ($result) { $this->_updatePaymentStatus(12, $this->Request()->getParam("orderId")); } } catch (Exception $exception) { $this->View()->assign(array('success' => $result, 'code' => $exception->getMessage())); } }