• 12-08-2023, 12:34:23
    #1
    ilgili url de bir sıkıntı yok kodlarda bu
    <?php
    require_once '../config/database.php';
    // Mağaza Bilgisi
    $paytr = $db->query("SELECT * FROM paytr WHERE id='1'");
    $paytr = $paytr->fetch(PDO::FETCH_ASSOC);
    
    $userEmail = $_SESSION['email'];
    $getCodeSQL = $db->query("SELECT `orderCode`,`paytr_err_msg` FROM `users` WHERE email='$userEmail'");
    $getCodeSQL = $getCodeSQL->fetch(PDO::FETCH_OBJ);
    $orderCode = $getCodeSQL->orderCode;
    $errMsg = $getCodeSQL->paytr_err_msg;
    $orderCode = $post['merchant_oid'];
    ## 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.
    $post = $_POST;
    ####################### DÜZENLEMESİ ZORUNLU ALANLAR #######################
    #
    ## API Entegrasyon Bilgileri - Mağaza paneline giriş yaparak BİLGİ sayfasından alabilirsiniz.
    $merchant_key   = $paytr['merchant_key'];
    $merchant_salt  = $paytr['merchant_salt'];
    ###########################################################################
    ####### 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ı
        // Üyeyi çekilişe ekliyorum
        $join = $db->query("INSERT INTO `participants` (`sweepstake_id`, `user_id`) VALUES ('$getId', '$userId')");
        $count = $join->rowCount();
    } else { ## Ödemeye Onay Verilmedi
    
        $errMsg = $post['failed_reason_msg'];
        $errMsgSQL = $db->query("UPDATE `users` SET `paytr_err_msg`='$errMsg' WHERE email='$userEmail'");
    }
    ## Bildirimin alındığını PayTR sistemine bildir.
    echo "OK";
    exit;
  • 12-08-2023, 12:41:52
    #2
    sorun yok gibi merchant keyleriniz yanlış çekiyordur belki, ekrana yazdırıp siteyi siz ziyaret edin bakın doğru çekiyor mu
  • 12-08-2023, 12:43:01
    #3
    Saul4Goodmann adlı üyeden alıntı: mesajı görüntüle
    sorun yok gibi merchant keyleriniz yanlış çekiyordur belki, ekrana yazdırıp siteyi siz ziyaret edin bakın doğru çekiyor mu
    keyleri sorunsu cekiyor ilkkez bu hatayla karsilasiyorum
  • 12-08-2023, 12:43:33
    #4
    @$post['hash']
    bu şekil yapın önemi yok bu hatanın.
    Bazı sitelerimde bende aynı hatayı alıyorum bazılarında hata vermiyor site ile alakalı mı bilmiyorum ama önemsemiyorum.
  • 12-08-2023, 12:45:14
    #5
    sessiondan email çekmeyi denemişsiniz ama session yok ki çekemezsiniz hocam
  • 12-08-2023, 13:15:31
    #6
    Saul4Goodmann adlı üyeden alıntı: mesajı görüntüle
    sessiondan email çekmeyi denemişsiniz ama session yok ki çekemezsiniz hocam
    ntka adlı üyeden alıntı: mesajı görüntüle
    @$post['hash']
    bu şekil yapın önemi yok bu hatanın.
    Bazı sitelerimde bende aynı hatayı alıyorum bazılarında hata vermiyor site ile alakalı mı bilmiyorum ama önemsemiyorum.
    değişen birşey olmadı hocam ya
  • 12-08-2023, 13:18:44
    #7
    en4loss adlı üyeden alıntı: mesajı görüntüle
    değişen birşey olmadı hocam ya
    orayı bir yerde kullanmamışsınız zaten belki kullanırsınız vs. diye dedim. eğer merchant keylerde doğruysa hata yok gibi duruyor, bad hash hatası da veriyorsa
    echo $hash;
    echo '<br>';
    echo $post['hash'];
    şeklinde yazdırıp karşılaştırın bi bakın pc geçtim şimdi belki hash oluşturmada yanlışınız vardır ona da bakayım, birde hangi ödeme yöntemini kullanıyorsunuz direct api mi yoksa diğerlerimi
  • 12-08-2023, 13:27:09
    #8
    Saul4Goodmann adlı üyeden alıntı: mesajı görüntüle
    orayı bir yerde kullanmamışsınız zaten belki kullanırsınız vs. diye dedim. eğer merchant keylerde doğruysa hata yok gibi duruyor, bad hash hatası da veriyorsa
    echo $hash;
    echo '<br>';
    echo $post['hash'];
    şeklinde yazdırıp karşılaştırın bi bakın pc geçtim şimdi belki hash oluşturmada yanlışınız vardır ona da bakayım, birde hangi ödeme yöntemini kullanıyorsunuz direct api mi yoksa diğerlerimi
    $hash dolu dönüyor ama $post['hash'] boş
  • 12-08-2023, 13:36:28
    #9
    Saul4Goodmann adlı üyeden alıntı: mesajı görüntüle
    orayı bir yerde kullanmamışsınız zaten belki kullanırsınız vs. diye dedim. eğer merchant keylerde doğruysa hata yok gibi duruyor, bad hash hatası da veriyorsa
    echo $hash;
    echo '<br>';
    echo $post['hash'];
    şeklinde yazdırıp karşılaştırın bi bakın pc geçtim şimdi belki hash oluşturmada yanlışınız vardır ona da bakayım, birde hangi ödeme yöntemini kullanıyorsunuz direct api mi yoksa diğerlerimi
    $_POST['hash'] şeklinde yazdırın bakın bu şekilde olursa $post ları $_POST şekline çevirin hocam olmadı