📁 PHP Dosya Yöneticisi
/
/
home
/
demodesigncom
/
b2be-ticaretscripti.demodesign.com.tr
📝
paytrcallback.php
← Geri Dön
<?php require('func/db.php'); require('func/fonksiyon.php'); ## 2. ADIM için örnek kodlar ## ## ÖNEMLİ UYARILAR ## ## 1) Bu sayfaya oturum (SESSION) ile veri taşıyamazsınız. Çünkü bu sayfa müşterilerin yönlendirildiği bir sayfa değildir. ## 2) Entegrasyonun 1. ADIM'ında gönderdiğniz merchant_oid değeri bu sayfaya POST ile gelir. Bu değeri kullanarak ## veri tabanınızdan ilgili siparişi tespit edip onaylamalı veya iptal etmelisiniz. ## 3) Aynı sipariş için birden fazla bildirim ulaşabilir (Ağ bağlantı sorunları vb. nedeniyle). Bu nedenle öncelikle ## siparişin durumunu veri tabanınızdan kontrol edin, eğer onaylandıysa tekrar işlem yapmayın. Örneği aşağıda bulunmaktadır. global $system; $post = $_POST; ####################### DÜZENLEMESİ ZORUNLU ALANLAR ####################### # ## API Entegrasyon Bilgileri - Mağaza paneline giriş yaparak BİLGİ sayfasından alabilirsiniz. $yontem['paykey']= $paykey; $yontem['paysalt']= $paysalt; $merchant_key = $paykey; $merchant_salt = $paysalt; $merchant_key = $system['paytrkey']; $merchant_salt = $system['paytrsalt']; ########################################################################### ####### Bu kısımda herhangi bir değişiklik yapmanıza gerek yoktur. ####### # ## POST değerleri ile hash oluştur. $hash = base64_encode( hash_hmac('sha256', $post['merchant_oid'].$merchant_salt.$post['status'].$post['total_amount'], $merchant_key, true) ); # ## Oluşturulan hash'i, paytr'dan gelen post içindeki hash ile karşılaştır (isteğin paytr'dan geldiğine ve değişmediğine emin olmak için) ## Bu işlemi yapmazsanız maddi zarara uğramanız olasıdır. if( $hash != $post['hash'] ) die('PAYTR notification failed: bad hash'); ########################################################################### ## BURADA YAPILMASI GEREKENLER ## 1) Siparişin durumunu $post['merchant_oid'] değerini kullanarak veri tabanınızdan sorgulayın. ## 2) Eğer sipariş zaten daha önceden onaylandıysa veya iptal edildiyse echo "OK"; exit; yaparak sonlandırın. /* Sipariş durum sorgulama örnek $durum = SQL if($durum == "onay" || $durum == "iptal"){ echo "OK"; exit; } */ if( $_POST['status'] == 'success' ) { ## Ödeme Onaylandı $veri = $_POST['merchant_oid']; $durum = "Sipariş Onaylandı"; echo "OK"; if (strpos($veri, 'SIPNO') !== false) { $oncekiKisim = substr($veri, 0, strpos($veri, 'SIPNO')); $siparisno = $oncekiKisim; $caritutar =0; $ekle = $ozy->prepare("UPDATE siparis SET caritutar=? where siparisno=?"); $ekle -> execute(array($caritutar,$siparisno)); } else { $siparisno = $veri; $ekle = $ozy->prepare("UPDATE siparis SET durum=? where siparisno=?"); $ekle -> execute(array($durum,$siparisno)); } }else { echo "Bir hata oluştu."; } exit; ?>
💾 Kaydet
İptal
📝 Yeniden Adlandır
İptal
Kaydet
🔐 Dosya İzinleri (chmod)
İzin Değeri:
Hızlı Seçim:
777
755
644
600
777
= Herkes okur/yazar/çalıştırır
755
= Sahip tam, diğerleri okur/çalıştırır
644
= Sahip okur/yazar, diğerleri okur
600
= Sadece sahip okur/yazar
İptal
Uygula