/**
  * Create new Transaction with a set of params
  *
  * @param string $amount      amount as int (ex: 4200 for 42.00)
  * @param string $currency    currency code (EUR, USD...)
  * @param string $token       transaction token
  * @param string $description transaction description (optional, default "")
  *
  * @return \Paymill\Models\Response\Base
  *
  * @throws PaymillException if transaction creation fails
  */
 public function create($amount, $currency, $token, $description = "")
 {
     $service = new Request($this->apiKey);
     $transaction = new RequestTransaction();
     $transaction->setAmount($amount)->setCurrency($currency)->setToken($token)->setDescription($description);
     /**
      * @var \Paymill\Models\Response\Base $response
      */
     $response = $service->create($transaction);
     return $response;
 }
 /**
  * {@inheritDoc}
  *
  * @param Transaction $request
  */
 public function execute($request)
 {
     RequestNotSupportedException::assertSupports($this, $request);
     $details = ArrayObject::ensureArrayObject($request->getModel());
     if (!isset($details['token']) || empty($details['token'])) {
         throw new LogicException('The token has to be set.');
     }
     try {
         $transaction = new \Paymill\Models\Request\Transaction();
         $transaction->setAmount($details['amount'])->setCurrency($details['currency'])->setDescription($details['description'])->setToken($details['token']);
         $requestPaymill = new Request($this->api->getPrivateKey());
         $requestPaymill->create($transaction);
         $responsePaymill = $requestPaymill->getLastResponse();
         $details['http_status_code'] = 200;
         $details['transaction'] = $responsePaymill['body']['data'];
     } catch (PaymillException $e) {
         $details['http_status_code'] = $e->getStatusCode();
         $details['error'] = $e->getResponseCode();
         $details['errorMessage'] = $e->getMessage();
         $details['errorResponse'] = $e->getRawObject();
     }
     $request->setModel($details);
 }
 /**
  * @param $email
  * @param $details
  *
  * @return bool|string
  */
 public function createClient($email, $details)
 {
     $client = new \Paymill\Models\Request\Client();
     $client->setEmail($email);
     $client->setDescription($details);
     try {
         $response = $this->request->create($client);
     } catch (\Paymill\Services\PaymillException $e) {
         s($e->getResponseCode());
         s($e->getStatusCode());
         s($e->getErrorMessage());
         return false;
     }
     return $response->getId();
 }
 public function paymill($token)
 {
     $apiKey = Config::get('paymill.test.private_key');
     $request = new \Paymill\Request($apiKey);
     // var_dump($request);
     $transaction = Paymill::Transaction();
     //return Paymill::Client('client_8127a65bf3c84676c918')->details();
     //return Paymill::Payment()->create('098f6bcd4621d373cade4e832627b4f6');
     $preAuth = new \Paymill\Models\Request\Preauthorization();
     $preAuth->setToken($token)->setAmount(4200)->setCurrency('EUR')->setDescription('description example');
     $response = $request->create($preAuth);
     //    	try {
     //    Paymill::Transaction()
     //        ->setAmount(4200)
     //        ->setCurrency('EUR')
     //        ->setPayment('pay_9266f049d59767f3175cc17a')
     //        ->setDescription('Test Transaction')
     //        ->create();
     // } catch(PaymillException $e) {
     //     $e->getResponseCode();
     //     $e->getStatusCode();
     //     $e->getErrorMessage();
     // }
 }
 /**
  * Prepares the environment before running a test.
  */
 protected function setUp()
 {
     $this->_service = new Request();
     $this->_service->setConnectionClass(new Curl(API_TEST_KEY, API_HOST, array(CURLOPT_SSL_VERIFYPEER => SSL_VERIFY_PEER)));
     parent::setUp();
 }
Example #6
0
 public function deleteById($clientId)
 {
     $clientData = UbirimiContainer::get()['repository']->get(UbirimiClient::class)->getById($clientId);
     $query = "SET FOREIGN_KEY_CHECKS = 0;";
     UbirimiContainer::get()['db.connection']->query($query);
     // delete Yongo Product data
     $projects = UbirimiContainer::get()['repository']->get(UbirimiClient::class)->getProjects($clientId);
     while ($projects && ($project = $projects->fetch_array(MYSQLI_ASSOC))) {
         UbirimiContainer::get()['repository']->get(YongoProject::class)->deleteById($project['id']);
     }
     $workflows = UbirimiContainer::get()['repository']->get(Workflow::class)->getByClientId($clientId);
     while ($workflows && ($workflow = $workflows->fetch_array(MYSQLI_ASSOC))) {
         UbirimiContainer::get()['repository']->get(Workflow::class)->deleteById($workflow['id']);
     }
     UbirimiContainer::get()['repository']->get(NotificationScheme::class)->deleteByClientId($clientId);
     $screens = UbirimiContainer::get()['repository']->get(Screen::class)->getByClientId($clientId);
     while ($screens && ($screen = $screens->fetch_array(MYSQLI_ASSOC))) {
         UbirimiContainer::get()['repository']->get(Screen::class)->deleteById($screen['id']);
     }
     UbirimiContainer::get()['repository']->get(NotificationScheme::class)->deleteByClientId($clientId);
     UbirimiContainer::get()['repository']->get(UbirimiClient::class)->deleteYongoIssueTypes($clientId);
     UbirimiContainer::get()['repository']->get(UbirimiClient::class)->deleteYongoIssueStatuses($clientId);
     UbirimiContainer::get()['repository']->get(UbirimiClient::class)->deleteYongoIssueResolutions($clientId);
     UbirimiContainer::get()['repository']->get(UbirimiClient::class)->deleteYongoIssuePriorities($clientId);
     UbirimiContainer::get()['repository']->get(Field::class)->deleteByClientId($clientId);
     UbirimiContainer::get()['repository']->get(FieldConfiguration::class)->deleteByClientId($clientId);
     UbirimiContainer::get()['repository']->get(FieldConfigurationScheme::class)->deleteByClientId($clientId);
     UbirimiContainer::get()['repository']->get(NotificationScheme::class)->deleteByClientId($clientId);
     UbirimiContainer::get()['repository']->get(NotificationScheme::class)->deleteByClientId($clientId);
     UbirimiContainer::get()['repository']->get(IssueTypeScheme::class)->deleteByClientId($clientId);
     UbirimiContainer::get()['repository']->get(IssueTypeScreenScheme::class)->deleteByClientId($clientId);
     // delete issue security schemes
     $issueSecuritySchemes = UbirimiContainer::get()['repository']->get(IssueSecurityScheme::class)->getByClientId($clientId);
     while ($issueSecuritySchemes && ($issueSecurityScheme = $issueSecuritySchemes->fetch_array(MYSQLI_ASSOC))) {
         UbirimiContainer::get()['repository']->get(IssueSecurityScheme::class)->deleteById($issueSecurityScheme['id']);
     }
     $users = UbirimiContainer::get()['repository']->get(UbirimiClient::class)->getUsers($clientId);
     if ($users) {
         $userIdsArray = array();
         while ($user = $users->fetch_array(MYSQLI_ASSOC)) {
             $userIdsArray[] = $user['id'];
             // delete user avatars
             $spaceBasePath = Util::getAssetsFolder(SystemProduct::SYS_PRODUCT_GENERAL_SETTINGS, 'user_avatars');
             Util::deleteDir($spaceBasePath . $user['id']);
         }
         $users_ids_string = implode($userIdsArray, ', ');
         $query = 'delete from general_group_data where user_id IN (' . $users_ids_string . ')';
         UbirimiContainer::get()['db.connection']->query($query);
         $query = 'delete from permission_role_data where default_user_id IN (' . $users_ids_string . ')';
         UbirimiContainer::get()['db.connection']->query($query);
     }
     UbirimiContainer::get()['repository']->get(UbirimiClient::class)->deleteGroups($clientId);
     $query = 'delete from permission_role where client_id = ' . $clientId;
     UbirimiContainer::get()['db.connection']->query($query);
     $query = 'delete from general_user where client_id = ' . $clientId;
     UbirimiContainer::get()['db.connection']->query($query);
     $query = 'delete from event where client_id = ' . $clientId;
     UbirimiContainer::get()['db.connection']->query($query);
     $query = 'delete from client_product where client_id = ' . $clientId;
     UbirimiContainer::get()['db.connection']->query($query);
     $query = 'delete from client_yongo_settings where client_id = ' . $clientId;
     UbirimiContainer::get()['db.connection']->query($query);
     $query = 'delete from client_documentator_settings where client_id = ' . $clientId;
     UbirimiContainer::get()['db.connection']->query($query);
     $query = 'delete from client_smtp_settings where client_id = ' . $clientId;
     UbirimiContainer::get()['db.connection']->query($query);
     $query = 'delete from client_settings where client_id = ' . $clientId;
     UbirimiContainer::get()['db.connection']->query($query);
     $query = 'delete from general_log where client_id = ' . $clientId;
     UbirimiContainer::get()['db.connection']->query($query);
     $query = 'delete from sys_permission_global_data where client_id = ' . $clientId;
     UbirimiContainer::get()['db.connection']->query($query);
     // delete Cheetah Product data
     $agileBoards = UbirimiContainer::get()['repository']->get(Board::class)->getByClientId($clientId, 'array');
     if ($agileBoards) {
         for ($i = 0; $i < count($agileBoards); $i++) {
             UbirimiContainer::get()['repository']->get(Board::class)->deleteById($agileBoards[$i]['id']);
         }
     }
     // delete Events Product data
     UbirimiContainer::get()['repository']->get(UbirimiClient::class)->deleteCalendars($clientId);
     // delete SVN Product data
     UbirimiContainer::get()['repository']->get(UbirimiClient::class)->deleteSVNRepositories($clientId);
     // delete Documentador Product data
     UbirimiContainer::get()['repository']->get(UbirimiClient::class)->deleteSpaces($clientId);
     $query = 'delete from client where id = ' . $clientId . ' limit 1';
     UbirimiContainer::get()['db.connection']->query($query);
     // also delete paymill information
     $client = new PaymillClient();
     $client->setId($clientData['paymill_id']);
     $requestPaymill = new PaymillRequest(UbirimiContainer::get()['paymill.private_key']);
     $response = $requestPaymill->delete($client);
     $query = "SET FOREIGN_KEY_CHECKS = 1;";
     UbirimiContainer::get()['db.connection']->query($query);
 }
Example #7
0
 /**
  * @test
  * @codeCoverageIgnore
  */
 public function createChecksum()
 {
     $result = $this->_service->getOne($this->_model);
     $this->assertInstanceOf('Paymill\\Models\\Response\\Checksum', $result, var_export($result, true));
     return $result;
 }
Example #8
0
 /**
  * Returns a mocked Curl Object
  * @param string $action Api Action
  * @param array $params Param Array for the action call
  * @param string $method httpMethod
  * @param array $response Array returned by the function
  * @return array Response Array
  */
 private function _getCurlMock($action, $params, $method, $response)
 {
     $this->_curlObjectMock->expects($this->any())->method('requestApi')->with($this->stringContains($action), $this->equalTo($params), $this->matches($method))->will($this->returnValue($response));
     $this->_request->setConnectionClass($this->_curlObjectMock);
     return $this->_curlObjectMock;
 }
Example #9
0
 public function __construct($apiKey)
 {
     parent::__construct($apiKey);
 }