• 29-01-2021, 15:33:54
    #1
    Backend Developer
    merhaba shopier api hizmetini kullanıyorum ödeme başarılı olunca çeşitli parametreler döndürüyor fakat bunun gerçek ödeme olup olmadığını neye göre kontrol edebilirim
    çeşitli kaynaklara baktım daha önce kontrol ettikleri sistem değişmiş sanırsam bilgisi olan varmı ?
  • 29-01-2021, 23:58:53
    #2
    Şöyle bir örnek yazdım callback için. Bunu baz alarak kendinize göre düzenleyip, kullanabilirsiniz.
    <?php
    if($_POST) {
        // Öncelikle verilerin gelip gelmediğini kontrol ettirrlim
        if(isset($_POST["platform_order_id"], $_POST["random_nr"], $_POST["signature"], $_POST["status"])) {
    
            // Değişkenlerimizi tanımlayalım
            $siparis_numarasi = $_POST["platform_order_id"];
            $random_nr = $_POST["random_nr"];
            $status = $_POST["status"];
            $shopierApiSecret = "SHOPIER_API_SECRET_KODUNUZ";
    
            // Ardından hash ve ödeme durumu kontrolü yapalım
            $signature = base64_decode($_POST["signature"]);
            $hash = hash_hmac('sha256', $_POST["random_nr"] . $_POST["platform_order_id"] . $shopierApiSecret, true);
    
            if($signature == $hash and $status == "success") {
    
                // Bu sipariş veritabanımızda var mı yok mu, daha önce ödenmişmi kontrol ettirelim
                $kontrol = $db->query("SELECT COUNT(*) FROM siparisler WHERE siparis_numarasi = '$siparis_numarasi' AND siparis_durumu = 'ODENMEDI'")->fetchColumn();
                if($kontrol > 0) {
    
                    // Başarıyla kontrol ettik, buradan sonra bakiyeyi ekleyebilir veya ödeme tamamlanınca yapmak istediğiniz işlemleri yapabilirsiniz.
    
                }
    
            }
    
        }
    }
  • 30-01-2021, 00:00:47
    #3
    Backend Developer
    metehandemir adlı üyeden alıntı: mesajı görüntüle
    Şöyle bir örnek yazdım callback için. Bunu baz alarak kendinize göre düzenleyip, kullanabilirsiniz.
    <?php
    if($_POST) {
        // Öncelikle verilerin gelip gelmediğini kontrol ettirrlim
        if(isset($_POST["platform_order_id"], $_POST["random_nr"], $_POST["signature"], $_POST["status"])) {
    
            // Değişkenlerimizi tanımlayalım
            $siparis_numarasi = $_POST["platform_order_id"];
            $random_nr = $_POST["random_nr"];
            $status = $_POST["status"];
            $shopierApiSecret = "SHOPIER_API_SECRET_KODUNUZ";
    
            // Ardından hash ve ödeme durumu kontrolü yapalım
            $signature = base64_decode($_POST["signature"]);
            $hash = hash_hmac('sha256', $_POST["random_nr"] . $_POST["platform_order_id"] . $shopierApiSecret, true);
    
            if($signature == $hash and $status == "success") {
    
                // Bu sipariş veritabanımızda var mı yok mu, daha önce ödenmişmi kontrol ettirelim
                $kontrol = $db->query("SELECT COUNT(*) FROM siparisler WHERE siparis_numarasi = '$siparis_numarasi' AND siparis_durumu = 'ODENMEDI'")->fetchColumn();
                if($kontrol > 0) {
    
                    // Başarıyla kontrol ettik, buradan sonra bakiyeyi ekleyebilir veya ödeme tamamlanınca yapmak istediğiniz işlemleri yapabilirsiniz.
    
                }
    
            }
    
        }
    }
    teşekkür ederim hallettim