رفتن به مطلب

پست های پیشنهاد شده

سلام وقت بخیر

آخرین نسخه افزونه فروش فایل جومینا رو نصب کردم ، اما یه مشکل اساسی دارم ، فایل هایی که دارای مبلغ هستن مشکلی ندارن و پس از پرداخت دانلود میشن

اما مشکل اینجاست که ، فایل هایی که مبلغشون صفر هست رو پس از کلیک بر روی کلید پرداخت و دانلود فایل ، هیچ لینکی برای دانلود نمایش نمیده و اینکه در حسابداری هم نشون نمیده که یک عملیات موفق انجام شده ، در واقع انگار اتفاقی نیوفتاده .

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر
43 minutes قبل , مسعود معمار گفت:

سلام وقت بخیر

آخرین نسخه افزونه فروش فایل جومینا رو نصب کردم ، اما یه مشکل اساسی دارم ، فایل هایی که دارای مبلغ هستن مشکلی ندارن و پس از پرداخت دانلود میشن

اما مشکل اینجاست که ، فایل هایی که مبلغشون صفر هست رو پس از کلیک بر روی کلید پرداخت و دانلود فایل ، هیچ لینکی برای دانلود نمایش نمیده و اینکه در حسابداری هم نشون نمیده که یک عملیات موفق انجام شده ، در واقع انگار اتفاقی نیوفتاده .

گزارش خطا رو هم روی حداکثر قرار دادم ازین دو خط ایراد میگرفت :

 

-------------------------------------------------------------------------------------------------------

Strict Standards: Only variables should be assigned by reference in .../components/com_joominaflileselling/views/verify/tmpl/default.php on line 7

:

    $session =& JFactory::getSession();

 

-------------------------------------------------------------------------------------------------------


Strict Standards: Only variables should be assigned by reference in.../components/com_joominaflileselling/views/verify/tmpl/default.php on line 25

:

     $date =& JFactory::getDate();


-------------------------------------------------------------------------------------------------------

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

البته این ارورها نباید ربطی به این مشکل داشته باشه ولی بنده هم دقیقا همین مشکل و دارم وقتی که فایل هدیه تو جومینا فایل میزارم وقتی که کاربر روی خرید کلیک می کنه نه لینکی نشون میده و نه ایمیل می کنه / دوستان اگر کسی می تونه کمک کنه لطفا

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

توی این مسیر برید :

public_html/components/com_joominaflileselling/views/verify/tmpl/default.php

 

و فایل default.php رو باز کنید و محتویاتش رو کلا پاک کنید و محتویات فایلی که پیوست کردم روکاملا جایگزین فایل های قبلی کنید ، مشکل 100% حل میشه :

 

-----------------------------------------------------/////////////////--------------------------------------


<?php
defined('_JEXEC') || die('=;)');
$document = JFactory::getDocument();
$url = JURI::base().'components/com_joominaflileselling/assets/css/default.css';
$document->addStyleSheet($url);
    // get session
    $session =& JFactory::getSession();
    $price = $session->get( 'price');
    $id = $session->get( 'id');
    $useremail = $session->get( 'useremail');
    //get config
            $db = JFactory::getDBO();
            $query = "SELECT * FROM `#__filesellconfig`";
            $db->setQuery($query);
            $config = $db->loadObject();
            
            
   //get file
            $db = JFactory::getDBO();
            $query = "SELECT * FROM `#__joominaflileselling` WHERE `id`='". $id ."' ";
            $db->setQuery($query);
            $file = $db->loadObject();
   //making hashfile
     $filenamehash = md5($file->name);
     $date =& JFactory::getDate();
     $date = explode(' ' , $date);
     $date= $date[0];
     $datehash =md5($date);
    
    //factornumber
                function randomfactornomber($length=10) {
                    $string = '';
                    $characters = "23456789ABCDEFHJKLMNPRTVWXYZabcdefghijklmnopqrstuvwxyz";
                    for ($p = 0; $p < $length; $p++) {
                    $string .= $characters[mt_rand(0, strlen($characters)-1)];
                    }
                    return $string;
                    }
                 $factornumber =randomfactornomber(5);
                 $hash= $filenamehash.$factornumber.$datehash;
    // file was free
    $zeroprice = $file->price;
        if ($zeroprice == '0'){
            $payverify = 1;
            $useremail=$_POST['costomeremail'];
        
            
                    if($payverify = 1){?>
        <div class="successfullpay">
            <h2>کاربر گرامی ، لینک دانلود شما با شماره فاکتور اختصاصی ایجاد گردید. <?php echo $factornumber ?></h2>
           <div class="joominafactornumber">
            <p>شماره فاکتور شما <?php echo $factornumber ?> میباشد</p>
                </div>
            <p style="padding-right:10px">لطفا در نگه داری شماره فاکتور خود دقت فرمایید</p>
            <?php if($config->emaillink == '1'){?>
            <p style="background:#FFF ; padding:10 0"> جهت دانلود فایل مورد نظر ، با استفاده از شماره فاکتور اختصاصی شما روی لینک دانلود کلیک نمایید:<a href="http://pnegah.ir">دانلود فایل</a> </p>
            <?php } ?>
             <p>در صورتی که در حال دانلود فایل هایی هستید که مرورگر ان ها را باز میکند همانند فایل های تصویری میتوانید از ادرس بار بالا لینک مستیقیم فایل را کپی نموده و در دانلود منیجر قرار دهید</p>
            </div>
             
       <?php
       //-- No direct access
defined('_JEXEC') || die('=;)');
$document = JFactory::getDocument();
$url = JURI::base().'components/com_joominaflileselling/assets/css/default.css';
$document->addStyleSheet($url);
    
    // get session
    $session =& JFactory::getSession();
   $id = $session->get( 'id');
   $hash = $session->get( 'hash');
  $factornumber = $session->get( 'factornumber' );

    
    //get config
            $db = JFactory::getDBO();
            $query = "SELECT * FROM `#__filesellconfig`";
            $db->setQuery($query);
            $config = $db->loadObject();
   //get file
            $db = JFactory::getDBO();
            $query = "SELECT * FROM `#__joominaflileselling` WHERE `id`='". $id ."' ";
            $db->setQuery($query);
            $file = $db->loadObject();
  //get file download order
              $db = JFactory::getDBO();
            $query = "SELECT * FROM `#__joominafileseldownload` WHERE `factornumber`='". $factornumber ."' ";
            $db->setQuery($query);
            $fileorder = $db->loadObject();
 
        
   //get date
            
            //today date
            $date =& JFactory::getDate();
            $date = explode(' ' , $date);
            $todaydate= $date[0];
               $today_time = strtotime($todaydate);
            //expire date
            $dateorder = $fileorder->date;
            //2016-03-11
            
            $datexpire = $config->downloaddate;
            $datexpire = $datexpire+1;
             $datexpire = (1)*$datexpire;
            $datee = new DateTime($dateorder);

            $datee->modify('+'.$datexpire.' day');
            $datexpire =$datee->format('Y-m-d') . "\n";
            
            $datexpire = strtotime($datexpire);
            
            if ($datexpire > $today_time ) {
                
                                
            // if directlink was not enter
            
            if (!$file->directdownloadlink){
            
            //prepare file for download
            $filename = JPATH_SITE.'/joominaupload/'.$file->hostdownloadlink;
            $only_filename = basename($filename);
            
    //define mimtype
            $mimedevide = explode('.' ,$only_filename);
             $mim =  end($mimedevide);
        switch ($mim) {
            case "ez":  $mime="application/andrew-inset"; break;
            case "hqx": $mime="application/mac-binhex40"; break;
            case "cpt": $mime="application/mac-compactpro"; break;
            case "doc": $mime="application/msword"; break;
            case "docx": $mime="application/vnd.openxmlformats-officedocument.wordprocessingml.document"; break;
            case "bin": $mime="application/octet-stream"; break;
            case "dms": $mime="application/octet-stream"; break;
            case "lha": $mime="application/octet-stream"; break;
            case "lzh": $mime="application/octet-stream"; break;
            case "exe": $mime="application/octet-stream"; break;
            case "class": $mime="application/octet-stream"; break;
            case "dll": $mime="application/octet-stream"; break;
            case "oda": $mime="application/oda"; break;
            case "pdf": $mime="application/pdf"; break;
            case "ai":  $mime="application/postscript"; break;
            case "eps": $mime="application/postscript"; break;
            case "ps":  $mime="application/postscript"; break;
            case "xls": $mime="application/vnd.ms-excel"; break;
            case "xml": $mime="application/xml"; break;
            case "xlsx": $mime="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; break;
            case "ppt": $mime="application/vnd.ms-powerpoint"; break;
            case "pptx": $mime="application/vnd.openxmlformats-officedocument.presentationml.presentation"; break;
            case "wbxml": $mime="application/vnd.wap.wbxml"; break;
            case "wmlc": $mime="application/vnd.wap.wmlc"; break;
            case "wmlsc": $mime="application/vnd.wap.wmlscriptc"; break;
            case "vcd": $mime="application/x-cdlink"; break;
            case "pgn": $mime="application/x-chess-pgn"; break;
            case "csh": $mime="application/x-csh"; break;
            case "dvi": $mime="application/x-dvi"; break;
            case "spl": $mime="application/x-futuresplash"; break;
            case "gtar": $mime="application/x-gtar"; break;
            case "hdf": $mime="application/x-hdf"; break;
            case "js":  $mime="application/x-javascript"; break;
            case "nc":  $mime="application/x-netcdf"; break;
            case "cdf": $mime="application/x-netcdf"; break;
            case "swf": $mime="application/x-shockwave-flash"; break;
            case "tar": $mime="application/x-tar"; break;
            case "tcl": $mime="application/x-tcl"; break;
            case "tex": $mime="application/x-tex"; break;
            case "texinfo": $mime="application/x-texinfo"; break;
            case "texi": $mime="application/x-texinfo"; break;
            case "t":   $mime="application/x-troff"; break;
            case "tr":  $mime="application/x-troff"; break;
            case "roff": $mime="application/x-troff"; break;
            case "man": $mime="application/x-troff-man"; break;
            case "me":  $mime="application/x-troff-me"; break;
            case "ms":  $mime="application/x-troff-ms"; break;
            case "ustar": $mime="application/x-ustar"; break;
            case "src": $mime="application/x-wais-source"; break;
            case "zip": $mime="application/x-zip"; break;
            case "au":  $mime="audio/basic"; break;
            case "snd": $mime="audio/basic"; break;
            case "mid": $mime="audio/midi"; break;
            case "midi": $mime="audio/midi"; break;
            case "kar": $mime="audio/midi"; break;
            case "mpga": $mime="audio/mpeg"; break;
            case "mp2": $mime="audio/mpeg"; break;
            case "mp3": $mime="audio/mpeg"; break;
            case "mp4": $mime="video/mp4"; break;
            case "aif": $mime="audio/x-aiff"; break;
            case "aiff": $mime="audio/x-aiff"; break;
            case "aifc": $mime="audio/x-aiff"; break;
            case "m3u": $mime="audio/x-mpegurl"; break;
            case "ram": $mime="audio/x-pn-realaudio"; break;
            case "rm":  $mime="audio/x-pn-realaudio"; break;
            case "rpm": $mime="audio/x-pn-realaudio-plugin"; break;
            case "ra":  $mime="audio/x-realaudio"; break;
            case "wav": $mime="audio/x-wav"; break;
            case "pdb": $mime="chemical/x-pdb"; break;
            case "xyz": $mime="chemical/x-xyz"; break;
            case "bmp": $mime="image/bmp"; break;
            case "gif": $mime="image/gif"; break;
            case "ief": $mime="image/ief"; break;
            case "jpeg": $mime="image/jpeg"; break;
            case "jpg": $mime="image/jpeg"; break;
            case "jpe": $mime="image/jpeg"; break;
            case "png": $mime="image/png"; break;
            case "tiff": $mime="image/tiff"; break;
            case "tif": $mime="image/tiff"; break;
            case "wbmp": $mime="image/vnd.wap.wbmp"; break;
            case "ras": $mime="image/x-cmu-raster"; break;
            case "pnm": $mime="image/x-portable-anymap"; break;
            case "pbm": $mime="image/x-portable-bitmap"; break;
            case "pgm": $mime="image/x-portable-graymap"; break;
            case "ppm": $mime="image/x-portable-pixmap"; break;
            case "rgb": $mime="image/x-rgb"; break;
            case "xbm": $mime="image/x-xbitmap"; break;
            case "xpm": $mime="image/x-xpixmap"; break;
            case "xwd": $mime="image/x-xwindowdump"; break;
            case "msh": $mime="model/mesh"; break;
            case "mesh": $mime="model/mesh"; break;
            case "silo": $mime="model/mesh"; break;
            case "wrl": $mime="model/vrml"; break;
            case "vrml": $mime="model/vrml"; break;
            case "css": $mime="text/css"; break;
            case "asc": $mime="text/plain"; break;
            case "txt": $mime="text/plain"; break;
            case "gpg": $mime="text/plain"; break;
            case "rtx": $mime="text/richtext"; break;
            case "rtf": $mime="text/rtf"; break;
            case "wml": $mime="text/vnd.wap.wml"; break;
            case "wmls": $mime="text/vnd.wap.wmlscript"; break;
            case "etx": $mime="text/x-setext"; break;
            case "xsl": $mime="text/xml"; break;
            case "flv": $mime="video/x-flv"; break;
            case "mpeg": $mime="video/mpeg"; break;
            case "mpg": $mime="video/mpeg"; break;
            case "mpe": $mime="video/mpeg"; break;
            case "qt":  $mime="video/quicktime"; break;
            case "mov": $mime="video/quicktime"; break;
            case "mxu": $mime="video/vnd.mpegurl"; break;
            case "avi": $mime="video/x-msvideo"; break;
            case "movie": $mime="video/x-sgi-movie"; break;
            case "asf": $mime="video/x-ms-asf"; break;
            case "asx": $mime="video/x-ms-asf"; break;
            case "wm":  $mime="video/x-ms-wm"; break;
            case "wmv": $mime="video/x-ms-wmv"; break;
            case "wvx": $mime="video/x-ms-wvx"; break;
            case "ice": $mime="x-conference/x-cooltalk"; break;
            case "rar": $mime="application/x-rar"; break;
            default:    $mime="application/octet-stream"; break;
        }    
            $mime_type = $mime;
            
            //get file size
           $size = filesize($filename);
            
            // set download speed
            $transfer_speed = 20000000000;
    //downloadfile
    $content_params = JComponentHelper::getParams( 'com_joominaflileselling' );
    $filesize = $content_params->get( 'filesize' );
    function toNumber($val) {
    if (is_numeric($val)) {
        $int = (int)$val;
        $float = (float)$val;

        $val = ($int == $float) ? $int : $float;
        return $val;
    } else {
        trigger_error("Cannot cast $val to a number", E_USER_WARNING);
        return null;
    }
}
    $filesize = $filesize*1000000;
     $filesize = toNumber($filesize);
    
                if ($size < $filesize){
                    
             $download_class_file = JPATH_SITE.'/components/com_joominaflileselling/downloader.php';
                    if (file_exists($download_class_file)){
                         require_once ($download_class_file);
                         $object = new downloader;
                         $object->set_byfile($filename);              // Type: Download from a file
                         $object->set_filename($only_filename);       // Set the file basename
                         $object->set_filesize($size);                // Set the file basename
                         $object->set_mime($mime_type);               // Set the mime type
                         $object->set_speed($transfer_speed);         // Set download speed
                         $object->use_resume      = true;             // Set the value for using Resume Mode
                         $object->open_in_browser = $open_in_browser; // Set whether the file shall be opened in browser window
                         $object->use_autoexit    = true;             // Set the value for auto exit  ('false' worked not really with extern file?)
                     $session =& JFactory::getSession();   
                    $session->clear('id');
                    $session->clear('hash');
                    $session->clear('factornumber');
                    $object->download();                         // Run the download
                         exit;
                        } else {
                         $msg =JText::_('فایل یافت نشد').': '.$filename;
                               echo   $msg;       
                    }
                }
                
                if ($size > $filesize) {
                    jimport('joomla.filesystem.folder');
        $filefolder = JPATH_ROOT.'/'.'joominauploadtmp';
                    function creat($name,$file)
                            {
                            $fp = fopen($name,"w") or $error=1;
                            fputs($fp,$file);
                            fclose($fp) or $error=1;
                            if($error){$status= '0';}else{ $status= '1';}
                            return ($status);
                            }
                    if (!JFolder::exists($filefolder)){
                        
                          JFolder::create(JPATH_ROOT.'/'.'joominauploadtemp');
                          $insideindex = 'do not allow download file';
                            
                            creat(JPATH_ROOT.'/'.'joominauploadtemp/'.'index.html', $insideindex);    
                        };
                        
                    $destination = JPATH_SITE.'/joominauploadtemp/'. $hash.'.'.$mim;
                    if(!file_exists ( $destination  )){
                    copy( $filename ,$destination );
                    
                    }
                    $dest = JURI::base().'joominauploadtemp/'. $hash.'.'.$mim;
                    $session =& JFactory::getSession();
                    $session->clear('id');
                    $session->clear('hash');
                    $session->clear('factornumber');
                    ?>
                    <a id="link" href="<?php echo $dest?>">لینک دانلود</a>
                    <script type="text/javascript">
                    $(function(){
                    window.location.href = $('#link').attr('href');
                    });
                    </script>                
                    <?php }; ?>
                    <?php } //if direct link
                    else {
                        $dest = $file->directdownloadlink;
                        $session =& JFactory::getSession();
                        $session->clear('id');
                        $session->clear('hash');
                        $session->clear('factornumber');
                        ?>
                        
                        <a id="link" href="<?php echo $dest?>">لینک دانلود</a>
                    <script type="text/javascript">
                    $(function(){
                    window.location.href = $('#link').attr('href');
                    });
                    </script>                
                        
                        <?php }
            }//expiretime
            else { //else expiretime ?>
            <div class="emaillink">
            اعتبار لینک دانلود شما برای مدت <?php echo $config->downloaddate ?> روز از زمان خرید بوده است و خرید شما در تاریخ  <?php echo JHTML::_('date',$fileorder->date,"D d M Y")  ?> به انجام رسیده است . لذا دانلود این فایل دیگر برای شما مقدور نیست
            </div>
            <?php }?>
            
            
            <?php
            echo $config->downloaddate;
        } else {
                $payverify = 0;
        }
    
    
        
        
            
            
            
            
            
            

            
    
    //zarinpal was active
    if ($config->bank == '1') {
        
        require_once('lib/zarinpal/nusoap.php');
    
    $MerchantID = $config->zarinpalid;
    $Amount = $price; //Amount will be based on Toman
    $Authority = $_GET['Authority'];
    
    if($_GET['Status'] == 'OK'){
        // URL also Can be https://ir.zarinpal.com/pg/services/WebGate/wsdl
        $client = new nusoap_client('https://de.zarinpal.com/pg/services/WebGate/wsdl', 'wsdl');
        $client->soap_defencoding = 'UTF-8';
        $result = $client->call('PaymentVerification', array(
                                                            array(
                                                                    'MerchantID'     => $MerchantID,
                                                                    'Authority'      => $Authority,
                                                                    'Amount'          => $Amount
                                                                )
                                                            )
        );
        
        if($result['Status'] == 100){?>
        <div class="successfullpay">
            <h2>کاربر گرامی ، خرید شما با موفقیت انجام شد </h2>
           <div class="refrenceidjoomina">
            <p>شماره تراکنش شما  <?php echo $result['RefID'] ; $shomareerja= $result['RefID']; ?> میباشد</p>
            </div>
            <div class="joominafactornumber">
            <p>شماره فاکتور شما <?php echo $factornumber ?> میباشد</p>
                </div>
            <p style="padding-right:10px">لطفا در نگه داری شماره فاکتور خود دقت فرمایید</p>
            <?php if($config->emaillink == '1'){?>
            <p style="background:#FFF ; padding:10 0"> همچنین لینک دانلود و شماره فاکتور برای شما ایمیل شد </p>
            <?php } ?>
             <p>در صورتی که در حال دانلود فایل هایی هستید که مرورگر ان ها را باز میکند همانند فایل های تصویری میتوانید از ادرس بار بالا لینک مستیقیم فایل را کپی نموده و در دانلود منیجر قرار دهید</p>
            </div>
             <div class="emaillink">
           <p style="text-align:center">مدت اعتبار لینک دانلود شما به مدت <?php echo $config->downloaddate ?> روز میباشد<p>
            </div>            
            <?php
            $payverify = 1;
        } else {
            echo 'تراکنش با شکست روبرو شد  کد خطا:'. $result['Status'];
            
            $payverify = 0;
        }

    } else {
        echo 'عملیات پرداخت توسط شما لغو شده است';
        $payverify = 0;
    }
    
        
         }
    //payline was actice
    if ($config->bank == '2') {
        
$api = $config->paylineapi;
$Amount = $price*10;
$Amount = intval($Amount);
$trans_id = $_POST['trans_id'];
$id_get = $_POST['id_get'];
$url = 'http://payline.ir/payment/gateway-result-second';
//////////////////////////////////////////
     function get($url,$api,$trans_id,$id_get){
        $ch = curl_init();
        curl_setopt($ch,CURLOPT_URL,$url);
        curl_setopt($ch,CURLOPT_POSTFIELDS,"api=$api&id_get=$id_get&trans_id=$trans_id");
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
        curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
        $res = curl_exec($ch);
        curl_close($ch);
        return $res;
    }

        
            $result = get($url,$api,$trans_id,$id_get);
           
           // check payline verify
             /// if successfull
           if ($result == '1'){
               $payverify = 1;
               ?>
                <div class="successfullpay">
            <h2>کاربر گرامی ، خرید شما با موفقیت انجام شد </h2>
           <div class="refrenceidjoomina">
            <p>شماره تراکنش شما  <?php echo $trans_id ; $shomareerja= $trans_id; ?> میباشد</p>
            </div>
            <div class="joominafactornumber">
            <p>شماره فاکتور شما <?php echo $factornumber ?> میباشد</p>
                </div>
            <p style="padding-right:10px">لطفا در نگه داری شماره فاکتور خود دقت فرمایید</p>
            <?php if($config->emaillink == '1'){?>
            
            
            <p style="background:#FFF ; padding:10 0"> همچنین لینک دانلود و شماره فاکتور برای شما ایمیل شد </p>
            <?php } ?>
             <p>در صورتی که در حال دانلود فایل هایی هستید که مرورگر ان ها را باز میکند همانند فایل های تصویری میتوانید از ادرس بار بالا لینک مستیقیم فایل را کپی نموده و در دانلود منیجر قرار دهید</p>
            </div>
             <div class="emaillink">
           <p style="text-align:center">مدت اعتبار لینک دانلود شما به مدت <?php echo $config->downloaddate ?> روز میباشد<p>
            </div>        
               <?php
               }
        if ($result == '-1'){$payverify = 0; echo 'api ارسالی با درگاه پی لاین سازگار نیست';}
         if ($result == '-2'){$payverify = 0; echo 'trans_id  رسالی معتبر نیست';}
          if ($result == '-3'){$payverify = 0;echo 'id_get  رسالی معتبر نیست';}
           if ($result == '-4'){$payverify = 0;echo 'چنین تراکنشی در سیستم وجود ندارد و یا موفقیت آمیز نیوده است';}
        
         }//if payline was active
    //mellat bank was active
    if ($config->bank == '3') {
    
    include_once('lib/mellat/nusoap.php');
    $client = new nusoap_client('https://bpm.shaparak.ir/pgwchannel/services/pgw?wsdl');
    $namespace='http://interfaces.core.sw.bps.com/';
    $res = $_POST[ResCode];
    $tar= $_POST['SaleReferenceId'];
    //start verify
    if ($res == '0') {

    ///////VERIFY METHOD
           $terminalId = $config->mellatpayaneh;;
        $userName = $config->mellatusername;
        $userPassword =  $config->mellatpass;
        $orderId = $_POST['SaleOrderId'];
        $verifySaleOrderId = $_POST['SaleOrderId'];
        $verifySaleReferenceId = $_POST['SaleReferenceId'];
        // Check for an error
        $err = $client->getError();
        if ($err) {
            echo '<h2>Constructor error</h2><pre>' . $err . '</pre>';
            //die();
        }
            
        $parameters = array(
            'terminalId' => $terminalId,
            'userName' => $userName,
            'userPassword' => $userPassword,
            'orderId' => $orderId,
            'saleOrderId' => $verifySaleOrderId,
            'saleReferenceId' => $verifySaleReferenceId);

        // Call the SOAP method
        $result = $client->call('bpVerifyRequest', $parameters, $namespace);

                // Check for a fault
        if ($client->fault) {
            echo '<h2>Fault</h2><pre>';
            print_r($result);
            echo '</pre>';
            //die();
        }
        else {
        $resultStr = $result;
            
            $err = $client->getError();
            if ($err) {
                // Display the error
                echo '<h2>Error</h2><pre>' . $err . '</pre>';
                ///die();
            }
            else {
                // Display the result
                // Update Table, Save Verify Status
                // Note: Successful Verify means complete successful sale was done.
                
            }// end Display the result
        }// end Check for errors

        ////////END OF VERYFY
        ///SETTELE START
    
    

        $terminalId = $config->mellatpayaneh;;
        $userName = $config->mellatusername;
        $userPassword =  $config->mellatpass;
        $orderId =  $_POST['SaleOrderId'];
        $settleSaleOrderId =  $_POST['SaleOrderId'];
        $settleSaleReferenceId =  $_POST['SaleReferenceId'];

        // Check for an error
        $err = $client->getError();
        if ($err) {
            echo '<h2>Constructor error</h2><pre>' . $err . '</pre>';
            //die();
        }
            
        $parameters = array(
            'terminalId' => $terminalId,
            'userName' => $userName,
            'userPassword' => $userPassword,
            'orderId' => $orderId,
            'saleOrderId' => $settleSaleOrderId,
            'saleReferenceId' => $settleSaleReferenceId);

        // Call the SOAP method
        $result = $client->call('bpSettleRequest', $parameters, $namespace);

        // Check for a fault
        if ($client->fault) {
            echo '<h2>Fault</h2><pre>';
            print_r($result);
            echo '</pre>';
            $payverify = 0;
            //die();
        }
        else {
            $resultStr = $result;
            
            $err = $client->getError();
            if ($err) {
                // Display the error
                echo '<h2>Error</h2><pre>' . $err . '</pre>';
                $payverify = 0;
                //die();
            }
            else {
                // Update Table, Save Settle Status
                // Note: Successful Settle means that sale is settled.
                
                 $payverify = 1;
                 $price=($price/10);?>
                     <h2>کاربر گرامی ، خرید شما با موفقیت انجام شد </h2>
           <div class="refrenceidjoomina">
            <p>شماره تراکنش شما  <?php echo $settleSaleReferenceId ; $shomareerja= $settleSaleReferenceId; ?> میباشد</p>
            </div>
            <div class="joominafactornumber">
            <p>شماره فاکتور شما <?php echo $factornumber ?> میباشد</p>
                </div>
            <p style="padding-right:10px">لطفا در نگه داری شماره فاکتور خود دقت فرمایید</p>
            <?php if($config->emaillink == '1'){?>
            
            
            <p style="background:#FFF ; padding:10 0"> همچنین لینک دانلود و شماره فاکتور برای شما ایمیل شد </p>
            <?php } ?>
            <p>در صورتی که در حال دانلود فایل هایی هستید که مرورگر ان ها را باز میکند همانند فایل های تصویری میتوانید از ادرس بار بالا لینک مستیقیم فایل را کپی نموده و در دانلود منیجر قرار دهید</p>
            </div>
             <div class="emaillink">
           <p style="text-align:center">مدت اعتبار لینک دانلود شما به مدت <?php echo $config->downloaddate ?> روز میباشد<p>
            </div><?php            
                
            }// end Display the result
        }// end Check for errors
    

        
    }
    
    }//mellat was active
    
             // end of else file free
    

            //zarinpal was active
    if ($config->bank == '6') {

         $db = JFactory::getDBO();

         $query = "SELECT * FROM `#__joominaflileselling` WHERE `id`='". $id ."' ";

        $db->setQuery($query);

        $trans = $db->loadObject();
        
        
        
        if (($trans->disount > '0') and ($config->alldiscount == '0')){
            $Amount = ($trans->price) - ($trans->disount) ; }else {
                 $dicsountall = $config->alldiscount;
                      $dicsountall =  ($trans->price)*$dicsountall;
                      $dicsountall = $dicsountall/100;
                     $Amount = ($trans->price)-($dicsountall);}
                 $Amount=$Amount*10;
        
        
        
        
        
        $amount = $Amount;
              if ($_POST['RESCODE'] == '00') {

               require_once('lib/mabnacard/nusoap.php');

        $client = new nusoap_client("https://mabna.shaparak.ir/TransactionReference/TransactionReference?wsdl", 'wsdl');

        $params = JComponentHelper::getParams('com_joominaflileselling');

    $__CRN = !empty($_POST['CRN']) ? $_POST['CRN'] : '';

   $__MID = trim($params->get('mid'));

    $terminal = trim($params->get('tid'));
     $pub_key = '
-----BEGIN PUBLIC KEY-----
' . trim($params->get('publickey')) . '
-----END PUBLIC KEY-----';

        $key_resource = openssl_get_publickey($pub_key);

    

        openssl_public_encrypt($_POST["TRN"], $crypttext, $key_resource);

        $TRN = base64_encode($crypttext);

 

        openssl_public_encrypt($__CRN, $crypttext, $key_resource);

        $CRN = base64_encode($crypttext);

 

        openssl_public_encrypt($__MID, $crypttext, $key_resource);

        $MID = base64_encode($crypttext);

 

        $source = $__MID . $_POST["TRN"] . $__CRN;


      $key = trim($params->get('privatekey'));
    
        if (strpos($key, '-----BEGIN PRIVATE KEY-----') === false)
            $key = "-----BEGIN PRIVATE KEY-----\n" . $key;
        if (strpos($key, '-----END PRIVATE KEY-----') === false)
            $key .= "\n-----END PRIVATE KEY-----";
        $priv_key = openssl_pkey_get_private($key);

        $signature = '';

        openssl_sign($source, $signature, $priv_key, OPENSSL_ALGO_SHA1);

 

        $inputArray = array(

            "SaleConf_req" => array(

                "MID" => $MID,

                "CRN" => $CRN,

                "TRN" => $TRN,

                "SIGNATURE" => base64_encode($signature)

            )

        );


        $WSResult = $client->call("sendConfirmation", $inputArray);
        
        $error = $client->getError();

        $ret = var_export($WSResult,true);

        $signature = base64_decode($WSResult["return"]["SIGNATURE"]);

        $data      = $WSResult["return"]["RESCODE"].$WSResult["return"]["REPETETIVE"].$WSResult["return"]["AMOUNT"].$WSResult["return"]["DATE"].$WSResult["return"]["TIME"].$WSResult["return"]["TRN"].$WSResult["return"]["STAN"];

        $ok = openssl_verify($data, $signature, $key_resource);
        if ($ok == 1)

        {

            if (($WSResult['return']['RESCODE'] == '00') && ($WSResult['return']['successful'] == true))

            {

                if (floatval($WSResult["return"]["AMOUNT"]) == floatval($amount))

                {
                        $html = '<div class="successpay">
                            <h3>پرداخت شما با موفقیت انجام شد .</h3>
                            <p>شماره تراکنش پرداخت شما : <span class="btn btn-success">'. $WSResult['return']['TRN'].'</span></p>
                            <p>شماره کد رهگیری در سایت : <span class="btn btn-info">'.$factornumber.'</span></p>
                            <p>لطفا در حفظ و نگه داری اطلاعات این صفحه دقت بفرمایید</p>
                        </div>';

                        echo $html;
                        $payverify = '1';
                }

            } else

            {

            echo    $msg = '<font color="red" ><b>پرداخت ناموفق</b></font><br/> <br/>';

                ;

            }

        }else

        {

        echo    $msg = '<font color="red" ><b>پرداخت ناموفق</b></font><br/>خطا در وریفای اطلاعات  <br/>';

        

        }

    } elseif ($_POST['RESCODE']=='200')

    {

        $ret = var_export($_POST,true);

       echo $msg = "پرداخت موفق آمیز نبود ، خطای 200";

        echo '<br/>'."کاربر از پرداخت انصراف داد" ;

    

    }

    }
    
    
        //if payverify was successfull -> go
    if ($payverify == '1') {
        //store if data base
        
        $db = JFactory::getDBO();
                $query = "INSERT INTO `#__joominafileseldownload` (`id`, `fileid`, `date`, `factornumber`, `downloadnomber`, `hashcode`, `email`, `price`) VALUES (NULL, '". $id ."', '".$date ."', '". $factornumber ."', '" . $shomareerja ."', '". $hash. "', '." . $useremail  ."', '" . $price. "') ";
                $db->setQuery($query);
                $result = $db->query();
    
            ////if user ////
            $user = JFactory::getUser();
                if (!$user->guest) {
            $db = JFactory::getDBO();
                $query = "INSERT INTO `#__joominafileseldownloaduser` (`id`, `fileid`, `date`, `factornumber`, `downloadnomber`, `hashcode`, `email`, `price` , `userid`) VALUES (NULL, '". $id ."', '".$date ."', '". $factornumber ."', '" . $shomareerja ."', '". $hash. "', '." . $useremail  ."', '" . $price. "','".$user->id."') ";
                $db->setQuery($query);
                $result = $db->query();
            
            
         }
            /// end of if user ////
            //sending email
            if($config->emaillink == '1'){
                $mailer = JFactory::getMailer();
                    $actionform =JURI::root().'?option=com_joominaflileselling&view=factor&factor='.$factornumber;
                    $body = "<div style='text-align:ritgh; direction:rtl; font-family:tahoma;line-height:23px;
    font-size:12px'>کاربر محترم <br />ضمن تشکر از خرید شما، </br>  فایل خریداری شده،".$file->name." میباشد <br>"." همچنین شماره فاکتور شما عبارت است از  :  <b>". $factornumber . "</b> <br /> لطفا در حفظ و نگهداری این شماره فاکتور دقت بفرمایید" . "<br/> مدت اعتبار لینک دانلود شما <b>"
                     . $config->downloaddate. "</b> روز میباشد".
                            "<br /><br /><br /><a target='_blank' href='$actionform' style='background: #d93434;
                                          background-image: -webkit-linear-gradient(top, #d93434, #b82b2b);
                                          background-image: -moz-linear-gradient(top, #d93434, #b82b2b);
                                          background-image: -ms-linear-gradient(top, #d93434, #b82b2b);
                                          background-image: -o-linear-gradient(top, #d93434, #b82b2b);
                                          background-image: linear-gradient(to bottom, #d93434, #b82b2b);
                                          -webkit-border-radius: 4;
                                          -moz-border-radius: 4;
                                          border-radius: 4px;
                                          font-family: tahoma;
                                          color: #ffffff;
                                          font-size: 14px;
                                          padding: 10px 20px 10px 20px;
                                          text-decoration: none;
                                          font-weight:normal'>دانلود فایل</a><br />
                                        <div style='font-size:10px'>اجرا شده بوسیله <a href='http://Pnegah.ir' target='_blank'>پویا نگاه</a></div> </div>
";
                    $to = $useremail;
                    $configsite = JFactory::getConfig();
                   
                    $sitename= $configsite->get( 'sitename' );
                    $mailfrom = $configsite->get( 'mailfrom' );
                    $fromname  = $configsite->get( 'fromname' );
                    $mailer->setSender($mailfrom,$fromname);
                    $subject =$sitename .' - '.  'فایل خریداری شده '. $file->name ;
                    # Invoke JMail Class
                    # Add a recipient -- this can be a single address (string) or an array of addresses
                    
                    $mailer->addRecipient($to);
                    $mailer->setSubject($subject);
                    $mailer->setBody($body);
                    # If you would like to send as HTML, include this line; otherwise, leave it out
                    $mailer->isHTML(true);
                    # Send once you have set all of your options
                    $mailer->send();
                    
                }
        
        
        // make download botton
        $urlgo = JURI::base().'?option=com_joominaflileselling&view=download';
        $session = & JFactory::getSession();
        $session->clear('price');
        $session->clear('id');
        $session->clear('useremail');
        $session->set( 'id', $id );
        $session->set( 'hash', $hash );
        $session->set( 'factornumber', $factornumber );
        
        ?>
        <form method="post" action="<?php echo $urlgo ?>">
        <input name="submitemail" class="joominapaybottom" type="submit" value="دانلود فایل" />
        </form>
       <?php }
       if ($payverify != '1') {
        
        $db = JFactory::getDBO();
                $query = "INSERT INTO `#__joominafileseldownload` (`id`, `fileid`, `date`, `factornumber`, `downloadnomber`, `hashcode`, `email`, `price`) VALUES (NULL, '". $id ."', '".$date ."', '". $factornumber ."', 'ناموفق', '". $hash. "', '." . $useremail  ."', '" . $price. "') ";
                $db->setQuery($query);
                $result = $db->query(); }
        }
        
        
        
        
        
        
        ?>

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

سلام / ممنون / ولی یه مشکل به مشکل قبلی اضافه شد / وقتی ایمیل و وارد می کنی و رو دانلود کلیک می کنی این ارورو میده / عکس ارور پیوست می باشدjoomina.jpg

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

ممنون / این کدی که شما لطف کردید فرستادید دستکاری شده است یه نفر اومد کدو دستکاری کرده که زمانی رو لینک دانلود کلیک میشه همزمان با اون سایت طرف باز بشه / همین دستکاری ها فکر کنم کارو خراب کرده/ کد اصلی رو اگر دارید لطف کنید برام بفرستید. ممنون

به اشتراک گذاری این ارسال


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

به گفتگو بپیوندید

هم اکنون می توانید ارسال داشته باشید و بعد ثبت نام خود را در سایت کامل نمایید. اگر حساب کاربری در سایت دارید، جهت ارسال با حساب کاربری خود هم اکنون وارد سایت شوید

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.


×
×
  • افزودن...