• 14-03-2022, 23:51:37
    #10
    wisex adlı üyeden alıntı: mesajı görüntüle
    Bu bildirim hocam iframe.php yi paylaşırmısınız belki orda hata vardır
        $config = $this->default_model->get('config',['config_id'=>1]);
            $payment = json_decode($config->config_payment);
    
    
            $merchant_id      = $payment->id;
            $merchant_key     = $payment->key;
            $merchant_salt    = $payment->salt;
            ## Müşterinizin sitenizde kayıtlı veya form vasıtasıyla aldığınız eposta adresi
            $email = $this->user->member_email;
            ## Tahsil edilecek tutar.
            $fiyat = $get->package_price;
            $payment_amount    = $fiyat*100; //9.99 için 9.99 * 100 = 999 gönderilmelidir.
            ## Sipariş numarası: Her işlemde benzersiz olmalıdır!! Bu bilgi bildirim sayfanıza yapılacak bildirimde geri gönderilir.
            $merchant_oid = rand(99,99999);
            ## Müşterinizin sitenizde kayıtlı veya form aracılığıyla aldığınız ad ve soyad bilgisi
            $user_name = $this->user->member_username;
            ## Müşterinizin sitenizde kayıtlı veya form aracılığıyla aldığınız adres bilgisi
            $user_address = $this->user->member_address;
            ## Müşterinizin sitenizde kayıtlı veya form aracılığıyla aldığınız telefon bilgisi
            $user_phone = $this->user->member_phone;
            ## 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 = base_url("packages/payment_statu/success");
            ## Ödeme sürecinde beklenmedik bir hata oluşması durumunda müşterinizin yönlendirileceği sayfa
            ## !!! Siparişi iptal edeceğiniz sayfa "Bildirim URL" sayfasıdır (Bakınız: 2.ADIM Klasörü).
            $merchant_fail_url = base_url("packages/payment_statu/error");
            ## Müşterinin sepet/sipariş içeriği
            $user_basket = base64_encode(json_encode(array(
                array("Sipariş", $get->package_price , 1), // 1. ürün (Ürün Ad - Birim Fiyat - Adet )
    
        )));
            ## Kullanıcının IP adresi
            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"];
            }
            ## !!! 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=$ip;
            ## İşlem zaman aşımı süresi - dakika cinsinden
            $timeout_limit = "30";
            ## 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;
            $no_installment    = 0; // Taksit yapılmasını istemiyorsanız, sadece tek çekim sunacaksanız 1 yapın
            ## Sayfada görüntülenecek taksit adedini sınırlamak istiyorsanız uygun şekilde değiştirin.
            ## Sıfır (0) gönderilmesi durumunda yürürlükteki en fazla izin verilen taksit geçerli olur.
            $max_installment = 0;
            $currency = "TL";
            ####### Bu kısımda herhangi bir değişiklik yapmanıza gerek yoktur. #######
            $hash_str = $merchant_id .$user_ip .$merchant_oid .$email .$payment_amount .$user_basket.$no_installment.$max_installment.$currency.$test_mode;
            $paytr_token=base64_encode(hash_hmac('sha256',$hash_str.$merchant_salt,$merchant_key,true));
            $post_vals=array(
                    'merchant_id'=>$merchant_id,
                    'user_ip'=>$user_ip,
                    'merchant_oid'=>$merchant_oid,
                    'email'=>$email,
                    'payment_amount'=>$payment_amount,
                    'paytr_token'=>$paytr_token,
                    'user_basket'=>$user_basket,
                    'debug_on'=>$debug_on,
                    'no_installment'=>$no_installment,
                    'max_installment'=>$max_installment,
                    'user_name'=>$user_name,
                    'user_address'=>$user_address,
                    'user_phone'=>$user_phone,
                    'merchant_ok_url'=>$merchant_ok_url,
                    'merchant_fail_url'=>$merchant_fail_url,
                    'timeout_limit'=>$timeout_limit,
                    'currency'=>$currency,
                    'test_mode'=>$test_mode
                );
    
            $ch=curl_init();
            curl_setopt($ch, CURLOPT_URL, "https://www.paytr.com/odeme/api/get-token");
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
            curl_setopt($ch, CURLOPT_POST, 1) ;
            curl_setopt($ch, CURLOPT_POSTFIELDS, $post_vals);
            curl_setopt($ch, CURLOPT_FRESH_CONNECT, true);
            curl_setopt($ch, CURLOPT_TIMEOUT, 20);
             // XXX: DİKKAT: lokal makinanızda "SSL certificate problem: unable to get local issuer certificate" uyarısı alırsanız eğer
             // aşağıdaki kodu açıp deneyebilirsiniz. ANCAK, güvenlik nedeniyle sunucunuzda (gerçek ortamınızda) bu kodun kapalı kalması çok önemlidir!
             // curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
    
            $result = @curl_exec($ch);
    
            if(curl_errno($ch))
                die("PAYTR IFRAME connection error. err:".curl_error($ch));
    
            curl_close($ch);
    
            $result=json_decode($result,1);
    
            if($result['status']=='success'){
                $data = new stdClass();
                $data->token=$result['token'];
                $this->load->view('diyetisyen/order',$data);
            }else{
                die("PAYTR IFRAME failed. reason:".$result['reason']);
            }
  • 14-03-2022, 23:58:21
    #11
    fiyat değişkenini yerine
    $payment_amount = $_POST['fiyat']; yaparmısınız ekstra olarak post edilen sayfada fiyat hesaplama işlemini yapın.
  • 15-03-2022, 00:04:20
    #12
    wisex adlı üyeden alıntı: mesajı görüntüle
    fiyat değişkenini yerine
    $payment_amount = $_POST['fiyat']; yaparmısınız ekstra olarak post edilen sayfada fiyat hesaplama işlemini yapın.
    yok hocam paytr öyle kabul etmiyor o sayıyı *100 yapın diyor
  • 15-03-2022, 00:07:02
    #13
    tasarimbey adlı üyeden alıntı: mesajı görüntüle
    yok hocam paytr öyle kabul etmiyor o sayıyı *100 yapın diyor
    hocam siz post ettiriyorsunuz ya önceki sayfada orada *100 olarak post ettirin iframe sayfanıza hidden bir inputta örnek veriyorum;

    <input type="text" name="fiyat" value="<?= $sonuc['fiyat']*100; ?>" hidden>
  • 15-03-2022, 00:09:22
    #14
    wisex adlı üyeden alıntı: mesajı görüntüle
    hocam siz post ettiriyorsunuz ya önceki sayfada orada *100 olarak post ettirin iframe sayfanıza hidden bir inputta örnek veriyorum;

    <input type="text" name="fiyat" value="<?= $sonuc['fiyat']*100; ?>" hidden>
    denedim de bununla alakası yok
  • 15-03-2022, 00:11:54
    #15
    tasarimbey adlı üyeden alıntı: mesajı görüntüle
    denedim de bununla alakası yok
    https://github.com/aliarslan10/Laravel-Eticaret

    bunu inceleyin hocam laravel sanırım projeniz
  • 15-03-2022, 00:20:19
    #16
    wisex adlı üyeden alıntı: mesajı görüntüle
    https://github.com/aliarslan10/Laravel-Eticaret

    bunu inceleyin hocam laravel sanırım projeniz
    codeigniter ile yaptım hocam
  • 15-03-2022, 01:19:20
    #17
    tasarimbey adlı üyeden alıntı: mesajı görüntüle
    codeigniter ile yaptım hocam

    https://www.youtube.com/watch?v=kcgrfLWjOco


    bunu buldum hocam boş vaktinizde göz atabilirsiniz
  • 15-03-2022, 23:19:54
    #18
    https://www.r10.net/iyovi , destekleriyle yapılmıştır. Teşekkürler