Skip to content

Commit

Permalink
Merge pull request #49 from efekocabas/develop
Browse files Browse the repository at this point in the history
Added APM php client and tests
  • Loading branch information
efekocabas committed Jun 2, 2017
2 parents 386b6ac + e276198 commit 0b4c331
Show file tree
Hide file tree
Showing 18 changed files with 1,770 additions and 109 deletions.
86 changes: 86 additions & 0 deletions samples/initialize_apm.php
@@ -0,0 +1,86 @@
<?php

require_once('config.php');

# create request class
$request = new \Iyzipay\Request\CreateApmInitializeRequest();
$request->setLocale(\Iyzipay\Model\Locale::TR);
$request->setConversationId("123456789");
$request->setPrice("1");
$request->setPaidPrice("1.2");
$request->setCurrency(\Iyzipay\Model\Currency::EUR);
$request->setCountryCode("DE");
$request->setPaymentChannel(\Iyzipay\Model\PaymentChannel::WEB);
$request->setPaymentGroup(\Iyzipay\Model\PaymentGroup::PRODUCT);
$request->setAccountHolderName("John Doe");
$request->setMerchantCallbackUrl("https://www.merchant.com/callback");
$request->setMerchantErrorUrl("https://www.merchant.com/error");
$request->setMerchantNotificationUrl("https://www.merchant.com/notification");
$request->setApmType(\Iyzipay\Model\ApmType::SOFORT);

$buyer = new \Iyzipay\Model\Buyer();
$buyer->setId("BY789");
$buyer->setName("John");
$buyer->setSurname("Doe");
$buyer->setGsmNumber("905350000000");
$buyer->setEmail("email@email.com");
$buyer->setIdentityNumber("74300864791");
$buyer->setLastLoginDate("2015-10-05 12:43:35");
$buyer->setRegistrationDate("2013-04-21 15:12:09");
$buyer->setRegistrationAddress("Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1");
$buyer->setIp("85.34.78.112");
$buyer->setCity("Istanbul");
$buyer->setCountry("Turkey");
$buyer->setZipCode("34732");
$request->setBuyer($buyer);

$shippingAddress = new \Iyzipay\Model\Address();
$shippingAddress->setContactName("Jane Doe");
$shippingAddress->setCity("Istanbul");
$shippingAddress->setCountry("Turkey");
$shippingAddress->setAddress("Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1");
$shippingAddress->setZipCode("34742");
$request->setShippingAddress($shippingAddress);

$billingAddress = new \Iyzipay\Model\Address();
$billingAddress->setContactName("Jane Doe");
$billingAddress->setCity("Istanbul");
$billingAddress->setCountry("Turkey");
$billingAddress->setAddress("Nidakule Göztepe, Merdivenköy Mah. Bora Sok. No:1");
$billingAddress->setZipCode("34742");
$request->setBillingAddress($billingAddress);

$basketItems = array();
$firstBasketItem = new \Iyzipay\Model\BasketItem();
$firstBasketItem->setId("BI101");
$firstBasketItem->setName("Binocular");
$firstBasketItem->setCategory1("Collectibles");
$firstBasketItem->setCategory2("Accessories");
$firstBasketItem->setItemType(\Iyzipay\Model\BasketItemType::PHYSICAL);
$firstBasketItem->setPrice("0.3");
$basketItems[0] = $firstBasketItem;

$secondBasketItem = new \Iyzipay\Model\BasketItem();
$secondBasketItem->setId("BI102");
$secondBasketItem->setName("Game code");
$secondBasketItem->setCategory1("Game");
$secondBasketItem->setCategory2("Online Game Items");
$secondBasketItem->setItemType(\Iyzipay\Model\BasketItemType::VIRTUAL);
$secondBasketItem->setPrice("0.5");
$basketItems[1] = $secondBasketItem;

$thirdBasketItem = new \Iyzipay\Model\BasketItem();
$thirdBasketItem->setId("BI103");
$thirdBasketItem->setName("Usb");
$thirdBasketItem->setCategory1("Electronics");
$thirdBasketItem->setCategory2("Usb / Cable");
$thirdBasketItem->setItemType(\Iyzipay\Model\BasketItemType::PHYSICAL);
$thirdBasketItem->setPrice("0.2");
$basketItems[2] = $thirdBasketItem;
$request->setBasketItems($basketItems);

# make request
$apmInitialize = \Iyzipay\Model\Apm::create($request, Config::options());

# print result
print_r($apmInitialize);
15 changes: 15 additions & 0 deletions samples/retrieve_apm.php
@@ -0,0 +1,15 @@
<?php

require_once('config.php');

# create request class
$request = new \Iyzipay\Request\RetrieveApmRequest();
$request->setLocale(\Iyzipay\Model\Locale::TR);
$request->setConversationId("123456789");
$request->setPaymentId("1");

# make request
$apmRetrieve = \Iyzipay\Model\Apm::retrieve($request, Config::options());

# print result
print_r($apmRetrieve);
23 changes: 23 additions & 0 deletions src/Iyzipay/Model/Apm.php
@@ -0,0 +1,23 @@
<?php

namespace Iyzipay\Model;

use Iyzipay\Model\Mapper\ApmMapper;
use Iyzipay\Options;
use Iyzipay\Request\CreateApmInitializeRequest;
use Iyzipay\Request\RetrieveApmRequest;

class Apm extends ApmResource
{
public static function create(CreateApmInitializeRequest $request, Options $options)
{
$rawResult = parent::httpClient()->post($options->getBaseUrl() . "/payment/apm/initialize", parent::getHttpHeaders($request, $options), $request->toJsonString());
return ApmMapper::create($rawResult)->jsonDecode()->mapApm(new Apm());
}

public static function retrieve(RetrieveApmRequest $request, Options $options)
{
$rawResult = parent::httpClient()->post($options->getBaseUrl() . "/payment/apm/retrieve", parent::getHttpHeaders($request, $options), $request->toJsonString());
return ApmMapper::create($rawResult)->jsonDecode()->mapApm(new Apm());
}
}
262 changes: 262 additions & 0 deletions src/Iyzipay/Model/ApmResource.php
@@ -0,0 +1,262 @@
<?php

namespace Iyzipay\Model;

use Iyzipay\IyzipayResource;

class ApmResource extends IyzipayResource
{
private $redirectUrl;
private $price;
private $paidPrice;
private $paymentId;
private $merchantCommissionRate;
private $merchantCommissionRateAmount;
private $iyziCommissionRateAmount;
private $iyziCommissionFee;
private $basketId;
private $currency;
private $paymentItems;
private $phase;
private $accountHolderName;
private $accountNumber;
private $bankName;
private $bankCode;
private $bic;
private $paymentPurpose;
private $iban;
private $countryCode;
private $apm;
private $mobilePhone;
private $paymentStatus;

public function getRedirectUrl()
{
return $this->redirectUrl;
}

public function setRedirectUrl($redirectUrl)
{
$this->redirectUrl = $redirectUrl;
}

public function getPrice()
{
return $this->price;
}

public function setPrice($price)
{
$this->price = $price;
}

public function getPaidPrice()
{
return $this->paidPrice;
}

public function setPaidPrice($paidPrice)
{
$this->paidPrice = $paidPrice;
}

public function getPaymentId()
{
return $this->paymentId;
}

public function setPaymentId($paymentId)
{
$this->paymentId = $paymentId;
}

public function getMerchantCommissionRate()
{
return $this->merchantCommissionRate;
}

public function setMerchantCommissionRate($merchantCommissionRate)
{
$this->merchantCommissionRate = $merchantCommissionRate;
}

public function getMerchantCommissionRateAmount()
{
return $this->merchantCommissionRateAmount;
}

public function setMerchantCommissionRateAmount($merchantCommissionRateAmount)
{
$this->merchantCommissionRateAmount = $merchantCommissionRateAmount;
}

public function getIyziCommissionRateAmount()
{
return $this->iyziCommissionRateAmount;
}

public function setIyziCommissionRateAmount($iyziCommissionRateAmount)
{
$this->iyziCommissionRateAmount = $iyziCommissionRateAmount;
}

public function getIyziCommissionFee()
{
return $this->iyziCommissionFee;
}

public function setIyziCommissionFee($iyziCommissionFee)
{
$this->iyziCommissionFee = $iyziCommissionFee;
}

public function getBasketId()
{
return $this->basketId;
}

public function setBasketId($basketId)
{
$this->basketId = $basketId;
}

public function getCurrency()
{
return $this->currency;
}

public function setCurrency($currency)
{
$this->currency = $currency;
}

public function getPaymentItems()
{
return $this->paymentItems;
}

public function setPaymentItems($paymentItems)
{
$this->paymentItems = $paymentItems;
}

public function getPhase()
{
return $this->phase;
}

public function setPhase($phase)
{
$this->phase = $phase;
}

public function getAccountHolderName()
{
return $this->accountHolderName;
}

public function setAccountHolderName($accountHolderName)
{
$this->accountHolderName = $accountHolderName;
}

public function getAccountNumber()
{
return $this->accountNumber;
}

public function setAccountNumber($accountNumber)
{
$this->accountNumber = $accountNumber;
}

public function getBankName()
{
return $this->bankName;
}

public function setBankName($bankName)
{
$this->bankName = $bankName;
}

public function getBankCode()
{
return $this->bankCode;
}

public function setBankCode($bankCode)
{
$this->bankCode = $bankCode;
}

public function getBic()
{
return $this->bic;
}

public function setBic($bic)
{
$this->bic = $bic;
}

public function getPaymentPurpose()
{
return $this->paymentPurpose;
}

public function setPaymentPurpose($paymentPurpose)
{
$this->paymentPurpose = $paymentPurpose;
}

public function getIban()
{
return $this->iban;
}

public function setIban($iban)
{
$this->iban = $iban;
}

public function getCountryCode()
{
return $this->countryCode;
}

public function setCountryCode($countryCode)
{
$this->countryCode = $countryCode;
}

public function getApm()
{
return $this->apm;
}

public function setApm($apm)
{
$this->apm = $apm;
}

public function getMobilePhone()
{
return $this->mobilePhone;
}

public function setMobilePhone($mobilePhone)
{
$this->mobilePhone = $mobilePhone;
}

public function getPaymentStatus()
{
return $this->paymentStatus;
}

public function setPaymentStatus($paymentStatus)
{
$this->paymentStatus = $paymentStatus;
}
}

0 comments on commit 0b4c331

Please sign in to comment.