PDA

View Full Version : درخواست راهنمائی برای محاسبه قیمت -ضروری



shervin_20
جمعه 02 اسفند 1392, 18: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)
مربوط به پرداخت میشه اما وقتی ذخیره را میزنی که بره برای پرداخت اصلا به پی لاین وصل نمیشه .

دوستان خواهشا برای محاسبه اش کمک کنید . چون محدودیت کاراکتر بود فایل را ضمینه کردم

تشکر

shervin_20
جمعه 02 اسفند 1392, 19:13 عصر
دوستان اگر حتی شامل هزینه میشود مشکلی ندارد . هزینه اش پرداخت میشود

MMSHFE
جمعه 02 اسفند 1392, 21:08 عصر
اینجا اگه کسی بخواد راهنمایی کنه، دنبال دستمزد مالی نیست و اینجور پستها حکم Spam و به نوعی توهین به دوستان رو داره. اگه میبینید کسی جواب نمیده، دو حالت بیشتر نداره:
1- تاپیک شما رو ندیده
2- اطلاعات لازم برای راهنمایی رو نداره
موفق باشید.

shervin_20
جمعه 02 اسفند 1392, 21:19 عصر
تشکر .
اما حقیقتا دوست عزیز بنده اصلا چنین قصدی نداشتم . گفتم اگر کسی از دوستان که حتی حاضر باشن با انجام هزینه کار انجام شود مشکلی نداریم . چون کارم خیلی ضروری هست و واقعا دیدم کسی از دوستان راهنمائی نکردن .
به هر حال امیدوارم سو تفاهمی پیش نیاد و از دوستانی که میتونند راهنمائی کنند ممنون میشم این لطف را دریغ نکنند چون واقعا ضروری هست برام

MMSHFE
جمعه 02 اسفند 1392, 21:25 عصر
مطمئناً منظور شما این نبوده و من هم فقط بابت یادآوری گفتم. مطمئن باشین اگه کسی باشه که با سیستم مورد استفاده در مسئله شما (که اگه اشتباه نکنم جوملا هست)، کار کرده باشه، از راهنمایی دریغ نخواهد کرد.

shpegah
شنبه 03 اسفند 1392, 07:53 صبح
دوست عزیز لطفا مشخص کنید که توضیحاتی که دادید برای شما ملاک است یا کدی که نوشتید ؟
چون طبق توضیحاتتون مسئله خیلی ساده است شما چهار تا پارامتر حداکثر لازم دارید که شامل :
mn=تعداد ماه ها
sn=تعداد ستاره ها
mh=هزینه هر ماه
sh=هزینه هر ستاره
که فرمول شما بدین صورت میشود :
result=mn*mh+sn*sh
حالا شما پیش فرض مقدار mh و sh را 10 گرفته اید میشود:
result=10*mn+10*sn
یعنی برای یک ماه و یک ستاره میشه 20 وبرای 2 ماه ویک ستاره میشه 30

واما... کدشما
البته من دقیق بررسی نکردم ولی ظاهرا مقادیر sn های شما هم شامل فرمول دیگری است که در توضیحات چیزی عنوان نکردید وبه نظر میاد درست از اون استفاده نکردید حالا شما مشخص بفرمایید هدفتون چیست تا بهتر بررسی شود

shervin_20
شنبه 03 اسفند 1392, 08:06 صبح
با تشکر دوست عزیز .

ما در مدیریت یک قسمت m1 تا m10 داریم که مربوط به هزینه ماه هست و یک قسمت s1 تا s10 داریم مربوط به هزینه ستاره ها هست .

الان قیمت را اصلا درست محاسبه نمی کند و باید طبق فرمول

روند محاسبه قیمت کنونی:[(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 محاسبه نشوند.

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

shpegah
شنبه 03 اسفند 1392, 08:16 صبح
فرمولی که الان نوشتید چون پرانتزها جابجاست مفهوم نیست میشه واضحتر بنویسید یا تصویرش را بذارید

shpegah
شنبه 03 اسفند 1392, 08:20 صبح
با تشکر دوست عزیز .

محاسبه قیمت باید به این گونه باشد:[قیمت یک ستاره*تعداد ستاره]+[قیمت یک ماه *تعداد ماه] البته یک اشکال نیز این نحوه محاسبه دارد و زمانی است که مثلا بخواهید قیمت تعداد هر ماه یا تعداد هر ستاره ثابت نباشد یعنی هر ماه مثلا 10 ریال نباشد بخواهید برای تشویق مشتری قیمت 5 ماه اول یا 5 ستاره اول مثلا هر ماه یا ستاره 10 ریال باشد اما ستاره یا ماه ششم 5 ریال شود که برای رفع این ایراد و کامل تر شدن نحوه محاسبه بهتر است برای هر ماه و هر ستاره بتوان در یک ستون مشخص قیمت دلخواه تعیین نمود.یعنی همه از s1 و m1 محاسبه نشوند.


.
این که درست است مقدارهای قیمت هرستاره را به دلخواه تعیین کنید مشکل این فرمول را متوجه نمیشوم مقادیرش هم درست است

shpegah
شنبه 03 اسفند 1392, 09:06 صبح
$s='s'.$_POST['ad_star'];
$m='m1';//.$_POST['ad_price'];
$amount=($conf->$s + $conf->$m) * $_POST['ad_price'];

فرمولی که استفاده کردید اینه ولی با گفته شما مغایرت داره !

shervin_20
شنبه 03 اسفند 1392, 09:25 صبح
دوست عزیز توی عکس توضیح دادم .

shervin_20
شنبه 03 اسفند 1392, 09:25 صبح
مشکل پرداخت مربوط به چی هست ؟

shpegah
شنبه 03 اسفند 1392, 11:11 صبح
شما خطوط 513و514و515
کدتون رو تغییر بدید ببینید درست میشه
یعنی به جای این خطوط :


$s='s'.$_POST['ad_star'];
$m='m1';//.$_POST['ad_price'];
$amount=($conf->$s + $conf->$m) * $_POST['ad_price'];


بنویسید :


$s='s'.$_POST['ad_star'];
$m='m'.$_POST['ad_mah'];
$amount=($conf->$s *ad_star)+ ($conf->$m * ad_mah);

البته مقدار ad_mah هم باید مشخص شود

shervin_20
شنبه 03 اسفند 1392, 11:14 صبح
تشکر دوست عزیز . چشم قرار میدم .

این یعنی چی "
البته مقدار ad_mah هم باید مشخص شود"

چی باید مشخص شود ؟

زحمت میکشید مشکل پرداخت را یک بررسی کنید ؟ یهویی از کار افتاد

shervin_20
دوشنبه 05 اسفند 1392, 21:56 عصر
از دوستان کسی نیست راهنمائی کند ؟