Skip to content

Commit

Permalink
Merge pull request #115 from erdalceylan/master
Browse files Browse the repository at this point in the history
doc updates and code cleanup
  • Loading branch information
ibrahimgunduz34 authored Dec 11, 2018
2 parents ffb340f + 56a8a41 commit 5e368a6
Show file tree
Hide file tree
Showing 25 changed files with 135 additions and 55 deletions.
4 changes: 3 additions & 1 deletion composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,9 @@
"require": {
"php": ">= 5.6.0",
"guzzle/guzzle": "3.9.2",
"symfony/event-dispatcher": "^2.7|^3.0"
"symfony/event-dispatcher": "^2.7|^3.0",
"ext-SimpleXML": "*",
"ext-curl" :"*"
},
"require-dev": {
"phpunit/phpunit": "5.7.*",
Expand Down
2 changes: 1 addition & 1 deletion docs/3-islemler.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# 3. İşlemler

* [3.1. Satış İşlemi](/docs/31-sats-islemi.md)
* [3.1. Satış İşlemi](/docs/31-satis-islemi.md)
* 3.2. Ön Onaylı Sipariş İşemi
* 3.3. Ön Onaylı Sipariş İşleminin Satış İşlemine Dönüştürülmesi
* [3.4. İptal İşlemi](/docs/34-iptal-islemi.md)
Expand Down
20 changes: 8 additions & 12 deletions docs/31-satis-islemi.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,14 @@ Satış işlemi, müşterinin ödeme aracı bilgilerinin (Kredi kartı vb.) ilgi

## 3.1.2. Satış İsteği Oluşturma

Satış isteği, **Paranoia\Request** tipinde bir nesnenin sipariş ve ödeme aracı (kredi kartı vb.) bilgileri ile doldurulması suretiyle elde edilir.
Satış isteği, **\Paranoia\Request\Request** tipinde bir nesnenin sipariş ve ödeme aracı (kredi kartı vb.) bilgileri ile doldurulması suretiyle elde edilir.

```php
$request = new \Paranoia\Request();
$request = new \Paranoia\Request\Request();
$request->setOrderId('ORDER000000' . time())
->setAmount(100.35)
->setCurrency('TRY');
$card = new \Paranoia\Resource\Card();
->setCurrency(\Paranoia\Currency::CODE_TRY);
$card = new \Paranoia\Request\Resource\Card();
$card->setNumber('5406******675403')
->setSecurityCode('000')
->setExpireMonth(12)
Expand All @@ -37,11 +37,11 @@ $request->setResource($card);

* Satış işlemi için yeni bir sipariş isteği oluşturuyoruz.
```php
$request = new \Paranoia\Request();
$request = new \Paranoia\Request\Request();
$request->setOrderId('ORDER000000' . time())
->setAmount(100.35)
->setCurrency('TRY');
$card = new \Paranoia\Resource\Card();
->setCurrency(\Paranoia\Currency::CODE_TRY);
$card = new \Paranoia\Request\Resource\Card();
$card->setNumber('5406******675403')
->setSecurityCode('000')
->setExpireMonth(12)
Expand All @@ -59,18 +59,14 @@ $configuration->setClientId('123456789')

```

* Satış işlemini gerçekleştiriyoruz. Sağlayıcı uyarlamaları, Sağlayıcının [2. Desteklenen Ödeme Sistemleri](/docs/2-desteklenen-odeme-sistemleri.md) dökümanında belirtilen **ödeme sistemi** nin adı ile adlandırılmışlardır. Örnekte belirtilen NestPay uyarlaması için \Paranoia\Pos\**NestPay** sınıfını kullanabildiğiniz gibi Posnet uyarlaması için **\Paranoia\Pos\**Posnet** sınıfını kullanabilirsiniz.
* Satış işlemini gerçekleştiriyoruz. Sağlayıcı uyarlamaları, Sağlayıcının [2. Desteklenen Ödeme Sistemleri](/docs/2-desteklenen-odeme-sistemleri.md) dökümanında belirtilen **ödeme sistemi** nin adı ile adlandırılmışlardır. Örnekte belirtilen NestPay uyarlaması için \Paranoia\Pos\\**NestPay** sınıfını kullanabildiğiniz gibi Posnet uyarlaması için \Paranoia\Pos\\**Posnet** sınıfını kullanabilirsiniz.
```php
try {
$adapter = new \Paranoia\Pos\NestPay($configuration);
$response = $adapter->sale($request);
} catch(\Paranoia\Exception\CommunicationError $e) {
// Bağlantı hatası durumunda yapılacak işlemleri
// bu bölümde greçekleştirebilirsiniz.
} catch(\Paranoia\Exception\UnexpectedResponse $e) {
// Ödeme sistemi sağlayıcısından beklenmedik bir yanıt
// dönmesi (boş yanıt veya beklenmedik bir hata mesajı gibi)
// durumunda yapılacak işlemleri bu bölümde gerçekleştirebilirsiniz.
} catch(\Exception $e) {
// Uygulamada beklenmedik bir hata meydana gelmesi durumunda
// yapılacak işlemleri bu bölümde gerçekleştirebilirsiniz.
Expand Down
10 changes: 3 additions & 7 deletions docs/34-iptal-islemi.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,14 @@
İptal isteği, **Paranoia\Request** tipinde bir nesnenin transaction numarası ile doldurulması suretiyle elde edilir.

```php
$request = new \Paranoia\Request();
$request = new \Paranoia\Request\Request();
$request->setTransactionId('1234567890');
```

İptal işlemi sipariş numarası ile de gerçekleştirilebilmektedir.<br />
**Not:** Bu kullanım şekli bazı bankalar tarafından tavsiye edilmemektedir.
```php
$request = new \Paranoia\Request();
$request = new \Paranoia\Request\Request();
$request->setOrderId('987654321');
```

Expand All @@ -33,7 +33,7 @@ $request->setOrderId('987654321');

* İptal işlemi için yeni bir iptal isteği oluşturuyoruz.
```php
$request = new \Paranoia\Request();
$request = new \Paranoia\Request\Request();
$request->setTransactionId('1234567890');
```

Expand All @@ -55,10 +55,6 @@ try {
} catch(\Paranoia\Exception\CommunicationError $e) {
// Bağlantı hatası durumunda yapılacak işlemleri
// bu bölümde greçekleştirebilirsiniz.
} catch(\Paranoia\Exception\UnexpectedResponse $e) {
// Ödeme sistemi sağlayıcısından beklenmedik bir yanıt
// dönmesi (boş yanıt veya beklenmedik bir hata mesajı gibi)
// durumunda yapılacak işlemleri bu bölümde gerçekleştirebilirsiniz.
} catch(\Exception $e) {
// Uygulamada beklenmedik bir hata meydana gelmesi durumunda
// yapılacak işlemleri bu bölümde gerçekleştirebilirsiniz.
Expand Down
8 changes: 2 additions & 6 deletions docs/35-iade-islemi.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
İade isteği, **Paranoia\Request** tipinde bir nesnenin sipariş numarası ile doldurulması suretiyle elde edilir.

```php
$request = new \Paranoia\Request();
$request = new \Paranoia\Request\Request();
$request->setOrderId('987654321');
```

Expand All @@ -24,7 +24,7 @@ $request->setOrderId('987654321');

* İade işlemi için yeni bir iade isteği oluşturuyoruz.
```php
$request = new \Paranoia\Request();
$request = new \Paranoia\Request\Request();
$request->setOrderId('1234567890');
```

Expand All @@ -46,10 +46,6 @@ try {
} catch(\Paranoia\Exception\CommunicationError $e) {
// Bağlantı hatası durumunda yapılacak işlemleri
// bu bölümde greçekleştirebilirsiniz.
} catch(\Paranoia\Exception\UnexpectedResponse $e) {
// Ödeme sistemi sağlayıcısından beklenmedik bir yanıt
// dönmesi (boş yanıt veya beklenmedik bir hata mesajı gibi)
// durumunda yapılacak işlemleri bu bölümde gerçekleştirebilirsiniz.
} catch(\Exception $e) {
// Uygulamada beklenmedik bir hata meydana gelmesi durumunda
// yapılacak işlemleri bu bölümde gerçekleştirebilirsiniz.
Expand Down
2 changes: 1 addition & 1 deletion src/Configuration/AbstractConfiguration.php
Original file line number Diff line number Diff line change
Expand Up @@ -27,4 +27,4 @@ public function getApiUrl()
{
return $this->apiUrl;
}
}
}
62 changes: 37 additions & 25 deletions src/Pos/AbstractPos.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@
use Paranoia\Exception\CommunicationError;
use Paranoia\Request\Request;
use Paranoia\TransactionType;
use Symfony\Component\EventDispatcher\EventDispatcherInterface;

abstract class AbstractPos
{
Expand All @@ -16,8 +15,6 @@ abstract class AbstractPos
*/
protected $configuration;

/** @var EventDispatcherInterface */
private $dispatcher;

public function __construct(AbstractConfiguration $configuration)
{
Expand All @@ -27,7 +24,7 @@ public function __construct(AbstractConfiguration $configuration)
/**
* build complete raw data for the specified request.
*
* @param \Paranoia\Request $request
* @param \Paranoia\Request\Request $request
* @param string $transactionType
*
* @return mixed
Expand All @@ -40,7 +37,7 @@ abstract protected function buildRequest(Request $request, $transactionType);
* @param string $rawResponse
* @param string $transactionType
*
* @return \Paranoia\Response\Response
* @return \Paranoia\Response
*/
abstract protected function parseResponse($rawResponse, $transactionType);

Expand All @@ -51,27 +48,35 @@ abstract protected function parseResponse($rawResponse, $transactionType);
* @param mixed $data
* @param array $options
*
* @throws \ErrorException|\Exception
* @throws CommunicationError
* @return mixed
*/
protected function sendRequest($url, $data, $options = null)
{
$client = new HttpClient();
$client->setConfig(array(
'curl.options' => array(
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_SSL_VERIFYHOST => false,
CURLOPT_SSLVERSION => CURL_SSLVERSION_TLSv1_2
)
'curl.options' => array(
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_SSL_VERIFYHOST => false,
CURLOPT_SSLVERSION => CURL_SSLVERSION_TLSv1_2
)
));

$request = $client->post($url, null, $data);

try {
return $request->send()->getBody();
} catch (RequestException $e) {
throw new CommunicationError('Communication failed: ' . $url);
}
}

/**
* @param $request Request
* @param $transactionType
* @return \Paranoia\Response
* @throws CommunicationError
*/
private function performTransaction(Request $request, $transactionType)
{
$rawRequest = $this->buildRequest($request, $transactionType);
Expand All @@ -81,69 +86,76 @@ private function performTransaction(Request $request, $transactionType)
}

/**
* @param \Paranoia\Request $request
* @param \Paranoia\Request\Request $request
*
* @return \Paranoia\Response\Response
* @return \Paranoia\Response
* @throws CommunicationError
*/
public function preAuthorization(Request $request)
{
return $this->performTransaction($request, TransactionType::PRE_AUTHORIZATION);
}

/**
* @param \Paranoia\Request $request
* @param \Paranoia\Request\Request $request
*
* @return \Paranoia\Response\Response
* @return \Paranoia\Response
* @throws CommunicationError
*/
public function postAuthorization(Request $request)
{
return $this->performTransaction($request, TransactionType::POST_AUTHORIZATION);
}

/**
* @param \Paranoia\Request $request
* @param \Paranoia\Request\Request $request
*
* @return \Paranoia\Response\Response
* @return \Paranoia\Response
* @throws CommunicationError
*/
public function sale(Request $request)
{
return $this->performTransaction($request, TransactionType::SALE);
}

/**
* @param \Paranoia\Request $request
* @param \Paranoia\Request\Request $request
*
* @return \Paranoia\Response\Response
* @return \Paranoia\Response
* @throws CommunicationError
*/
public function refund(Request $request)
{
return $this->performTransaction($request, TransactionType::REFUND);
}

/**
* @param \Paranoia\Request $request
* @param \Paranoia\Request\Request $request
*
* @return \Paranoia\Response\Response
* @return \Paranoia\Response
* @throws CommunicationError
*/
public function cancel(Request $request)
{
return $this->performTransaction($request, TransactionType::CANCEL);
}

/**
* @param \Paranoia\Request $request
* @param \Paranoia\Request\Request $request
*
* @return \Paranoia\Response\Response
* @return \Paranoia\Response
* @throws CommunicationError
*/
public function pointQuery(Request $request)
{
return $this->performTransaction($request, TransactionType::POINT_INQUIRY);
}

/**
* @param \Paranoia\Request $request
* @param \Paranoia\Request\Request $request
*
* @return \Paranoia\Response\Response
* @return \Paranoia\Response
* @throws CommunicationError
*/
public function pointUsage(Request $request)
{
Expand Down
1 change: 1 addition & 0 deletions src/Pos/Gvp.php
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ public function __construct(AbstractConfiguration $configuration)
/**
* {@inheritdoc}
* @see \Paranoia\Pos\AbstractPos::buildRequest()
* @throws \Paranoia\Exception\NotImplementedError
*/
protected function buildRequest(Request $request, $transactionType)
{
Expand Down
1 change: 1 addition & 0 deletions src/Pos/NestPay.php
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ public function __construct(AbstractConfiguration $configuration)
/**
* {@inheritdoc}
* @see \Paranoia\Pos\AbstractPos::buildRequest()
* @throws \Paranoia\Exception\NotImplementedError
*/
protected function buildRequest(Request $request, $transactionType)
{
Expand Down
4 changes: 2 additions & 2 deletions src/Pos/Posnet.php
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ public function __construct(AbstractConfiguration $configuration)
/**
* {@inheritdoc}
* @see \Paranoia\Pos\AbstractPos::buildRequest()
* @throws \Paranoia\Exception\NotImplementedError
*/
protected function buildRequest(Request $request, $transactionType)
{
Expand All @@ -37,7 +38,6 @@ protected function buildRequest(Request $request, $transactionType)
*/
protected function parseResponse($rawResponse, $transactionType)
{
$rawRequest = $this->builderFactory->createBuilder($transactionType)->build($request);
return array( 'DATA' => $rawRequest);
return $this->processorFactory->createProcessor($transactionType)->process($rawResponse);
}
}
5 changes: 5 additions & 0 deletions src/Processor/Gvp/CancelResponseProcessor.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,11 @@

class CancelResponseProcessor extends BaseResponseProcessor
{
/**
* @param $rawResponse
* @throws \Paranoia\Exception\BadResponseException
* @return \Paranoia\Response
*/
public function process($rawResponse)
{
return $this->processCommonResponse($rawResponse);
Expand Down
5 changes: 5 additions & 0 deletions src/Processor/Gvp/PostAuthorizationResponseProcessor.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,11 @@

class PostAuthorizationResponseProcessor extends BaseResponseProcessor
{
/**
* @param $rawResponse
* @throws \Paranoia\Exception\BadResponseException
* @return \Paranoia\Response
*/
public function process($rawResponse)
{
return $this->processCommonResponse($rawResponse);
Expand Down
5 changes: 5 additions & 0 deletions src/Processor/Gvp/PreAuthorizationResponseProcessor.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,11 @@

class PreAuthorizationResponseProcessor extends BaseResponseProcessor
{
/**
* @param $rawResponse
* @throws \Paranoia\Exception\BadResponseException
* @return \Paranoia\Response
*/
public function process($rawResponse)
{
return $this->processCommonResponse($rawResponse);
Expand Down
5 changes: 5 additions & 0 deletions src/Processor/Gvp/RefundResponseProcessor.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,11 @@

class RefundResponseProcessor extends BaseResponseProcessor
{
/**
* @param $rawResponse
* @throws \Paranoia\Exception\BadResponseException
* @return \Paranoia\Response
*/
public function process($rawResponse)
{
return $this->processCommonResponse($rawResponse);
Expand Down
Loading

0 comments on commit 5e368a6

Please sign in to comment.