iyzico iade ve iptal işlemleri – php örnek

iyzico ile daha önce çekim işlemlerinin nasıl yapılacağını anlatmıştım ilgili yazıma buraya tıklayarak ulaşabilirsiniz. Bir işlemi yaparken ilk başta hep ideal işleyişi düşünürüz. Ödeme işlemlerini tasarlarken iade ve iptal işlemleri pek düşünülmez ama aslında bu işlemler doğal işleyişin birer parçasıdır.

iyzico vs ödeme yöntemleri kendi apilerinin arkasında bir den fazla bankanın sanal pos altyapılarını bulunduruyorlar. Aslında bizim iyzico apiyle gerçekleştirdiğimiz her işlem içerdeki rotalara (route) lara göre ilgili bankanın sanal pos apisine çağrıda bulunuyor.

İade ve iptal işlemlerini anlamak için ilk önce pos sistemlerindeki gün sonu kavramını iyi anlamak gerekiyor.Fiziksel poslarda gün boyu yapılan işlemlerin bankaya aktarılması ve ertesi güne yeni işlem başlatılması manasına gelmektedir. Fiziksel poslarda olduğu gibi sanal pos sistemlerinde de gün sonu bulunmaktadır. Sanal pos ve fiziksel posun işleyişleri aslında bir birinden çok farklı değil. Fiziksel poslarda gün sonu manuel alınabilir sanal poslar her gece otomatik gün sonu işlemlerinin kendileri yaparlar. Gün sonu konusuna neden bu kadar girdim derseniz.İptal ve iade kavramları gün sonu olayla ayrılıyor. Bir işlemin iptal edilebilmesi için gün sonu görmemiş olması gerekmektedir. Gün sonundan sonra yapılan her şey iade işlemi olarak ele alınır ve kredi kartı ekstresinde artı (+) bakiye olarak gözükür.

İade İşlemleri:

iyzico tarafında iade işlemleri (refund) ödeme kırımınlarına göre yapılmaktadır. paymentTransactionId üzerinden iade işlemleri gerçekleştirilir. Aşağidaki php örneğini ve iyzico tarafındaki hareketlerini görünteleyebilirsiniz. Bu kod 263112 nolu ödeme kırınımından 20 TL lik bedeli iade etmemizi sağlayacaktır.
[php]
<?php
require_once(‘class/iyzipay/IyzipayBootstrap.php’);
require_once (‘config.php’);
//api cagrimi ve ayarlar
IyzipayBootstrap::init();

$options = new \Iyzipay\Options();
$options->setApiKey(‘-‘);
$options->setSecretKey(‘-‘);
$options->setBaseUrl(‘https://sandbox-api.iyzipay.com’);
$request = new \Iyzipay\Request\CreateRefundRequest();
$request->setLocale(\Iyzipay\Model\Locale::TR);
$request->setConversationId(uniqid());
$request->setPaymentTransactionId("263112");
$request->setPrice("20");
$request->setCurrency(\Iyzipay\Model\Currency::TL);
$refund = \Iyzipay\Model\Refund::create($request, $options);
var_dump($refund);
[/php]

İade ve iptal işlemlerinin farkını yukarda anlatmıştım. Ödeme kırınımları için direk iptal çağrısı yapılmıyor. Kırılımın tamamını iade ederek iptal işleminizi gerçekleştirebilirsiniz.

İptal İşlemleri:

iyzico tarafında aynı gün içinde siparişi tamamı için iptal çağrısı çalıştırılabiliyor.Aşağıdaki örnekte 2312 nolu paymentId için iptal işlemi bulunmaktadır.

[php]
<?php
require_once(‘class/iyzipay/IyzipayBootstrap.php’);
require_once (‘config.php’);
//api cagrimi ve ayarlar
IyzipayBootstrap::init();</code>

$options = new \Iyzipay\Options();
$options->setApiKey(‘-‘);
$options->setSecretKey(‘-‘);
$options->setBaseUrl(‘https://sandbox-api.iyzipay.com’);

$request = new \Iyzipay\Request\CreateCancelRequest();
$request->setLocale(\Iyzipay\Model\Locale::TR);
$request->setConversationId("123456789");
$request->setPaymentId("2312");

$cancel = \Iyzipay\Model\Cancel::create($request,$options);
var_dump($cancel);
[/php]

İptal işlemi yapısı gereği çok kullanılabilir değil her zaman iade işlemini kullanmanızda fayda var. Burda anlatılan iade ve iptal işlemleri iyzico kredi kartı işlemleri için geçerlidir.Marketplace (pazaryeri) uygulamasında iptal ve onay süreçleri bulunduğundan işlemler orda biraz daha farklı ilerliyor.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir