shervin_20
جمعه 02 اسفند 1392, 19:27 عصر
سلام دوستان . خدا قوت .
ما برای یک سیستم قسمت محاسبه و پرداخت توسط پی لاین اماده سازی کردیم .
متاسفانه قسمت محاسبه هزینه درست محاسبه نمی کند و قسمت پرداخت از کار افتاده است .
توضیحات قسمت محاسبه :
قیمت آگهی اشتباه محاسبه می شود:قیمت 1ماه یا 1 ستاره به ترتیب از خانه m1 وs1 در قیمت ماه و قیمت ستاره تعیین می شودکه قیمت هر ماه 10 و قیمت هر ستاره هم10 در نظر گرفته شده.
اما در قسمت فیلد ها اگر مثلا هر ستاره را مقدار 1 بدهیم یعنی 1 تا 7 و هر ماه را نیز عدد1 یعنی 1 برای 1 ماه و2 برای 2 ماه و... 12برای 12 ماه.
روند محاسبه قیمت کنونی:[(s1*10)+10] *تعداد ماه :(1*10)+10 که حاصل=20 و20*1ماه=20 که این درست است اما 2 ماه و یک ستاره باید بشود30 که می شود:(10*1=10)+10=20 که حاصل در 2 ماه ضرب می شود:40 که اشتباه است و3 ماه
و...همینطور
محاسبه قیمت باید به این گونه باشد:[قیمت یک ستاره*تعداد ستاره]+[قیمت یک ماه *تعداد ماه] البته یک اشکال نیز این نحوه محاسبه دارد و زمانی است که مثلا بخواهید قیمت تعداد هر ماه یا تعداد هر ستاره ثابت نباشد یعنی هر ماه مثلا 10 ریال نباشد بخواهید برای تشویق مشتری قیمت 5 ماه اول یا 5 ستاره اول مثلا هر ماه یا ستاره 10 ریال باشد اما ستاره یا ماه ششم 5 ریال شود که برای رفع این ایراد و کامل تر شدن نحوه محاسبه بهتر است برای هر ماه و هر ستاره بتوان در یک ستون مشخص قیمت دلخواه تعیین نمود.یعنی همه از s1 و m1 محاسبه نشوند.
کد های مربوط به فایل controller.php را در زیر درج میکنم .
<?php
/**
defined('_JEXEC') or die( 'Restricted access' );
jimport('joomla.application.component.controller') ;
jimport( 'joomla.filesystem.file' );
//error_reporting(E_ALL);
ini_set("display_startup_errors","0");
ini_set("display_errors","0");
JTable::addIncludePath(JPATH_ADMINISTRATOR.DS.'com ponents'.DS.'com_adsmanager'.DS.'tables');
/**
* Content Component Controller
{ var $data;
function display($cachable = false, $urlparams = false)
{
$app = JFactory::getApplication();
$document = JFactory::getDocument();
$user = JFactory::getUser();
);
}
else
{
$view = $this->getView("edit",'html');
$view->setModel( $contentmodel, true );
$view->setModel( $catmodel );
$view->setModel( $configurationmodel );
$view->setModel( $fieldmodel );
$view->setModel( $usermodel );
$uri = JFactory::getURI();
$baseurl = JURI::base();
$view->assign("baseurl",$baseurl);
$view->assignRef("baseurl",$baseurl);
$view->display();
}
}
$path = JPATH_ADMINISTRATOR.'/../libraries/joomla/database/table';
JTable::addIncludePath($path);
$monthprice= $conf->m1;
$s1=$conf->s1;
$s2=$conf->s2;
$s3=$conf->s3;
$s4=$conf->s4;
$s5=$conf->s5;
$s6=$conf->s6;
$s7=$conf->s7;
$s8=$conf->s8;
$s9=$conf->s9;
$s10=$conf->s10;
echo "<div class='abcx'></div>";
?>
<script type='text/javascript'>
var s1=<?php echo $s1 ?>;
var s2=<?php echo $s2 ?>;
var s3=<?php echo $s3 ?>;
var s4=<?php echo $s4 ?>;
var s5=<?php echo $s5 ?>;
var s6=<?php echo $s6 ?>;
var s7=<?php echo $s7 ?>;
var s8=<?php echo $s8 ?>;
var s9=<?php echo $s9 ?>;
var s10=<?php echo $s10 ?>;
var j = jQuery.noConflict();
j(document).ready(function () {
j("#ad_star,#ad_price").live({
change: function() {
if(j('#ad_star').val()==1)
var star=s1;
if(j('#ad_star').val()==2)
var star=s2;
if(j('#ad_star').val()==3)
var star=s3;
if(j('#ad_star').val()==4)
var star=s4;
if(j('#ad_star').val()==5)
var star=s5;
if(j('#ad_star').val()==6)
var star=s6;
if(j('#ad_star').val()==7)
var star=s7;
if(j('#ad_star').val()==8)
var star=s8;
if(j('#ad_star').val()==9)
var star=s9;
if(j('#ad_star').val()==10)
var star=s10;
var price=(star+<?php echo $monthprice; ?>)*j('#ad_price').val();
j('.abcx').replaceWith('<div class="abcx">هزینه (ریال) :'+price+'</div>');
}
})
j('#f4 input').attr('name','f4');
});
</script>
<?php
}
/**
* Saves the content item an edit form submit
*
* @todo
*/
function save()
{
$app = JFactory::getApplication();
// Check for request forgeries
//JRequest::checkToken() or jexit( 'invalid token' );
JRequest::checkToken() or JFactory::getApplication()->redirect('index.php?option=com_users&view=login','مشکلی در ارسال آګهی پیش آمده است یا هنوز وارد سایت نشده اید');
$user = JFactory::getUser();
$content = JTable::getInstance('contents', 'AdsmanagerTable');
$this->addModelPath(JPATH_ADMINISTRATOR.DS.'components'.D S.'com_adsmanager'.DS.'models');
$configurationmodel =$this->getModel( "configuration" );
$contentmodel =$this->getModel( "content" );
$usermodel =$this->getModel( "user" );
$fieldmodel =$this->getModel("field");
$conf = $configurationmodel->getConfiguration();
$plugins = $fieldmodel->getPlugins();
$id = JRequest::getInt( 'id', 0 );
// New or Update
if ($id != 0) {
$content->load($id);
if (($content == null)||($content->userid != $user->id)) {
$app->redirect( TRoute::_('index.php?option=com_adsmanager&view=list'), "" );
}
$isUpdateMode = 1;
$redirect_text = JText::_('ADSMANAGER_AD_UPDATED');
} else {
$isUpdateMode = 0;
if ($conf->auto_publish == 0)
$redirect_text = JText::_('ADSMANAGER_INSERT_SUCCESSFULL_CONFIRM');
else
$redirect_text = JText::_('ADSMANAGER_INSERT_SUCCESSFULL_PUBLISH');
}
//Check Max Ads by User
if (($id == 0)&&($user->id != "0")&&($conf->nb_ads_by_user != -1))
{
$nb = $contentmodel->getNbContentsOfUser($user->id);
if ($nb >= $conf->nb_ads_by_user)
{
$redirect_text = sprintf(JText::_('ADSMANAGER_MAX_NUM_ADS_REACHED') ,$conf->nb_ads_by_user);
$app->redirect(TRoute::_('index.php?option=com_adsmanage r&view=list'), $redirect_text );
}
}
$current = clone $content;
$content->bindContent(JRequest::get( 'post' ),JRequest::get( 'files' ),
$conf,$this->getModel("adsmanager"),$plugins);
if (function_exists('bindPaidSystemContent')) {
bindPaidSystemContent($content,
JRequest::get( 'post' ),JRequest::get( 'files' ),
$conf,$this->getModel("adsmanager"));
}
$content->current = $current;
$errors = $content->getErrors();
if (count($errors) > 0) {
$this->reloadForm($content);
}
if ($conf->metadata_mode == 'backendonly') {
$content->metadata_description = JRequest::getVar('ad_text', '');
$content->metadata_keywords = str_replace(" ",",",JRequest::getVar('ad_headline', ''));
}
$errorMsg = null;
$dispatcher = JDispatcher::getInstance();
JPluginHelper::importPlugin('adsmanagercontent');
try {
$results = $dispatcher->trigger('ADSonContentBeforeSave', array ());
} catch(Exception $e) {
$errorMsg = $e->getMessage();
$this->reloadForm($content,$errorMsg);
}
//Creation of account if needed
if (($conf->submission_type == 0)&&($user->id == 0))
//Valid account or visitor are allowed to post
if (($user->id != 0)||($conf->submission_type == 2))
{
$content->userid = $user->id;
} else {
//trying to save ad, without being registered
return;
}
if (function_exists("getPaidSystemMode"))
$mode = getPaidSystemMode();
else
$mode = "nopaidsystem";
$total = 0;
switch($mode) {
case "credits":
computeCost($total,$items,$content,$conf,$isUpdate Mode);
if ($total == 0) {
$content->save();
} else if (checkCredits($total,$user->id) == true) {
//generateBill($content,$total,$items,$mode,"ok");
removeCredits($user->id,$total);
$content->save();
} else {
$errorMsg= JText::_('PAIDSYSTEM_NOT_ENOUGH_CREDITS');
$this->reloadForm($content,$errorMsg);
}
break;
case "payperad":
$adid = $content->savePending();
computeCost($total,$items,$content,$conf,$isUpdate Mode);
if ($total == 0) {
$content->save();
} else {
generateBill($content,$total,$items,$mode,"pending",$adid);
}
break;
case "nopaidsystem":
$_SESSION['adsid']=$content->save();
break;
}
if (($mode == "payperad" )&&($total > 0)&&($isUpdateMode ==0)) {
if (@$conf->preview == 1)
$app->redirect( 'index.php?option=com_adsmanager&view=preview&id='.$adid, "" );
else
$app->redirect( 'index.php?option=com_paidsystem&view=payment', "" );
} else if ((@$conf->preview == 1)&&(JRequest::getInt('pending',0) == 1)) {
$app->redirect( 'index.php?option=com_adsmanager&view=preview&id='.$adid, "" );
} else if (($mode == "payperad" )&&($total > 0)&&($isUpdateMode == 1)) {
$app->redirect( 'index.php?option=com_paidsystem&view=payment', "" );
} else {
$cache = & JFactory::getCache('com_adsmanager');
$cache->clean();
if ($isUpdateMode == 0) {
if (($conf->send_email_on_new_to_user == 1)&&($conf->auto_publish == 1)) {
$contentmodel->sendMailToUser($conf->new_subject,$conf->new_text,$user,$content,$conf);
} else if (($conf->send_email_on_validation_to_user == 1)&&($conf->auto_publish == 0)) {
$contentmodel->sendMailToUser($conf->waiting_validation_subject,$conf->waiting_validation_text,$user,$content,$conf);
}
if ($conf->send_email_on_new == 1) {
$contentmodel->sendMailToAdmin($conf->admin_new_subject,$conf->admin_new_text,$user,$content,$conf);
}
} else {
if ($conf->send_email_on_update_to_user == 1) {
$contentmodel->sendMailToUser($conf->update_subject,$conf->update_text,$user,$content,$conf);
}
if ($conf->send_email_on_update == 1) {
$contentmodel->sendMailToAdmin($conf->admin_update_subject,$conf->admin_update_text,$user,$content,$conf);
}
}
JPluginHelper::importPlugin('adsmanagercontent');
try {
$results = $dispatcher->trigger('ADSonContentAfterSave', array ($content,$isUpdateMode,$conf));
} catch(Exception $e) {
$errorMsg = $e->getMessage();
}
//Redirect
if ($conf->submission_type == 2)
$app->redirect( TRoute::_('index.php?option=com_adsmanager&view=list'), $redirect_text );
else if (COMMUNITY_BUILDER_ADSTAB == 1)
$app->redirect( TRoute::_('index.php?option=com_comprofiler&task=userProfile&tab=AdsManagerTab'), $redirect_text );
else {
$s='s'.$_POST['ad_star'];
$m='m1';//.$_POST['ad_price'];
$amount=($conf->$s + $conf->$m) * $_POST['ad_price'];
$_SESSION['apikey']=$apikey=$conf->apikey;
$redirect_url=urlencode('http://******.com/index.php?option=com_adsmanager&task=payline&sid='.$_SESSION['adsid']);
$url='http://payline.ir/payment/gateway-send';
if(!$this->updateprice($_SESSION['adsid'],$amount))
{
$return_data= $this->sendtopayline($url,$apikey,$amount,$redirect_url);
if($return_data > 0)
$app->redirect( 'http://payline.ir/payment/gateway-'.$return_data);
elseif($return_data== -4)
{
echo "چنین تراکنشی در سیستم وجود ندارد یا تراکنش با موفقیت انجام نشده است";
}
elseif($return_data== -3)
{
echo "id_get ارسالی معتبر نمی باشد";
}
elseif($return_data== -2)
{
echo "trans_id ارسالی معتبر نمی باشد";
}
elseif($return_data== -1)
{
echo "API KEY ارسالی به درګاه صحیح نمی باشد";
}
else
{
echo "خطای نامشخص";
}
}
else
{
echo "مشکلی در سفارش رخ داده است";
}
//$app->redirect( TRoute::_('index.php?option=com_adsmanager&view=myads'), $redirect_text );
}
}
}
function valid() {
$app = JFactory::getApplication();
$id = JRequest::getInt('id', 0);
$user = JFactory::getUser();
$db =JFactory::getDBO();
$db->setQuery("SELECT id FROM #__paidsystem_orders WHERE userid=".$user->id." AND pending_id = ".$id." AND state='pending' ORDER BY id DESC");
$orderid = $db->loadResult();
$app->redirect( 'index.php?option=com_paidsystem&view=payment&orderid='.$orderid, "" );
}
function delete()
{
$app = JFactory::getApplication();
$user = JFactory::getUser();
$this->addModelPath(JPATH_ADMINISTRATOR.DS.'components'.D S.'com_adsmanager'.DS.'models');
$configurationmodel =$this->getModel( "configuration" );
$fieldmodel =$this->getModel( "field" );
$content = JTable::getInstance('contents', 'AdsmanagerTable');
$id = JRequest::getInt('id', 0);
if ($id == 0) {
$app->redirect( TRoute::_('index.php?option=com_adsmanager&view=list'), "" );
}
$content->load($id);
if (($content == null)||($content->userid != $user->id))
$app->redirect( TRoute::_('index.php?option=com_adsmanager&view=list'), "" );
$conf = $configurationmodel->getConfiguration();
$plugins = $fieldmodel->getPlugins();
JPluginHelper::importPlugin('adsmanagercontent');
$dispatcher = JDispatcher::getInstance();
try {
$results = $dispatcher->trigger('ADSonContentBeforeDelete', array ($content,$conf));
} catch(Exception $e) {
$errorMsg = $e->getMessage();
}
$content->delete($id,$conf,$plugins);
JPluginHelper::importPlugin('adsmanagercontent');
try {
$results = $dispatcher->trigger('ADSonContentAfterDelete', array ($content,$conf));
} catch(Exception $e) {
$errorMsg = $e->getMessage();
}
$cache = JFactory::getCache( 'com_adsmanager');
$cache->clean();
if (COMMUNITY_BUILDER_ADSTAB == 1)
$app->redirect( TRoute::_('index.php?option=com_comprofiler&task=userProfile&tab=AdsManagerTab'), JText::_('ADSMANAGER_CONTENT_REMOVED') );
else
$app->redirect( TRoute::_('index.php?option=com_adsmanager&view=myads'), JText::_('ADSMANAGER_CONTENT_REMOVED') );
}
function sendmessage()
{
$app = JFactory::getApplication();
// Check for request forgeries
JRequest::checkToken() or jexit( 'Invalid Token' );
$contentid = JRequest::getInt( 'contentid',0 );
$this->addModelPath(JPATH_ADMINISTRATOR.DS.'components'.D S.'com_adsmanager'.DS.'models');
$contentmodel =$this->getModel( "content" );
$content = $contentmodel->getContent($contentid);
$dispatcher = JDispatcher::getInstance();
JPluginHelper::importPlugin('adsmanagercontent');
$dispatcher = JDispatcher::getInstance();
JPluginHelper::importPlugin('adsmanagercontent');
try {
$results = $dispatcher->trigger('ADSonMessageBeforeSend', array ());
} catch(Exception $e) {
$errorMsg = $e->getMessage();
$app->redirect( TRoute::_('index.php?option=com_adsmanager&view=message&contentid='.$contentid), $errorMsg );
}
if (isset($content))
{
$name = JRequest::getVar('name' , "" );
$email = JRequest::getVar('email', "" );
jimport('joomla.mail.helper');
if (!JMailHelper::isEmailAddress($email))
{
$this->setError(JText::_('INVALID_EMAIL_ADDRESS'));
$app->redirect( TRoute::_('index.php?option=com_adsmanager&view=details&catid='.$content->catid.'&id='.$contentid), 'INVALID_EMAIL_ADDRESS' );
}
$subject = JRequest::getVar('title', "" );
$body = JRequest::getVar('body' , "" );
$body = str_replace(array("\r\n", "\n", "\r"), "<br />", $body);
$file = JRequest::getVar( 'attach_file',null,'FILES');
if ($file['tmp_name'] != "")
{
$directory = ini_get('upload_tmp_dir')."";
if ($directory == "")
$directory = ini_get('session.save_path')."";
$filename = $directory."/".basename($file['name']);
rename($file['tmp_name'], $filename);
if (!JUtility::sendMail($email,$name,$content->email,$subject,$body,1,NULL,NULL,$filename))
{
$this->setError(JText::_('ADSMANAGER_ERROR_SENDING_MAIL') );
$app->redirect( TRoute::_('index.php?option=com_adsmanager&view=details&catid='.$content->catid.'&id='.$contentid), JText::_('ADSMANAGER_ERROR_SENDING_MAIL') );
}
$config =JFactory::getConfig();
$from = $config->getValue('mailfrom');
$fromname = $config->getValue('fromname');
$mailcontent = "Sender: $name - $email<br/>";
$mailcontent .= "Ad Owner: $content->email (userid={$content->userid})<br/>";
$mailcontent .= "Ad id: $content->id<br/>";
$mailcontent .= "Ad title: $content->ad_headline<br/>";
$mailcontent .= "Message: $body";
/*if (!JUtility::sendMail($from,$fromname,$from,$subjec t,$mailcontent,1,NULL,NULL,$filename))
{
$this->setError(JText::_('ADSMANAGER_ERROR_SENDING_MAIL') );
$app->redirect( TRoute::_('index.php?option=com_adsmanager&view=details&catid='.$content->catid.'&id='.$contentid), JText::_('ADSMANAGER_ERROR_SENDING_MAIL') );
}*/
}
else {
if (!JUtility::sendMail($email,$name,$content->email,$subject,$body,1))
{
$this->setError(JText::_('ADSMANAGER_ERROR_SENDING_MAIL') );
$app->redirect( TRoute::_('index.php?option=com_adsmanager&view=details&catid='.$content->catid.'&id='.$contentid), JText::_('ADSMANAGER_ERROR_SENDING_MAIL') );
}
$config =JFactory::getConfig();
$from = $config->getValue('mailfrom');
$fromname = $config->getValue('fromname');
$mailcontent = "Sender: $name - $email<br/>";
$mailcontent .= "Ad Owner: $content->email (userid={$content->userid})<br/>";
$mailcontent .= "Ad id: $content->id<br/>";
$mailcontent .= "Ad title: $content->ad_headline<br/>";
$mailcontent .= "Message: $body";
/* TODO option to activate or not
* if (!JUtility::sendMail($from,$fromname,$from,$subjec t,$body,1))
{
$this->setError(JText::_('ADSMANAGER_ERROR_SENDING_MAIL') );
$app->redirect( TRoute::_('index.php?option=com_adsmanager&view=details&catid='.$content->catid.'&id='.$contentid), JText::_('ADSMANAGER_ERROR_SENDING_MAIL') );
}*/
}
}
$app->redirect( TRoute::_('index.php?option=com_adsmanager&view=details&catid='.$content->catid.'&id='.$contentid), JText::_('ADSMANAGER_EMAIL_SENT') );
}
User();
$this->addModelPath(JPATH_ADMINISTRATOR.DS.'components'.D S.'com_adsmanager'.DS.'models');
$usermodel =$this->getModel( "user" );
$content = JFile::read($out);
$in = $content .$in ;
}
JFile::write($out,$in);
} else
die('{"jsonrpc" : "2.0", "error" : {"code": 103, "message": "Failed to move uploaded file."}, "id" : "id"}');
} else {
// Open temp file
$out = $targetDir . DIRECTORY_SEPARATOR . $fileName;
// Read binary input stream and append it to temp file
$in = fopen("php://input", "rb");
if ($chunk != 0) {
$content = JFile::read($out);
$in = $content.$in ;
}
JFile::write($out,$in);
}
// Return JSON-RPC response
die('{"jsonrpc" : "2.0", "result" : null, "id" : "id","tmpfile" : "'.$fileName.'"}');
}
function renew() {
$app = JFactory::getApplication();
$contentid = JRequest::getInt('id', 0);
$this->addModelPath(JPATH_ADMINISTRATOR.DS.'components'.D S.'com_adsmanager'.DS.'models');
$contentmodel =$this->getModel( "content" );
$confmodel =$this->getModel( "configuration" );
$conf = $confmodel->getConfiguration();
$c = $contentmodel->getContent($contentid,false);
if ($c == null)
exit();
$expiration_time = strtotime($c->expiration_date);
$current_time = time();
if (function_exists("renewPaidAd")) {
renewPaidAd($contentid);
}
else
{
if ($expiration_time - $current_time > ($conf->recall_time * 3600 *24)) {
$app->redirect(TRoute::_("index.php?option=com_adsmanager"),JText::_('ADSMANAGER_CONTENT_CANNOT_RESUBMIT'));
}
$contentmodel->renewContent($contentid,$conf->ad_duration);
}
$cache = JFactory::getCache( 'com_adsmanager');
$cache->clean();
if (COMMUNITY_BUILDER_ADSTAB == 1)
$app->redirect( TRoute::_('index.php?option=com_comprofiler&task=userProfile&tab=AdsManagerTab'), JText::_('ADSMANAGER_CONTENT_RESUBMIT') );
else
$app->redirect( TRoute::_('index.php?option=com_adsmanager&view=myads'), JText::_('ADSMANAGER_CONTENT_RESUBMIT') );
}
function sendtopayline($url,$api,$amount,$redirect)
{
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_POSTFIELDS,"api=$api&amount=$amount&redirect=$redirect");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
$res = curl_exec($ch);
curl_close($ch);
return $res;
}
function getfrompayline($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;
}
function payline($api)
{
$this->addModelPath(JPATH_ADMINISTRATOR.DS.'components'.D S.'com_adsmanager'.DS.'models');
$configurationmodel =$this->getModel( "configuration" );
$conf = $configurationmodel->getConfiguration();
$conf->apikey ;
$apikey=$conf->apikey;
$url = 'http://payline.ir/payment/gateway-result-second';
$trans_id=$_POST['trans_id'];
$id_get=$_POST['id_get'];
if($result=$this->getfrompayline($url,$apikey,$trans_id,$id_get)==1)
{
$this->updatepublish($trans_id,$id_get);
}
elseif($result== -4)
{
echo "چنین تراکنشی در سیستم وجود ندارد یا تراکنش با موفقیت انجام نشده است";
}
elseif($result== -3)
{
echo "id_get ارسالی معتبر نمی باشد";
}
elseif($result== -2)
{
echo "trans_id ارسالی معتبر نمی باشد";
}
elseif($result== -1)
{
echo "API KEY ارسالی به درګاه صحیح نمی باشد";
}
else
{ echo $result;
echo "خطای نامشخص";
}
}
فایل کامل ضمینه شد
قسمت $_SESSION['apikey']=$apikey=$conf->apikey;
$redirect_url=urlencode('http://******.com/index.php?option=com_adsmanager&task=payline&sid='.$_SESSION['adsid']);
$url='http://payline.ir/payment/gateway-send';
if(!$this->updateprice($_SESSION['adsid'],$amount))
{
$return_data= $this->sendtopayline($url,$apikey,$amount,$redirect_url);
if($return_data > 0)
$app->redirect( 'http://payline.ir/payment/gateway-'.$return_data);
elseif($return_data== -4)
مربوط به پرداخت میشه اما وقتی ذخیره را میزنی که بره برای پرداخت اصلا به پی لاین وصل نمیشه .
دوستان خواهشا برای محاسبه اش کمک کنید . چون محدودیت کاراکتر بود فایل را ضمینه کردم
تشکر
ما برای یک سیستم قسمت محاسبه و پرداخت توسط پی لاین اماده سازی کردیم .
متاسفانه قسمت محاسبه هزینه درست محاسبه نمی کند و قسمت پرداخت از کار افتاده است .
توضیحات قسمت محاسبه :
قیمت آگهی اشتباه محاسبه می شود:قیمت 1ماه یا 1 ستاره به ترتیب از خانه m1 وs1 در قیمت ماه و قیمت ستاره تعیین می شودکه قیمت هر ماه 10 و قیمت هر ستاره هم10 در نظر گرفته شده.
اما در قسمت فیلد ها اگر مثلا هر ستاره را مقدار 1 بدهیم یعنی 1 تا 7 و هر ماه را نیز عدد1 یعنی 1 برای 1 ماه و2 برای 2 ماه و... 12برای 12 ماه.
روند محاسبه قیمت کنونی:[(s1*10)+10] *تعداد ماه :(1*10)+10 که حاصل=20 و20*1ماه=20 که این درست است اما 2 ماه و یک ستاره باید بشود30 که می شود:(10*1=10)+10=20 که حاصل در 2 ماه ضرب می شود:40 که اشتباه است و3 ماه
و...همینطور
محاسبه قیمت باید به این گونه باشد:[قیمت یک ستاره*تعداد ستاره]+[قیمت یک ماه *تعداد ماه] البته یک اشکال نیز این نحوه محاسبه دارد و زمانی است که مثلا بخواهید قیمت تعداد هر ماه یا تعداد هر ستاره ثابت نباشد یعنی هر ماه مثلا 10 ریال نباشد بخواهید برای تشویق مشتری قیمت 5 ماه اول یا 5 ستاره اول مثلا هر ماه یا ستاره 10 ریال باشد اما ستاره یا ماه ششم 5 ریال شود که برای رفع این ایراد و کامل تر شدن نحوه محاسبه بهتر است برای هر ماه و هر ستاره بتوان در یک ستون مشخص قیمت دلخواه تعیین نمود.یعنی همه از s1 و m1 محاسبه نشوند.
کد های مربوط به فایل controller.php را در زیر درج میکنم .
<?php
/**
defined('_JEXEC') or die( 'Restricted access' );
jimport('joomla.application.component.controller') ;
jimport( 'joomla.filesystem.file' );
//error_reporting(E_ALL);
ini_set("display_startup_errors","0");
ini_set("display_errors","0");
JTable::addIncludePath(JPATH_ADMINISTRATOR.DS.'com ponents'.DS.'com_adsmanager'.DS.'tables');
/**
* Content Component Controller
{ var $data;
function display($cachable = false, $urlparams = false)
{
$app = JFactory::getApplication();
$document = JFactory::getDocument();
$user = JFactory::getUser();
);
}
else
{
$view = $this->getView("edit",'html');
$view->setModel( $contentmodel, true );
$view->setModel( $catmodel );
$view->setModel( $configurationmodel );
$view->setModel( $fieldmodel );
$view->setModel( $usermodel );
$uri = JFactory::getURI();
$baseurl = JURI::base();
$view->assign("baseurl",$baseurl);
$view->assignRef("baseurl",$baseurl);
$view->display();
}
}
$path = JPATH_ADMINISTRATOR.'/../libraries/joomla/database/table';
JTable::addIncludePath($path);
$monthprice= $conf->m1;
$s1=$conf->s1;
$s2=$conf->s2;
$s3=$conf->s3;
$s4=$conf->s4;
$s5=$conf->s5;
$s6=$conf->s6;
$s7=$conf->s7;
$s8=$conf->s8;
$s9=$conf->s9;
$s10=$conf->s10;
echo "<div class='abcx'></div>";
?>
<script type='text/javascript'>
var s1=<?php echo $s1 ?>;
var s2=<?php echo $s2 ?>;
var s3=<?php echo $s3 ?>;
var s4=<?php echo $s4 ?>;
var s5=<?php echo $s5 ?>;
var s6=<?php echo $s6 ?>;
var s7=<?php echo $s7 ?>;
var s8=<?php echo $s8 ?>;
var s9=<?php echo $s9 ?>;
var s10=<?php echo $s10 ?>;
var j = jQuery.noConflict();
j(document).ready(function () {
j("#ad_star,#ad_price").live({
change: function() {
if(j('#ad_star').val()==1)
var star=s1;
if(j('#ad_star').val()==2)
var star=s2;
if(j('#ad_star').val()==3)
var star=s3;
if(j('#ad_star').val()==4)
var star=s4;
if(j('#ad_star').val()==5)
var star=s5;
if(j('#ad_star').val()==6)
var star=s6;
if(j('#ad_star').val()==7)
var star=s7;
if(j('#ad_star').val()==8)
var star=s8;
if(j('#ad_star').val()==9)
var star=s9;
if(j('#ad_star').val()==10)
var star=s10;
var price=(star+<?php echo $monthprice; ?>)*j('#ad_price').val();
j('.abcx').replaceWith('<div class="abcx">هزینه (ریال) :'+price+'</div>');
}
})
j('#f4 input').attr('name','f4');
});
</script>
<?php
}
/**
* Saves the content item an edit form submit
*
* @todo
*/
function save()
{
$app = JFactory::getApplication();
// Check for request forgeries
//JRequest::checkToken() or jexit( 'invalid token' );
JRequest::checkToken() or JFactory::getApplication()->redirect('index.php?option=com_users&view=login','مشکلی در ارسال آګهی پیش آمده است یا هنوز وارد سایت نشده اید');
$user = JFactory::getUser();
$content = JTable::getInstance('contents', 'AdsmanagerTable');
$this->addModelPath(JPATH_ADMINISTRATOR.DS.'components'.D S.'com_adsmanager'.DS.'models');
$configurationmodel =$this->getModel( "configuration" );
$contentmodel =$this->getModel( "content" );
$usermodel =$this->getModel( "user" );
$fieldmodel =$this->getModel("field");
$conf = $configurationmodel->getConfiguration();
$plugins = $fieldmodel->getPlugins();
$id = JRequest::getInt( 'id', 0 );
// New or Update
if ($id != 0) {
$content->load($id);
if (($content == null)||($content->userid != $user->id)) {
$app->redirect( TRoute::_('index.php?option=com_adsmanager&view=list'), "" );
}
$isUpdateMode = 1;
$redirect_text = JText::_('ADSMANAGER_AD_UPDATED');
} else {
$isUpdateMode = 0;
if ($conf->auto_publish == 0)
$redirect_text = JText::_('ADSMANAGER_INSERT_SUCCESSFULL_CONFIRM');
else
$redirect_text = JText::_('ADSMANAGER_INSERT_SUCCESSFULL_PUBLISH');
}
//Check Max Ads by User
if (($id == 0)&&($user->id != "0")&&($conf->nb_ads_by_user != -1))
{
$nb = $contentmodel->getNbContentsOfUser($user->id);
if ($nb >= $conf->nb_ads_by_user)
{
$redirect_text = sprintf(JText::_('ADSMANAGER_MAX_NUM_ADS_REACHED') ,$conf->nb_ads_by_user);
$app->redirect(TRoute::_('index.php?option=com_adsmanage r&view=list'), $redirect_text );
}
}
$current = clone $content;
$content->bindContent(JRequest::get( 'post' ),JRequest::get( 'files' ),
$conf,$this->getModel("adsmanager"),$plugins);
if (function_exists('bindPaidSystemContent')) {
bindPaidSystemContent($content,
JRequest::get( 'post' ),JRequest::get( 'files' ),
$conf,$this->getModel("adsmanager"));
}
$content->current = $current;
$errors = $content->getErrors();
if (count($errors) > 0) {
$this->reloadForm($content);
}
if ($conf->metadata_mode == 'backendonly') {
$content->metadata_description = JRequest::getVar('ad_text', '');
$content->metadata_keywords = str_replace(" ",",",JRequest::getVar('ad_headline', ''));
}
$errorMsg = null;
$dispatcher = JDispatcher::getInstance();
JPluginHelper::importPlugin('adsmanagercontent');
try {
$results = $dispatcher->trigger('ADSonContentBeforeSave', array ());
} catch(Exception $e) {
$errorMsg = $e->getMessage();
$this->reloadForm($content,$errorMsg);
}
//Creation of account if needed
if (($conf->submission_type == 0)&&($user->id == 0))
//Valid account or visitor are allowed to post
if (($user->id != 0)||($conf->submission_type == 2))
{
$content->userid = $user->id;
} else {
//trying to save ad, without being registered
return;
}
if (function_exists("getPaidSystemMode"))
$mode = getPaidSystemMode();
else
$mode = "nopaidsystem";
$total = 0;
switch($mode) {
case "credits":
computeCost($total,$items,$content,$conf,$isUpdate Mode);
if ($total == 0) {
$content->save();
} else if (checkCredits($total,$user->id) == true) {
//generateBill($content,$total,$items,$mode,"ok");
removeCredits($user->id,$total);
$content->save();
} else {
$errorMsg= JText::_('PAIDSYSTEM_NOT_ENOUGH_CREDITS');
$this->reloadForm($content,$errorMsg);
}
break;
case "payperad":
$adid = $content->savePending();
computeCost($total,$items,$content,$conf,$isUpdate Mode);
if ($total == 0) {
$content->save();
} else {
generateBill($content,$total,$items,$mode,"pending",$adid);
}
break;
case "nopaidsystem":
$_SESSION['adsid']=$content->save();
break;
}
if (($mode == "payperad" )&&($total > 0)&&($isUpdateMode ==0)) {
if (@$conf->preview == 1)
$app->redirect( 'index.php?option=com_adsmanager&view=preview&id='.$adid, "" );
else
$app->redirect( 'index.php?option=com_paidsystem&view=payment', "" );
} else if ((@$conf->preview == 1)&&(JRequest::getInt('pending',0) == 1)) {
$app->redirect( 'index.php?option=com_adsmanager&view=preview&id='.$adid, "" );
} else if (($mode == "payperad" )&&($total > 0)&&($isUpdateMode == 1)) {
$app->redirect( 'index.php?option=com_paidsystem&view=payment', "" );
} else {
$cache = & JFactory::getCache('com_adsmanager');
$cache->clean();
if ($isUpdateMode == 0) {
if (($conf->send_email_on_new_to_user == 1)&&($conf->auto_publish == 1)) {
$contentmodel->sendMailToUser($conf->new_subject,$conf->new_text,$user,$content,$conf);
} else if (($conf->send_email_on_validation_to_user == 1)&&($conf->auto_publish == 0)) {
$contentmodel->sendMailToUser($conf->waiting_validation_subject,$conf->waiting_validation_text,$user,$content,$conf);
}
if ($conf->send_email_on_new == 1) {
$contentmodel->sendMailToAdmin($conf->admin_new_subject,$conf->admin_new_text,$user,$content,$conf);
}
} else {
if ($conf->send_email_on_update_to_user == 1) {
$contentmodel->sendMailToUser($conf->update_subject,$conf->update_text,$user,$content,$conf);
}
if ($conf->send_email_on_update == 1) {
$contentmodel->sendMailToAdmin($conf->admin_update_subject,$conf->admin_update_text,$user,$content,$conf);
}
}
JPluginHelper::importPlugin('adsmanagercontent');
try {
$results = $dispatcher->trigger('ADSonContentAfterSave', array ($content,$isUpdateMode,$conf));
} catch(Exception $e) {
$errorMsg = $e->getMessage();
}
//Redirect
if ($conf->submission_type == 2)
$app->redirect( TRoute::_('index.php?option=com_adsmanager&view=list'), $redirect_text );
else if (COMMUNITY_BUILDER_ADSTAB == 1)
$app->redirect( TRoute::_('index.php?option=com_comprofiler&task=userProfile&tab=AdsManagerTab'), $redirect_text );
else {
$s='s'.$_POST['ad_star'];
$m='m1';//.$_POST['ad_price'];
$amount=($conf->$s + $conf->$m) * $_POST['ad_price'];
$_SESSION['apikey']=$apikey=$conf->apikey;
$redirect_url=urlencode('http://******.com/index.php?option=com_adsmanager&task=payline&sid='.$_SESSION['adsid']);
$url='http://payline.ir/payment/gateway-send';
if(!$this->updateprice($_SESSION['adsid'],$amount))
{
$return_data= $this->sendtopayline($url,$apikey,$amount,$redirect_url);
if($return_data > 0)
$app->redirect( 'http://payline.ir/payment/gateway-'.$return_data);
elseif($return_data== -4)
{
echo "چنین تراکنشی در سیستم وجود ندارد یا تراکنش با موفقیت انجام نشده است";
}
elseif($return_data== -3)
{
echo "id_get ارسالی معتبر نمی باشد";
}
elseif($return_data== -2)
{
echo "trans_id ارسالی معتبر نمی باشد";
}
elseif($return_data== -1)
{
echo "API KEY ارسالی به درګاه صحیح نمی باشد";
}
else
{
echo "خطای نامشخص";
}
}
else
{
echo "مشکلی در سفارش رخ داده است";
}
//$app->redirect( TRoute::_('index.php?option=com_adsmanager&view=myads'), $redirect_text );
}
}
}
function valid() {
$app = JFactory::getApplication();
$id = JRequest::getInt('id', 0);
$user = JFactory::getUser();
$db =JFactory::getDBO();
$db->setQuery("SELECT id FROM #__paidsystem_orders WHERE userid=".$user->id." AND pending_id = ".$id." AND state='pending' ORDER BY id DESC");
$orderid = $db->loadResult();
$app->redirect( 'index.php?option=com_paidsystem&view=payment&orderid='.$orderid, "" );
}
function delete()
{
$app = JFactory::getApplication();
$user = JFactory::getUser();
$this->addModelPath(JPATH_ADMINISTRATOR.DS.'components'.D S.'com_adsmanager'.DS.'models');
$configurationmodel =$this->getModel( "configuration" );
$fieldmodel =$this->getModel( "field" );
$content = JTable::getInstance('contents', 'AdsmanagerTable');
$id = JRequest::getInt('id', 0);
if ($id == 0) {
$app->redirect( TRoute::_('index.php?option=com_adsmanager&view=list'), "" );
}
$content->load($id);
if (($content == null)||($content->userid != $user->id))
$app->redirect( TRoute::_('index.php?option=com_adsmanager&view=list'), "" );
$conf = $configurationmodel->getConfiguration();
$plugins = $fieldmodel->getPlugins();
JPluginHelper::importPlugin('adsmanagercontent');
$dispatcher = JDispatcher::getInstance();
try {
$results = $dispatcher->trigger('ADSonContentBeforeDelete', array ($content,$conf));
} catch(Exception $e) {
$errorMsg = $e->getMessage();
}
$content->delete($id,$conf,$plugins);
JPluginHelper::importPlugin('adsmanagercontent');
try {
$results = $dispatcher->trigger('ADSonContentAfterDelete', array ($content,$conf));
} catch(Exception $e) {
$errorMsg = $e->getMessage();
}
$cache = JFactory::getCache( 'com_adsmanager');
$cache->clean();
if (COMMUNITY_BUILDER_ADSTAB == 1)
$app->redirect( TRoute::_('index.php?option=com_comprofiler&task=userProfile&tab=AdsManagerTab'), JText::_('ADSMANAGER_CONTENT_REMOVED') );
else
$app->redirect( TRoute::_('index.php?option=com_adsmanager&view=myads'), JText::_('ADSMANAGER_CONTENT_REMOVED') );
}
function sendmessage()
{
$app = JFactory::getApplication();
// Check for request forgeries
JRequest::checkToken() or jexit( 'Invalid Token' );
$contentid = JRequest::getInt( 'contentid',0 );
$this->addModelPath(JPATH_ADMINISTRATOR.DS.'components'.D S.'com_adsmanager'.DS.'models');
$contentmodel =$this->getModel( "content" );
$content = $contentmodel->getContent($contentid);
$dispatcher = JDispatcher::getInstance();
JPluginHelper::importPlugin('adsmanagercontent');
$dispatcher = JDispatcher::getInstance();
JPluginHelper::importPlugin('adsmanagercontent');
try {
$results = $dispatcher->trigger('ADSonMessageBeforeSend', array ());
} catch(Exception $e) {
$errorMsg = $e->getMessage();
$app->redirect( TRoute::_('index.php?option=com_adsmanager&view=message&contentid='.$contentid), $errorMsg );
}
if (isset($content))
{
$name = JRequest::getVar('name' , "" );
$email = JRequest::getVar('email', "" );
jimport('joomla.mail.helper');
if (!JMailHelper::isEmailAddress($email))
{
$this->setError(JText::_('INVALID_EMAIL_ADDRESS'));
$app->redirect( TRoute::_('index.php?option=com_adsmanager&view=details&catid='.$content->catid.'&id='.$contentid), 'INVALID_EMAIL_ADDRESS' );
}
$subject = JRequest::getVar('title', "" );
$body = JRequest::getVar('body' , "" );
$body = str_replace(array("\r\n", "\n", "\r"), "<br />", $body);
$file = JRequest::getVar( 'attach_file',null,'FILES');
if ($file['tmp_name'] != "")
{
$directory = ini_get('upload_tmp_dir')."";
if ($directory == "")
$directory = ini_get('session.save_path')."";
$filename = $directory."/".basename($file['name']);
rename($file['tmp_name'], $filename);
if (!JUtility::sendMail($email,$name,$content->email,$subject,$body,1,NULL,NULL,$filename))
{
$this->setError(JText::_('ADSMANAGER_ERROR_SENDING_MAIL') );
$app->redirect( TRoute::_('index.php?option=com_adsmanager&view=details&catid='.$content->catid.'&id='.$contentid), JText::_('ADSMANAGER_ERROR_SENDING_MAIL') );
}
$config =JFactory::getConfig();
$from = $config->getValue('mailfrom');
$fromname = $config->getValue('fromname');
$mailcontent = "Sender: $name - $email<br/>";
$mailcontent .= "Ad Owner: $content->email (userid={$content->userid})<br/>";
$mailcontent .= "Ad id: $content->id<br/>";
$mailcontent .= "Ad title: $content->ad_headline<br/>";
$mailcontent .= "Message: $body";
/*if (!JUtility::sendMail($from,$fromname,$from,$subjec t,$mailcontent,1,NULL,NULL,$filename))
{
$this->setError(JText::_('ADSMANAGER_ERROR_SENDING_MAIL') );
$app->redirect( TRoute::_('index.php?option=com_adsmanager&view=details&catid='.$content->catid.'&id='.$contentid), JText::_('ADSMANAGER_ERROR_SENDING_MAIL') );
}*/
}
else {
if (!JUtility::sendMail($email,$name,$content->email,$subject,$body,1))
{
$this->setError(JText::_('ADSMANAGER_ERROR_SENDING_MAIL') );
$app->redirect( TRoute::_('index.php?option=com_adsmanager&view=details&catid='.$content->catid.'&id='.$contentid), JText::_('ADSMANAGER_ERROR_SENDING_MAIL') );
}
$config =JFactory::getConfig();
$from = $config->getValue('mailfrom');
$fromname = $config->getValue('fromname');
$mailcontent = "Sender: $name - $email<br/>";
$mailcontent .= "Ad Owner: $content->email (userid={$content->userid})<br/>";
$mailcontent .= "Ad id: $content->id<br/>";
$mailcontent .= "Ad title: $content->ad_headline<br/>";
$mailcontent .= "Message: $body";
/* TODO option to activate or not
* if (!JUtility::sendMail($from,$fromname,$from,$subjec t,$body,1))
{
$this->setError(JText::_('ADSMANAGER_ERROR_SENDING_MAIL') );
$app->redirect( TRoute::_('index.php?option=com_adsmanager&view=details&catid='.$content->catid.'&id='.$contentid), JText::_('ADSMANAGER_ERROR_SENDING_MAIL') );
}*/
}
}
$app->redirect( TRoute::_('index.php?option=com_adsmanager&view=details&catid='.$content->catid.'&id='.$contentid), JText::_('ADSMANAGER_EMAIL_SENT') );
}
User();
$this->addModelPath(JPATH_ADMINISTRATOR.DS.'components'.D S.'com_adsmanager'.DS.'models');
$usermodel =$this->getModel( "user" );
$content = JFile::read($out);
$in = $content .$in ;
}
JFile::write($out,$in);
} else
die('{"jsonrpc" : "2.0", "error" : {"code": 103, "message": "Failed to move uploaded file."}, "id" : "id"}');
} else {
// Open temp file
$out = $targetDir . DIRECTORY_SEPARATOR . $fileName;
// Read binary input stream and append it to temp file
$in = fopen("php://input", "rb");
if ($chunk != 0) {
$content = JFile::read($out);
$in = $content.$in ;
}
JFile::write($out,$in);
}
// Return JSON-RPC response
die('{"jsonrpc" : "2.0", "result" : null, "id" : "id","tmpfile" : "'.$fileName.'"}');
}
function renew() {
$app = JFactory::getApplication();
$contentid = JRequest::getInt('id', 0);
$this->addModelPath(JPATH_ADMINISTRATOR.DS.'components'.D S.'com_adsmanager'.DS.'models');
$contentmodel =$this->getModel( "content" );
$confmodel =$this->getModel( "configuration" );
$conf = $confmodel->getConfiguration();
$c = $contentmodel->getContent($contentid,false);
if ($c == null)
exit();
$expiration_time = strtotime($c->expiration_date);
$current_time = time();
if (function_exists("renewPaidAd")) {
renewPaidAd($contentid);
}
else
{
if ($expiration_time - $current_time > ($conf->recall_time * 3600 *24)) {
$app->redirect(TRoute::_("index.php?option=com_adsmanager"),JText::_('ADSMANAGER_CONTENT_CANNOT_RESUBMIT'));
}
$contentmodel->renewContent($contentid,$conf->ad_duration);
}
$cache = JFactory::getCache( 'com_adsmanager');
$cache->clean();
if (COMMUNITY_BUILDER_ADSTAB == 1)
$app->redirect( TRoute::_('index.php?option=com_comprofiler&task=userProfile&tab=AdsManagerTab'), JText::_('ADSMANAGER_CONTENT_RESUBMIT') );
else
$app->redirect( TRoute::_('index.php?option=com_adsmanager&view=myads'), JText::_('ADSMANAGER_CONTENT_RESUBMIT') );
}
function sendtopayline($url,$api,$amount,$redirect)
{
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_POSTFIELDS,"api=$api&amount=$amount&redirect=$redirect");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
$res = curl_exec($ch);
curl_close($ch);
return $res;
}
function getfrompayline($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;
}
function payline($api)
{
$this->addModelPath(JPATH_ADMINISTRATOR.DS.'components'.D S.'com_adsmanager'.DS.'models');
$configurationmodel =$this->getModel( "configuration" );
$conf = $configurationmodel->getConfiguration();
$conf->apikey ;
$apikey=$conf->apikey;
$url = 'http://payline.ir/payment/gateway-result-second';
$trans_id=$_POST['trans_id'];
$id_get=$_POST['id_get'];
if($result=$this->getfrompayline($url,$apikey,$trans_id,$id_get)==1)
{
$this->updatepublish($trans_id,$id_get);
}
elseif($result== -4)
{
echo "چنین تراکنشی در سیستم وجود ندارد یا تراکنش با موفقیت انجام نشده است";
}
elseif($result== -3)
{
echo "id_get ارسالی معتبر نمی باشد";
}
elseif($result== -2)
{
echo "trans_id ارسالی معتبر نمی باشد";
}
elseif($result== -1)
{
echo "API KEY ارسالی به درګاه صحیح نمی باشد";
}
else
{ echo $result;
echo "خطای نامشخص";
}
}
فایل کامل ضمینه شد
قسمت $_SESSION['apikey']=$apikey=$conf->apikey;
$redirect_url=urlencode('http://******.com/index.php?option=com_adsmanager&task=payline&sid='.$_SESSION['adsid']);
$url='http://payline.ir/payment/gateway-send';
if(!$this->updateprice($_SESSION['adsid'],$amount))
{
$return_data= $this->sendtopayline($url,$apikey,$amount,$redirect_url);
if($return_data > 0)
$app->redirect( 'http://payline.ir/payment/gateway-'.$return_data);
elseif($return_data== -4)
مربوط به پرداخت میشه اما وقتی ذخیره را میزنی که بره برای پرداخت اصلا به پی لاین وصل نمیشه .
دوستان خواهشا برای محاسبه اش کمک کنید . چون محدودیت کاراکتر بود فایل را ضمینه کردم
تشکر