• 01-04-2020, 23:58:36
    #1
    Merhaba arkadaşlar ben burada bir hata bulamadım neden callback dönmüyor
    include ("./baglanti.php");
    /*
    _____ __ _ __ ___ ____ ____
    / ___// /_ (_)___ __ __ ____ ___ / /_ / | / __ \/ _/
    \__ \/ __ \/ / __ \/ / / / / __ \/ _ \/ __/ / /| | / /_/ // /
    ___/ / / / / / /_/ / /_/ / / / / / __/ /_ / ___ |/ ____// /
    /____/_/ /_/_/ .___/\__, (_)_/ /_/\___/\__/ /_/ |_/_/ /___/
    /_/ /____/
    
    API Versiyon: 1
    Güncelleme Tarihi: 28.03.2020
    */
    
    $ip = $_SERVER["HTTP_CF_CONNECTING_IP"];
    
    if ($ip != "185.120.5.2") { // IP Adresini kontrol ediyoruz, eğer istek shipy sunucusu üzerinden gelmemişse, sonlandırıyoruz.
        exit("SHIPY: Request sent by wrong IP: " . $ip);
    }
    
    if (!isset($_POST["return_id"]) || !isset($_POST["payment_type"]) || !isset($_POST["payment_amount"]) ||
        !isset($_POST["user_name"]) || !isset($_POST["user_address"]) || !isset($_POST["user_phone"]) ||
        !isset($_POST["email"]) || !isset($_POST["test_mode"])) { // Herhangi veri eksik ise, isteği sonlandırıyoruz.
        exit("SHIPY: Missing value sent.");
    }
    
    $return_id = $_POST["return_id"]; // Ödeme isteğini gönderirken belirlediğiniz return id.
    $payment_type = $_POST["payment_type"]; // Ödeme kanalı. "eft" => Havale / EFT, "credit_card" => Kredi Kartı / Ön Ödemeli Kart, "mobile" => Mobil Ödeme
    $payment_amount = $_POST["payment_amount"]; // Ödenen miktar.
    $user_name = $_POST["user_name"]; // Ödeme yapan kullanıcınızın adı, soyadı.
    $user_address = $_POST["user_address"]; // Ödeme yapan kullanıcınızın adresi.
    $user_phone = $_POST["user_phone"]; // Ödeme yapan kullanıcınızın telefon numarası.
    $email = $_POST["email"]; // Ödeme yapan kullanıcınızın e-posta adresi.
    $test_mode = $_POST["test_mode"]; // 0 = Gerçek İşlem, 1 = Test İşlemi
    
    if ($test_mode == "1") {
        // Bu işlem test işlemidir, veritabanınıza işlerken gerçek işlem olarak göstermemeniz gerekir.
    }
    
    $sorgu = mysql_query("select * from uyeler where userId='$return_id'");
    $kayit=mysql_fetch_array($sorgu);
    $kredi=$kayit["kredi"];
    
    $yenikredi = $kredi + $payment_amount;
    $zaman = time();
    $sql = "UPDATE uyeler SET kredi='$yenikredi' AND tel='$user_phone' AND email='$email' WHERE id='$return_id'";
    $sqle= "INSERT INTO krediler (userId,kredi,email,tel,odemeyolu,tarih) VALUES ('$return_id','$payment_amount','$email','$user_phone','$payment_type','$zaman')";
    
    if(mysql_query($sql) && mysql_query($sqle)){
    echo "OK"; // İşlem sonunda OK yazdırıyoruz. Eğer yazdırılmazsa, OK yanıtı gelene kadar tarafınıza istek gönderilecektir.
    } else {
    echo "Veritabanı Hatası.";
    }
    // Her şey doğrulandı ve güvenli. Artık burada veritabanı işlemlerinizi yapabilirsiniz.
    }
    üstteki çalışan callback.php arkadaşlar sorun çözüldü sorun yok şuan
    NOT: arkadaşlar eski apiyi kullanıyormuşum mailime yeni apiyi çoktan göndermişler ben görmemişim kusura bakmayın yardımlarınız için teşekkür ederim @asiminnesli; @Eagle05;
  • 02-04-2020, 00:05:22
    #2
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Merhaba, $sql değişkenindeki işlemi kontrol ediyorsunuz ancak $sqle değişkenindeki işlemi kontrol etmiyorsunuz.
    1- sql işlemlerini ki bu en sondaki olabilir try catch blokuna alıp denemelisiniz,
    2-
    error_reporting(E_ALL);
    ini_set("display_errors", 1);
    ekleyerek sistemi tekrar çalıştırıp, oluşan bir hata olup olmadığını okumaya çalışmalısınız.
  • 02-04-2020, 00:09:33
    #3
    Eagle05 adlı üyeden alıntı: mesajı görüntüle
    Merhaba, $sql değişkenindeki işlemi kontrol ediyorsunuz ancak $sqle değişkenindeki işlemi kontrol etmiyorsunuz.
    1- sql işlemlerini ki bu en sondaki olabilir try catch blokuna alıp denemelisiniz,
    2-
    error_reporting(E_ALL);
    ini_set("display_errors", 1);
    ekleyerek sistemi tekrar çalıştırıp, oluşan bir hata olup olmadığını okumaya çalışmalısınız.
    cevabın için teşekkür ederim ama bu kısmı onların apisi kontrol etmiyormu ben kontrol edemiyorum burayı sorun yok gibi duruyor anlaymadım bi türlü
  • 02-04-2020, 00:12:28
    #4
    muraatydn adlı üyeden alıntı: mesajı görüntüle
    cevabın için teşekkür ederim ama bu kısmı onların apisi kontrol etmiyormu ben kontrol edemiyorum burayı sorun yok gibi duruyor anlaymadım bi türlü
    yazılan koda göre 'onların apisi' gibi bir şey yok eğer öyleyse de siz muhtemelen API'ye eksik bir şeyler gönderiyorsunuz ya da tanımlanamayan bir şey. aslında API bağlantı türüne göre önce third party bir programla (PostMan, SOAPUI gibi, ya da test sayfası) test etseniz çok daha iyi olur.
  • 02-04-2020, 00:19:13
    #5
    hic bir sey mi donmuyor istediginiz mi donmuyor.
    $sql , $sqle
    sizin boyle 2 tane text degiskeniniz var
    mysql_query($sqle);
    $sqle degiskeninizi mysql e gonderiyorsunuz fakat return beklemiyorsunuz

    if(mysql_query($sql)){
    echo "OK"; // İşlem sonunda
    $sql degiskeninizden return bekliyorsunuz .

    garip geldi ayrica LUTFEN turkce degisken kullanmayin.
  • 02-04-2020, 00:24:41
    #6
    asiminnesli adlı üyeden alıntı: mesajı görüntüle
    hic bir sey mi donmuyor istediginiz mi donmuyor.
    $sql , $sqle
    sizin boyle 2 tane text degiskeniniz var
    mysql_query($sqle);
    $sqle degiskeninizi mysql e gonderiyorsunuz fakat return beklemiyorsunuz

    if(mysql_query($sql)){
    echo "OK"; // İşlem sonunda
    $sql degiskeninizden return bekliyorsunuz .

    garip geldi ayrica LUTFEN turkce degisken kullanmayin.
    sorunu bende kapamadım işte shipy sitesinde callback kısmında kaldığını belirtiyor ne bi error ve bi şey diyor ben sorunun yerini göremedim postman kullanmayı denedim beceremedim şuan
  • 02-04-2020, 00:27:46
    #7
    genelde eticaret odeme sistemlerinde bir callback sayfasi olur ve bu sayfa sisteme soylenmis olmalidir. Sistem o callback sayfasindan cevap bekler. sizin sisteminiz islem sonunda bir sayfaya yonlendirip o sayfadan odeme sistemine islem tamam bilgisi yollamalisiniz
  • 02-04-2020, 00:30:02
    #8
    asiminnesli adlı üyeden alıntı: mesajı görüntüle
    genelde eticaret odeme sistemlerinde bir callback sayfasi olur ve bu sayfa sisteme soylenmis olmalidir. Sistem o callback sayfasindan cevap bekler. sizin sisteminiz islem sonunda bir sayfaya yonlendirip o sayfadan odeme sistemine islem tamam bilgisi yollamalisiniz
    bu da öyle callback sayfasını her 1 dk da bir kontrol ediyorlar ama ok mesajını bizden geri alamıyorlar ben bu sorunu bulamadım işte



    muraatydn adlı üyeden alıntı: mesajı görüntüle
    bu da öyle callback sayfasını her 1 dk da bir kontrol ediyorlar ama ok mesajını bizden geri alamıyorlar ben bu sorunu bulamadım işte
    Eagle05 adlı üyeden alıntı: mesajı görüntüle
    yazılan koda göre 'onların apisi' gibi bir şey yok eğer öyleyse de siz muhtemelen API'ye eksik bir şeyler gönderiyorsunuz ya da tanımlanamayan bir şey. aslında API bağlantı türüne göre önce third party bir programla (PostMan, SOAPUI gibi, ya da test sayfası) test etseniz çok daha iyi olur.
    Sayfanın tamamı budur
    include ("baglanti.php");
    
    if(isset($_SERVER["HTTP_CLIENT_IP"])) {
        $ip = $_SERVER["HTTP_CLIENT_IP"];
    } elseif(isset($_SERVER["HTTP_X_FORWARDED_FOR"])){
        $ip = $_SERVER["HTTP_X_FORWARDED_FOR"];
    } else {
        $ip = $_SERVER["REMOTE_ADDR"];
    }
    
    if ($ip != "ipadresi") { // IP Adresini kontrol ediyoruz, eğer istek shipy sunucusu üzerinden gelmemişse, sonlandırıyoruz.
        exit();
    }
    
    if (!isset($_POST["return_id"]) || !isset($_POST["payment_type"]) || !isset($_POST["payment_amount"]) ||
        !isset($_POST["user_name"]) || !isset($_POST["user_address"]) || !isset($_POST["user_phone"]) ||
        !isset($_POST["email"]) || !isset($_POST["test_mode"])) { // Herhangi veri eksik ise, isteği sonlandırıyoruz.
        exit();
    }
    
    $return_id = $_POST["return_id"]; // Ödeme isteğini gönderirken belirlediğiniz return id. üye id si
    $payment_type = $_POST["payment_type"]; // Ödeme kanalı. "eft" => Havale / EFT, "credit_card" => Kredi Kartı / Ön Ödemeli Kart, "mobile" => Mobil Ödeme
    $payment_amount = $_POST["payment_amount"]; // Ödenen miktar.
    $user_name = $_POST["user_name"]; // Ödeme yapan kullanıcınızın adı, soyadı.
    $user_address = $_POST["user_address"]; // Ödeme yapan kullanıcınızın adresi.
    $user_phone = $_POST["user_phone"]; // Ödeme yapan kullanıcınızın telefon numarası.
    $email = $_POST["email"]; // Ödeme yapan kullanıcınızın e-posta adresi.
    
    
    $sorgu = mysql_query("select * from uyeler where userId='$return_id'");
    $kayit=mysql_fetch_array($sorgu);
    $kredi=$kayit["kredi"];
    
    $yenikredi = $kredi + $payment_amount;
    $zaman = time();
    $sql = "UPDATE uyeler SET kredi='$yenikredi' AND tel='$user_phone' AND email='$email' WHERE id='$return_id'";
    $sqle= "INSERT INTO krediler (userId,kredi,email,tel,odemeyolu,tarih) VALUES ('$return_id','$payment_amount','$email','$user_phone','$payment_type','$zaman')";
    
    if(mysql_query($sql) && mysql_query($sqle)){
        echo "OK"; // İşlem sonunda OK yazdırıyoruz. Eğer yazdırılmazsa, OK yanıtı gelene kadar tarafınıza istek gönderilecektir.
    } else {
    echo "Veritabanı Hatası.";
    }
    
    // Her şey doğrulandı ve güvenli. Artık burada veritabanı işlemlerinizi yapabilirsiniz.




    NOT: arkadaşlar eski apiyi kullanıyormuşum mailime yeni apiyi çoktan göndermişler ben görmemişim kusura bakmayın yardımlarınız için teşekkür ederim @asiminnesli; @Eagle05;