Skip to content

Commit

Permalink
Merge 9a4e27b into 4791966
Browse files Browse the repository at this point in the history
  • Loading branch information
mehmetselim committed Sep 17, 2018
2 parents 4791966 + 9a4e27b commit b20dc6c
Show file tree
Hide file tree
Showing 60 changed files with 1,454 additions and 7 deletions.
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
2.0.40
2.0.41
2 changes: 1 addition & 1 deletion composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -41,4 +41,4 @@
"scripts": {
"test": "vendor/bin/phpunit --colors"
}
}
}
6 changes: 3 additions & 3 deletions samples/config.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@ class Config
public static function options()
{
$options = new \Iyzipay\Options();
$options->setApiKey("api key");
$options->setSecretKey("secret key");
$options->setBaseUrl("https://sandbox-api.iyzipay.com");
$options->setApiKey("Dy9i7dTkVkGfXWZMW0sVYvThtazz5XMP");
$options->setSecretKey("EpJUroIo26vWwaKwbzytr4q5aPgwSoPP");
$options->setBaseUrl("https://api.iyzipay.com");
return $options;
}
}
Binary file added samples/images/sample_image.jpg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
19 changes: 19 additions & 0 deletions samples/iyzilink_add_product_sample.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<?php

require_once("config.php");

$request = new \Iyzipay\Request\Iyzilink\IyziLinkSaveProductRequest();
$request->setLocale(\Iyzipay\Model\Locale::TR);
$request->setConversationId(uniqid());
$request->setName("Sample Integration");
$request->setDescription("Sample Integration");
$imagePath = __DIR__ . '/images/sample_image.jpg';
$request->setBase64EncodedImage(\Iyzipay\Base64FileHelper::encode($imagePath));
$request->setPrice(1);
$request->setCurrency(\Iyzipay\Model\Currency::TL);
$request->setAddressIgnorable(false);
$request->setSoldLimit(1);
$request->setInstallmentRequest(false);
$response = \Iyzipay\Model\Iyzilink\IyziLinkSaveProduct::create($request, Config::options());

print_r($response);
10 changes: 10 additions & 0 deletions samples/iyzilink_delete_product_sample.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<?php

require_once('config.php');
$request = new \Iyzipay\Request();
$request->setLocale(\Iyzipay\Model\Locale::TR);
$request->setConversationId("123456789");

$response = \Iyzipay\Model\Iyzilink\IyziLinkDeleteProduct::create($request, Config::options(),'AAVbeQ');

print_r($response);
12 changes: 12 additions & 0 deletions samples/iyzilink_retrive_all_product_sample.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<?php

require_once('config.php');

$request = new \Iyzipay\Request\Iyzilink\IyziLinkRetriveAllPagininRequest();
$request->setLocale(\Iyzipay\Model\Locale::TR);
$request->setConversationId(uniqid());
$request->setPage(1);
$request->setCount(2);
$response = \Iyzipay\Model\Iyzilink\IyziLinkRetriveAllProduct::create($request, Config::options());

print_r($response);
10 changes: 10 additions & 0 deletions samples/iyzilink_retrive_product_sample.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<?php

require_once('config.php');

$request = new \Iyzipay\Request();
$request->setLocale(\Iyzipay\Model\Locale::TR);
$request->setConversationId("123456789");
$response = \Iyzipay\Model\Iyzilink\IyziLinkRetriveProduct::create($request, Config::options(),'AAVZSw');

print_r($response);
19 changes: 19 additions & 0 deletions samples/iyzilink_update_product_sample.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<?php

require_once('config.php');

$request = new \Iyzipay\Request\Iyzilink\IyziLinkSaveProductRequest();
$request->setLocale(\Iyzipay\Model\Locale::TR);
$request->setConversationId(uniqid());
$request->setName("Sample Integration");
$request->setDescription("Sample Integration");
$imagePath = __DIR__ . '/images/sample_image.jpg';
$request->setBase64EncodedImage(\Iyzipay\Base64FileHelper::encode($imagePath));
$request->setPrice(2);
$request->setCurrency(\Iyzipay\Model\Currency::TL);
$request->setAddressIgnorable(false);
$request->setSoldLimit(1);
$request->setInstallmentRequest(false);
$response = \Iyzipay\Model\Iyzilink\IyziLinkUpdateProduct::create($request, Config::options(),'AAVdlw');

print_r($response);
16 changes: 16 additions & 0 deletions src/Iyzipay/Base64FileHelper.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<?php

namespace Iyzipay;

class Base64FileHelper
{
public static function encode($filePath)
{

$imageBinary = fread(fopen($filePath, "r"), filesize($filePath));
$base64Binary = base64_encode($imageBinary);

return $base64Binary;
}

}
11 changes: 11 additions & 0 deletions src/Iyzipay/DefaultHttpClient.php
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,17 @@ public function get($url)
));
}

public function getV2($url, $header)
{
return $this->curl->exec($url, array(
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_VERBOSE => false,
CURLOPT_HEADER => false,
CURLOPT_HTTPHEADER => $header
));
}

public function post($url, $header, $content)
{
return $this->curl->exec($url, array(
Expand Down
2 changes: 2 additions & 0 deletions src/Iyzipay/HttpClient.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ interface HttpClient
{
public function get($url);

public function getV2($url, $header);

public function post($url, $header, $content);

public function put($url, $header, $content);
Expand Down
40 changes: 40 additions & 0 deletions src/Iyzipay/IyziAuthV2Generator.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
<?php

namespace Iyzipay;

class IyziAuthV2Generator
{
public static function generateAuthContent($uri, $apiKey, $secretKey, $randomString, Request $request = null)
{
$hashStr = "apiKey:" . $apiKey . "&randomKey:" . $randomString ."&signature:" . self::getHmacSHA256Signature($uri, $secretKey, $randomString, $request);

$hashStr = base64_encode($hashStr);

return $hashStr;
}

public static function getHmacSHA256Signature($uri, $secretKey, $randomString, Request $request = null)
{
$dataToEncrypt = $randomString . self::getPayload($uri, $request);

$hash = hash_hmac('sha256', $dataToEncrypt, $secretKey, true);
$token = bin2hex($hash);

return $token;
}

public static function getPayload($uri, Request $request = null)
{

$startNumber = strpos($uri, '/v2');
$endNumber = strpos($uri, '?');
$endNumber-= $startNumber;

$uriPath = substr($uri, $startNumber, $endNumber);

if (!empty($request) && $request->toJsonString() != '[]')
$uriPath = $uriPath.$request->toJsonString();

return $uriPath;
}
}
23 changes: 22 additions & 1 deletion src/Iyzipay/IyzipayResource.php
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,21 @@ protected static function getHttpHeaders(Request $request, Options $options)
$rnd = uniqid();
array_push($header, "Authorization: " . self::prepareAuthorizationString($request, $options, $rnd));
array_push($header, "x-iyzi-rnd: " . $rnd);
array_push($header, "x-iyzi-client-version: " . "iyzipay-php-2.0.40");
array_push($header, "x-iyzi-client-version: " . "iyzipay-php-2.0.41");
return $header;
}

protected static function getHttpHeadersV2($uri, Request $request = null, Options $options)
{
$header = array(
"Accept: application/json",
"Content-type: application/json",
);

$rnd = uniqid();
array_push($header, "Authorization: " . self::prepareAuthorizationStringV2($uri, $request, $options, $rnd));
array_push($header, "x-iyzi-rnd: " . $rnd);
array_push($header, "x-iyzi-client-version: " . "iyzipay-php-2.0.41");
return $header;
}

Expand All @@ -32,6 +46,13 @@ protected static function prepareAuthorizationString(Request $request, Options $
return vsprintf("IYZWS %s:%s", array($options->getApiKey(), $hash));
}

protected static function prepareAuthorizationStringV2($uri, Request $request = null, Options $options, $rnd)
{
$hash = IyziAuthV2Generator::generateAuthContent($uri, $options->getApiKey(), $options->getSecretKey(), $rnd, $request);

return 'IYZWSv2'.' '.$hash;
}

public function getStatus()
{
return $this->status;
Expand Down
19 changes: 19 additions & 0 deletions src/Iyzipay/Model/Iyzilink/IyziLinkDeleteProduct.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<?php

namespace Iyzipay\Model\Iyzilink;

use Iyzipay\Model\Mapper\Iyzilink\IyziLinkDeleteProductMapper;
use Iyzipay\Options;
use Iyzipay\Request;
use Iyzipay\RequestStringBuilder;


class IyziLinkDeleteProduct extends IyziLinkDeleteProductResource
{
public static function create(Request $request, Options $options, $token)
{
$uri = $options->getBaseUrl() . "/v2/iyzilink/products/" . $token . RequestStringBuilder::requestToStringQuery($request, null);
$rawResult = parent::httpClient()->delete($uri, parent::getHttpHeadersV2($uri, null, $options));
return IyziLinkDeleteProductMapper::create($rawResult)->jsonDecode()->mapIyziLinkDeleteProduct(new IyziLinkDeleteProduct());
}
}
10 changes: 10 additions & 0 deletions src/Iyzipay/Model/Iyzilink/IyziLinkDeleteProductResource.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
<?php

namespace Iyzipay\Model\Iyzilink;

use Iyzipay\IyzipayResource;

class IyziLinkDeleteProductResource extends IyzipayResource
{

}
18 changes: 18 additions & 0 deletions src/Iyzipay/Model/Iyzilink/IyziLinkRetriveAllProduct.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
<?php

namespace Iyzipay\Model\Iyzilink;

use Iyzipay\Model\Mapper\Iyzilink\IyziLinkRetriveAllProductMapper;
use Iyzipay\Options;
use Iyzipay\Request\Iyzilink\IyziLinkRetriveAllPagininRequest;
use Iyzipay\RequestStringBuilder;

class IyziLinkRetriveAllProduct extends IyziLinkRetriveAllProductResource
{
public static function create(IyziLinkRetriveAllPagininRequest $request, Options $options)
{
$uri = $options->getBaseUrl() . "/v2/iyzilink/products" . RequestStringBuilder::requestToStringQuery($request, 'pages');
$rawResult = parent::httpClient()->getV2($uri, parent::getHttpHeadersV2($uri, null, $options));
return IyziLinkRetriveAllProductMapper::create($rawResult)->jsonDecode()->mapIyziLinkRetriveAllProduct(new IyziLinkRetriveAllProduct());
}
}
64 changes: 64 additions & 0 deletions src/Iyzipay/Model/Iyzilink/IyziLinkRetriveAllProductResource.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
<?php

namespace Iyzipay\Model\Iyzilink;

use Iyzipay\IyzipayResource;

class IyziLinkRetriveAllProductResource extends IyzipayResource
{
private $listingReviewed;
private $totalCount;
private $currentPage;
private $pageCount;
private $items;

public function getListingReviewed()
{
return $this->listingReviewed;
}

public function setListingReviewed($listingReviewed)
{
$this->listingReviewed = $listingReviewed;
}

public function getTotalCount()
{
return $this->totalCount;
}

public function setTotalCount($totalCount)
{
$this->totalCount = $totalCount;
}

public function getCurrentPage()
{
return $this->currentPage;
}

public function setCurrentPage($currentPage)
{
$this->currentPage = $currentPage;
}

public function getPageCount()
{
return $this->pageCount;
}

public function setPageCount($pageCount)
{
$this->pageCount = $pageCount;
}

public function getItems()
{
return $this->items;
}

public function setItems($items)
{
$this->items = $items;
}
}
18 changes: 18 additions & 0 deletions src/Iyzipay/Model/Iyzilink/IyziLinkRetriveProduct.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
<?php

namespace Iyzipay\Model\Iyzilink;

use Iyzipay\Model\Mapper\Iyzilink\IyziLinkRetriveProductMapper;
use Iyzipay\Options;
use Iyzipay\Request;
use Iyzipay\RequestStringBuilder;

class IyziLinkRetriveProduct extends IyziLinkRetriveProductResource
{
public static function create(Request $request, Options $options, $token)
{
$uri = $options->getBaseUrl() . "/v2/iyzilink/products/" . $token. RequestStringBuilder::requestToStringQuery($request, null);
$rawResult = parent::httpClient()->getV2($uri, parent::getHttpHeadersV2($uri, null, $options));
return IyziLinkRetriveProductMapper::create($rawResult)->jsonDecode()->mapIyziLinkRetriveProduct(new IyziLinkRetriveProduct());
}
}
20 changes: 20 additions & 0 deletions src/Iyzipay/Model/Iyzilink/IyziLinkRetriveProductResource.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
<?php

namespace Iyzipay\Model\Iyzilink;

use Iyzipay\IyzipayResource;

class IyziLinkRetriveProductResource extends IyzipayResource
{
private $item;

public function getItem()
{
return $this->item;
}

public function setItem($item)
{
$this->item = $item;
}
}

0 comments on commit b20dc6c

Please sign in to comment.