• 11-11-2021, 00:55:05
    #1
    merhaba arkadaşlar. hazırladığım bir yazılıma paytr iframe modülü entegre ediyorum.
    PayTR odeme.php sayfasında sipariş numarası olarak $merchant_oid değişkenini kullanıyor ve bu değişkeni alıp ödeme sonrası bildirim.php ye gönderiyor. Biz de burada ödeme başarılıysa sipariş numarası olan $merchant_oid kullanarak veritabanımızdan siparişi onaylıyoruz.
    Buraya kadar her şey tamam ama $merchant_oid değişkeni her seferinde değişecek diyor, yani mesela benim veritabanımdaki sipariş_id=758 ise ben $merchant_oid=758 ayarlıyorum ancak müşteri bir sefer bu sayfaya girdi ve ödemekten vazgeçti ise ikinci girişinde hata veriyor, $merchant_oid daha önce kullanılmış diyor.
    Siz buna nasıl bir çözüm buldunuz?

    $merchant_oid rastgele bir sayı verince sorun çözülür gibi ama bu sefer de veritabanımdaki o siparişi nasıl bulup onaylatacağım?
  • 11-11-2021, 01:02:31
    #2
    Selam, bunun için birkaç yöntem kullanabilirsin. Loglamak istiyorsan her işlemi bir ara tabloda tutarak her ödeme aşamasını yeni bir oid ile o işleme atayabilirsin.

    Ya da oid isimli bir field oluşturup mevcut tablonda her işlemde o veriyi güncelleyebilirsin. Çözemezsen yarın gün içinde sana bir kaç detay verebilirim. Ben paytr kullanıyorum yazdımda baya. Umarım bi fikir vermiştir. Kolay gelsin.
  • 11-11-2021, 01:02:06
    #3
    Selam, bunun için birkaç yöntem kullanabilirsin. Loglamak istiyorsan her işlemi bir ara tabloda tutarak her ödeme aşamasını yeni bir oid ile o işleme atayabilirsin.

    Ya da oid isimli bir field oluşturup mevcut tablonda her işlemde o veriyi güncelleyebilirsin. Çözemezsen yarın gün içinde sana bir kaç detay verebilirim. Ben paytr kullanıyorum yazdımda baya. Umarım bi fikir vermiştir. Kolay gelsin.
  • 11-11-2021, 01:07:19
    #4
    eskoctr adlı üyeden alıntı: mesajı görüntüle
    Selam, bunun için birkaç yöntem kullanabilirsin. Loglamak istiyorsan her işlemi bir ara tabloda tutarak her ödeme aşamasını yeni bir oid ile o işleme atayabilirsin.

    Ya da oid isimli bir field oluşturup mevcut tablonda her işlemde o veriyi güncelleyebilirsin. Çözemezsen yarın gün içinde sana bir kaç detay verebilirim. Ben paytr kullanıyorum yazdımda baya. Umarım bi fikir vermiştir. Kolay gelsin.
    teşekkürler tabloda ikinci bir alan oluşturmak ve her seferinde güncellemek aklıma geldi ama daha basit bir yolu vardır diye düşünmüştüm. yoksa bu şekilde devam edeceğiz.
    tekrar teşekkür ederim cevabınız için
  • 11-11-2021, 01:13:55
    #5
    . Net in hazır kodlarını veriyorlar. Oradaki mantığa bakıp php ye uyarlayabilirsin. Ben. Net için yazdım sorunsuz çalıştı.
  • 11-11-2021, 02:57:58
    #6
    Merhabalar hocam. Daha öncesinde yazılan PHP kodunu iletiyorum. Tüm kodlar açıklamalı olarak anlatılmıştır. Umarım yararlı olur. Zip halinde indirebilirsiniz. İNDİRME LİNK :
  • 11-11-2021, 12:56:03
    #7
    erkanak2 adlı üyeden alıntı: mesajı görüntüle
    Merhabalar hocam. Daha öncesinde yazılan PHP kodunu iletiyorum. Tüm kodlar açıklamalı olarak anlatılmıştır. Umarım yararlı olur. Zip halinde indirebilirsiniz. İNDİRME LİNK :
    Teşekkürler ancak burada da merchant oid olarak rastgele sayı oluşturmamızı ve her istekte bu sayının değişmesini istiyor. Halbuki ben merchant oid olarak veritabanımdaki sipariş noyu kullanmak istiyorum. Böylece bildirim sayfasına post edilen merchant oid ile veritabanımdaki sipariş noyu eşleştirip onaylayabilirim.
    Ancak paytr her istekte merchant oid değiştirilmesini istediği için bu mümkün olmuyor.
  • 11-11-2021, 13:29:35
    #8
    $merchant_oid = time(); kullanıyorum benzersiz olması gerekiyor.
    Daha sonra veri tabanına kayıt yapıyoruz farklı bir tablo ile sorun çözülmüş oluyor.

    Ben farklı tabloya kaydediyorum verileri oradan alıyorum daha sonra.
    Kullandığınız sisteme göre değişir tabi ki bu uygulama sepete entegre vs.. uzun işler.
    Ben sepet kullanmıyorum.

    $sql = mysqli_query("INSERT INTO siparis (sp_userid, sp_user, sp_mail, sp_siparis, sp_tel, sp_fiyat, sp_date, sp_ip)
            VALUES ('".$userid."', '".$username."', '".$email."', '".$urun."', '".$tel."' , '".$fiyat."' , '".date("Y-m-d H:i:s")."', '".$ip."')");
  • 11-11-2021, 20:05:22
    #9
    firat131 adlı üyeden alıntı: mesajı görüntüle
    Teşekkürler ancak burada da merchant oid olarak rastgele sayı oluşturmamızı ve her istekte bu sayının değişmesini istiyor. Halbuki ben merchant oid olarak veritabanımdaki sipariş noyu kullanmak istiyorum. Böylece bildirim sayfasına post edilen merchant oid ile veritabanımdaki sipariş noyu eşleştirip onaylayabilirim.
    Ancak paytr her istekte merchant oid değiştirilmesini istediği için bu mümkün olmuyor.
    Hocam merchand oid benzersiz olması gerekiyor paytr için. Bunu veritabanınızda paytr gibi bir alan açıp orada tutmanız gerekir. ve odeme sayfasında merchandoid numarasını veritabanınıza kaydedin. Durum diye bir alan daha oluşturup buraya 0 değeri tanımlayın. merchand oid numarasını session'a atayın. bildirim url kısmında session tanımlı merchand oid numarasını alın veritabanından sorgulayın ve bulun eğer işlem başarılıysa durum bölümünü 1 yapın ve siparişi onaylayın.