Denizbank Sanal Pos Entegrasyonu
Php ile Denizbank sanal pos entegrasyonu yapmak istiyorsanız bu sayfa size faydalı olacaktır.
Merhaba arkadaşlar, bir proje için Deniz Bank'ın sanal posunu kullanmam gerekti, entegrasyonu yaparken biryandanda paket haline getirdim, ben uğraştım siz uğraşmayın :)
Kısaca kullanımından bahsedeyim, zaten aşağı yukarı tüm ödeme yöntemleri aynı methodu kullanıyor. Denizbank sanal pos ile ödeme alabilmek için bir html form oluşturum ilgili url'ye post methodu ile göndermemiz gerekiyor. Kullanıcı ödemeyi tamamladıktan sonra başarılı sonuç ile yine bizim belirttiğimiz url'ye redirect oluyor.
Github url
https://github.com/omerkamcili/denizbank
Paketi projenize dahil etmek için
composer require omerkamcili/denizbank
Ödeme oluşturuyoruz, dönen veriyi direk tarayıcıya basabilirsiniz, kendini redirect edicektir.
use OmerKamcili\DenizBank\DenizbankPay3d;
$payment = new DenizbankPay3d();
$payment->setShopCode('3123');
$payment->setMerchantPass('gDg1N');
$payment->setSuccessUrl('http://successurl');
$payment->setFailUrl('http://failurl');
// Testleri bitirdiğinizde buraya canlı ortamın 3d pay url'sini gireceksiniz.
//$this->setPay3dUrl('');
$payment->setAmount(20);
$payment->setOrderId(3388483);
// Form oluşturuluyor
$result = $payment->getPaid('5200190046477986', '319', '0121', '1');
echo $result;
Şimdide redirect edilen veriyi doğrulayıp işlem sonucunu öğreneceğiz.
// 3D işlemi sonrasnda banka post dönüyor, bu dönen postu result methoduna parametre olarak veriyoruz.
$payment = new PaymentDenizbank();
$result = $payment->result($_POST);
// Array döndürüyor, işlem başarılıysa error => '00' dönecek print_r($result);
Burada benim atladığım bir detay var, seneryoya göre kullanıcı redirect olduğunda kontrolü sağlıyorum, fakat kullanıcı redirect olduğu sırada bağlantısı kopabilir veya sunucumuz cevap vermeyebilir, böyle bir durumda sizin bir referans kodu request atıp sonucu öğrenerek ilgili işlemlerinizi sonuçlandırmanız gerekir, bu methodu yazmadım, eğer yazım pr açarsanız bizde faydalanmış oluruz.