/**
  * Tests Services_Paymill_Refunds->getOne()
  */
 public function testGetUnknownOne()
 {
     try {
         $refund = $this->_refunds->getOne('refund_b12c9470e4603paymill');
     } catch (Exception $e) {
         $this->assertInstanceOf('Services_Paymill_Exception', $e);
         $this->assertEquals(404, $e->getCode());
     }
 }
 /**
  * Returns the store of the transaction overview
  */
 public function loadStoreAction()
 {
     $swConfig = Shopware()->Plugins()->Frontend()->PaymPaymentCreditcard()->Config();
     $apiKey = trim($swConfig->get("privateKey"));
     $apiEndpoint = "https://api.paymill.com/v2/";
     $orderId = $this->Request()->getParam("orderId");
     $modelHelper = new Shopware_Plugins_Frontend_PaymPaymentCreditcard_Components_ModelHelper();
     $orderNumber = $modelHelper->getOrderNumberById($orderId);
     $success = true;
     $result = array();
     $preAuthId = $modelHelper->getPaymillPreAuthorization($orderNumber);
     $transactionId = $modelHelper->getPaymillTransactionId($orderNumber);
     $refundId = $modelHelper->getPaymillRefund($orderNumber);
     $cancelled = $modelHelper->getPaymillCancelled($orderNumber);
     if ($preAuthId !== "" && $preAuthId !== null) {
         //List PreAuth
         require_once dirname(dirname(dirname(__FILE__))) . '/lib/Services/Paymill/Preauthorizations.php';
         $preAuthObj = new Services_Paymill_Preauthorizations($apiKey, $apiEndpoint);
         $response = $preAuthObj->getOne($preAuthId);
         $result[] = array('entryDate' => date('d.M.Y H:i:s', $response['created_at']), 'description' => 'PreAuthorization ' . $response['id'], 'amount' => $response['amount'] / 100 . ' ' . $response['currency']);
     }
     if ($transactionId !== "" && $transactionId !== null) {
         //List Transaction
         require_once dirname(dirname(dirname(__FILE__))) . '/lib/Services/Paymill/Transactions.php';
         $transactionObj = new Services_Paymill_Transactions($apiKey, $apiEndpoint);
         $response = $transactionObj->getOne($transactionId);
         $currency = $response['currency'];
         $result[] = array('entryDate' => date('d.M.Y H:i:s', $response['created_at']), 'description' => 'Transaction ' . $response['id'], 'amount' => $response['origin_amount'] / 100 . ' ' . $currency);
     }
     if ($refundId !== "" && $refundId !== null) {
         //List Refund
         require_once dirname(dirname(dirname(__FILE__))) . '/lib/Services/Paymill/Refunds.php';
         $refundObj = new Services_Paymill_Refunds($apiKey, $apiEndpoint);
         $response = $refundObj->getOne($refundId);
         $result[] = array('entryDate' => date('d.M.Y H:i:s', $response['updated_at']), 'description' => 'Refund ' . $response['id'], 'amount' => $response['amount'] / 100 . ' ' . $currency);
     }
     $this->View()->assign(array('success' => $success, 'data' => $result, 'debug' => var_export($refundId, true)));
 }
 /**
  * Eventhandler for refund actions
  */
 public function refundAction()
 {
     $type = $this->_request['type'];
     $refundId = $this->_request['event_resource']['id'];
     $this->requireRefunds();
     $refunds = new Services_Paymill_Refunds($this->_privateKey, $this->_apiUrl);
     $refund = $refunds->getOne($refundId);
     if ($this->getWebhookState($type) && isset($refund['id'])) {
         $this->_request['action'] = 'Refund';
         $this->updateOrderStatus();
     } else {
         $this->successAction();
     }
 }