• 25-11-2024, 23:19:38
    #1
    Merhabalar ;
    Paytr Sanal Pos Entegre Yaparken paytr_token gonderilmedi veya gecersiz hatası daha önce bir çok kez iframe vs kullandım şuan direkt api ile kendi formumu yapmak istiyorum örnek kodları birebir aynı yaptım bu hatayı alıyorum.
    Kodlarım ;

       merchant_id = "xx";
            merchant_key = "xx";
            merchant_salt = "xx";
            //
            // Müşterinizin sitenizde kayıtlı veya form vasıtasıyla aldığınız eposta adresi
            emailstr = "info@siteniz.com";
            //
            // Tahsil edilecek tutar.
            payment_amountstr = "100";
            //
            // Sipariş numarası: Her işlemde benzersiz olmalıdır!! Bu bilgi bildirim sayfanıza yapılacak bildirimde geri gönderilir.
            merchant_oid = "safdasfkjldsa121232";
            //
            // Müşterinizin sitenizde kayıtlı veya form aracılığıyla aldığınız ad ve soyad bilgisi
            user_namestr = "user name";
            //
            // Müşterinizin sitenizde kayıtlı veya form aracılığıyla aldığınız adres bilgisi
            user_addressstr = "merke Merkez";
            //
            // Müşterinizin sitenizde kayıtlı veya form aracılığıyla aldığınız telefon bilgisi
            user_phonestr = "08505555511";
            //
            // Başarılı ödeme sonrası müşterinizin yönlendirileceği sayfa
            // !!! Bu sayfa siparişi onaylayacağınız sayfa değildir! Yalnızca müşterinizi bilgilendireceğiniz sayfadır!
            // !!! Siparişi onaylayacağız sayfa "Bildirim URL" sayfasıdır (Bakınız: 2.ADIM Klasörü).
            merchant_ok_url = "http://siteniz.com/Success";
            //
            // Ödeme sürecinde beklenmedik bir hata oluşması durumunda müşterinizin yönlendirileceği sayfa
            // !!! Bu sayfa siparişi iptal edeceğiniz sayfa değildir! Yalnızca müşterinizi bilgilendireceğiniz sayfadır!
            // !!! Siparişi iptal edeceğiniz sayfa "Bildirim URL" sayfasıdır (Bakınız: 2.ADIM Klasörü).
            merchant_fail_url = "http://siteniz.com/Failed";
            //        
            // !!! Eğer bu örnek kodu sunucuda değil local makinanızda çalıştırıyorsanız
            // buraya dış ip adresinizi (https://www.whatismyip.com/) yazmalısınız. Aksi halde geçersiz paytr_token hatası alırsınız.
            user_ip = "alinanipadresi";
    
            if (user_ip == "" || user_ip == null)
            {
                user_ip = Request.ServerVariables["REMOTE_ADDR"];
            }
            //
            // ÖRNEK $user_basket oluşturma - Ürün adedine göre object'leri çoğaltabilirsiniz
            object[][] user_basket = {
                                new object[] {"Örnek ürün 1", "18.00", 1}, // 1. ürün (Ürün Ad - Birim Fiyat - Adet)
                                new object[] {"Örnek ürün 2", "33.25", 2}, // 2. ürün (Ürün Ad - Birim Fiyat - Adet)
                                new object[] {"Örnek ürün 3", "45.42", 1}, // 3. ürün (Ürün Ad - Birim Fiyat - Adet)
                                };
            /* ############################################################################################ */
            // Alabileceği değerler; advantage, axess, combo, bonus, cardfinans, maximum, paraf, world, saglamkart
            card_type = "bonus";
            //
            // Hata mesajlarının ekrana basılması için entegrasyon ve test sürecinde 1 olarak bırakın. Daha sonra 0 yapabilirsiniz.
            debug_on = "1";
            //
            // Mağaza canlı modda iken test işlem yapmak için 1 olarak gönderilebilir.
            test_mode = "0";
            //
            // 3D'siz işlem
            non_3d = "0";
            //
            // Non3d Test Failed
            non3d_test_failed = "0";
            //
            // Taksit Sayısı
            installment_count = "0";
            //
            // Ödeme türü
            payment_type = "card";
            //
            // Post adresi
            string post_url = "https://www.paytr.com/odeme";
            //
            // Para birimi olarak TL, EUR, USD gönderilebilir. USD ve EUR kullanmak için kurumsal@paytr.com 
            // üzerinden bilgi almanız gerekmektedir. Boş gönderilirse TL geçerli olur.
            currency = "TL";
            //
            //
            // Sepet içerği oluşturma fonksiyonu, değiştirilmeden kullanılabilir.
            JavaScriptSerializer ser = new JavaScriptSerializer();
            user_basket_json = ser.Serialize(user_basket);
    
            // Token oluşturma fonksiyonu, değiştirilmeden kullanılmalıdır.
            string Birlestir = string.Concat(merchant_id, user_ip, merchant_oid, emailstr, payment_amountstr.ToString(), payment_type, installment_count, currency, test_mode, non_3d, merchant_salt);
            HMACSHA256 hmac = new HMACSHA256(Encoding.UTF8.GetBytes(merchant_key));
            byte[] b = hmac.ComputeHash(Encoding.UTF8.GetBytes(Birlestir));
            token = Convert.ToBase64String(b);

        <form action="https://www.paytr.com/odeme" method="post">
            Kart Sahibi Adı:
            <input type="text" name="cc_owner" value="TEST KARTI"><br>
            Kart Numarası:
            <input type="text" name="card_number" value="9792030394440796"><br>
            Kart Son Kullanma Ay:
            <input type="text" name="expiry_month" value="12"><br>
            Kart Son Kullanma Yıl:
            <input type="text" name="expiry_year" value="99"><br>
            Kart Güvenlik Kodu:
            <input type="text" name="cvv" value="000"><br>
    
            <input type="hidden" name="merchant_id" value="<%=merchant_id %>">
            <input type="hidden" name="user_ip" value="<%=user_ip %>">
            <input type="hidden" name="merchant_oid" value="<%=merchant_oid %>">
            <input type="hidden" name="email" value="<%=emailstr %>">
            <input type="hidden" name="payment_type" value="<%=payment_type %>">
            <input type="hidden" name="payment_amount" value="<%=payment_amountstr %>">
            <input type="hidden" name="currency" value="<%=currency %>">
            <input type="hidden" name="test_mode" value="<%=test_mode %>">
            <input type="hidden" name="non_3d" value="<%=non_3d %>">
            <input type="hidden" name="merchant_ok_url" value="<%=merchant_ok_url %>">
            <input type="hidden" name="merchant_fail_url" value="<%=merchant_fail_url %>">
            <input type="hidden" name="user_name" value="<%=user_namestr %>">
            <input type="hidden" name="user_address" value="<%=user_addressstr %>">
            <input type="hidden" name="user_phone" value="<%=user_phonestr %>">
            <input type="hidden" name="user_basket" value="<%=user_basket_json %>">
            <input type="hidden" name="debug_on" value="<%=debug_on %>">
            <input type="hidden" name="paytr_token" value="<%=token %>">
            <input type="hidden" name="non3d_test_failed" value="<%=non3d_test_failed %>">
            <input type="hidden" name="installment_count" value="<%=installment_count %>">
            <input type="hidden" name="no_installment" value="0">
            <input type="hidden" name="max_installment" value="0">
            <input type="hidden" name="lang" value="tr">
            <input type="hidden" name="card_type" value="<%=card_type %>">
            <input type="submit" value="Submit">
        </form>
  • 25-11-2024, 23:21:52
    #2
    Localhostta mı yapıyorsun?
  • 25-11-2024, 23:22:56
    #3
    podos adlı üyeden alıntı: mesajı görüntüle
    Localhostta mı yapıyorsun?

    Evet hocam localhosta yapyıorum fakat ip adresini dış ip adresim olarak yapıyorum. Ayrıca sunucuyada attım yine aynı hata alıyorum.
  • 26-11-2024, 10:14:56
    #4
    Merhaba, aynı hatayı bir woocommerce sitemizde aldık. Destekten ulaşınca API güncellediler ve düzeldi. Belki yardımcı olur, iyi çalışmalar.
  • 26-11-2024, 10:17:07
    #5
    Teşekkür ederim cevabınız için aynen sistemde iframe api aktifmiş ben ise direkt api kullanmak istiyorum mesaj attım talebi güncellediler sabah tabi bunuda fark etmem sabah 8'de oldu.İnsan bir bilgi verir apiniz aktif değil paytr bildiğimiz şeyi bile bize unutturdu.