سلام
دوستان یه مشکلی داشتیم
اونم اینه که توی WHMCS کاربر بعد از پرداخت ، موقع برگشت به سایت ارور 500 میگیره و فاکتورش unpaid میمونه
بنظرتون از چی هست؟
نمایش نسخه قابل چاپ
سلام
دوستان یه مشکلی داشتیم
اونم اینه که توی WHMCS کاربر بعد از پرداخت ، موقع برگشت به سایت ارور 500 میگیره و فاکتورش unpaid میمونه
بنظرتون از چی هست؟
ارور داری شما، ارور لاگ چک کنید.
اگر از ارور لاگ متوجه مشکل نشدید
همه ماژول هاتون مثل ماژول پیامک رو غیرفعال کنید تست کنید
اگر نشد نسخه php رو تغییر بدید تست کنید
ارور 500 timeout نیست ؟
به احتمال 80 درصد سرور سایتتون ضعیفه یا بهینه نشده
لاگ اپاچیو نگاه کنین ...
در ضمن چه ربطی به بهینه بودن سرور داشت ؟! ( این مورد در جاهای دیگه باید گفته میشد برادر نه موقع برگشت .. ( نال بودن - نسخه پی اچ پی ... ) )
و اینکه مدیران یه 100 تا پست به این دوستمون بدین مجبور نشوند اسپم بزنند
درود
فانکشن در سرور بسته شده است ؟
- - - Updated - - -
منظور از سرور تو php سرور هستش
مگه ما چند تا ارور 500 داریم؟
ارور 500 یعنی Internal server error.
یعنی همون اروری که مثلاً با تغییر اشتباه فایل htaccess. ایجاد میشه.
من زیاد سابقه کار با WHMCS ندارم اما به نظرم موارد زیر رو بررسی کنید:
1.فایل htaccess. فعلی رو به یه نام دیگه تغییر نام بدید و تست کنید.
2.محتویات فایل بخش callback ماژول پرداخت فعلی رو بررسی کنید و ببینید درخواست اجرای چه تابعی رو داشته که با این اخطار مواجه شده.
3.ببینید فایل htaccess. دیگه ای در پوشه های دیگه وجود نداره.
4.در آخر اگر نشد از آپاچی به NginX سوئیچ کنید ببینید باز این مشکل هست یا نه.
والا توی مرورگر مینویسه 500 server error
اینم کد
کد PHP:
<?php/** * Plugin Name: Sibapal Payment Module For Whmcs * Plugin URI: http://omidtak.ir * Version: 1.0 * Author: Omid Aran * Author Email: info[at]omidtak[dot]ir */ session_start();
$amount=strtok($_POST['amount'],'.');if($_POST['currencies']=='Rial') $amount = $amount/10; $callback = $_POST['systemurl'].'/modules/gateways/callback/smn.php?invoiceid='.$_POST['invoiceid'].'&amount='.$amount; $_SESSION['invoice'][$_POST['invoiceid']] = $amount;
function request_smn($pin='',$amount='',$callback='',$order_id=0){ $params = array( 'pin'=>$pin , 'amount'=>$amount , 'callback'=>urlencode($callback) , 'order_id'=> (int) $order_id , ); $params = json_encode($params); $do = curl_init(); curl_setopt($do,CURLOPT_URL,"https://sibapal.com/Eserviceapi/request?params={$params}"); curl_setopt($do, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($do,CURLOPT_RETURNTRANSFER,1); curl_setopt($do, CURLOPT_CONNECTTIMEOUT, 20); $response = curl_exec($do); curl_close($do); return json_decode($response,true);}
$res = request_smn($_POST['pin'],$amount,$callback,$_POST['invoiceid']);
if(empty($res)) echo '<meta charset=utf-8><div align="center"><pre><font size="4px">خطایی رخ داده است <br /> شرح خطا : </font><font color="red" size="4px">خطا در اتصال به سرور !</font></pre></div>';else if($res['result'] == 1){ $au = $res['au']; $_SESSION['smn'][$_POST['invoiceid']] = array( 'au'=>$au , 'amount'=>$amount , ); echo "<div style='display:none'>{$res['form']}</div><script language='javascript'>document.siba.submit(); </script>"; exit;} else die('<meta charset=utf-8><div align="center"><pre><font size="4px">خطایی رخ داده است <br /> شرح خطا : </font><font color="red" size="4px">'.urldecode($res['msg']).'</font></pre></div>');?>
سلام
فانکشن url decode بسته شده ؟
لیست فانکشن ها رو دهید تا بررسی کنم
تست کنیدکد:<?php
session_start();
$amount=strtok($_POST['amount'],'.');if($_POST['currencies']=='Rial') $amount = $amount/10; $callback = $_POST['systemurl'].'/modules/gateways/callback/smn.php?invoiceid='.$_POST['invoiceid'].'&amount='.$amount; $_SESSION['invoice'][$_POST['invoiceid']] = $amount;
function request_smn($pin='',$amount='',$callback='',$order_id=0){ $params = array( 'pin'=>$pin , 'amount'=>$amount , 'callback'=>urlencode($callback) , 'order_id'=> (int) $order_id , ); $params = json_encode($params); $do = curl_init(); curl_setopt($do,CURLOPT_URL,"https://sibapal.com/Eserviceapi/request?params={$params}"); curl_setopt($do, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($do,CURLOPT_RETURNTRANSFER,1); curl_setopt($do, CURLOPT_CONNECTTIMEOUT, 20); $response = curl_exec($do); curl_close($do); return json_decode($response,true);}
$res = request_smn($_POST['pin'],$amount,$callback,$_POST['invoiceid']);
if(empty($res)) echo '<meta charset=utf-8><div align="center"><pre><font size="4px">خطایی رخ داده است <br /> شرح خطا : </font><font color="red" size="4px">خطا در اتصال به سرور !</font></pre></div>';else if($res['result'] == 1){ $au = $res['au']; $_SESSION['smn'][$_POST['invoiceid']] = array( 'au'=>$au , 'amount'=>$amount , ); echo "<div style='display:none'>{$res['form']}</div><script language='javascript'>document.siba.submit(); </script>"; exit;} else die('Err');?>
ببخشید ، این کد callback هست که ارور میده
کد PHP:
<?php/** * Plugin Name: Sibapal Payment Module For Whmcs * Plugin URI: http://omidtak.ir * Version: 1.0 * Author: Omid Aran * Author Email: info[at]omidtak[dot]ir */ session_start();
include('../../../dbconnect.php');include('../../../includes/functions.php');include('../../../includes/gatewayfunctions.php');include('../../../includes/invoicefunctions.php'); function verify_smn($pin='',$amount='',$au='',$order_id=0,$bank_return=array()){ $params = array( 'pin'=>$pin , 'amount'=>$amount , 'au'=>$au , 'order_id'=> (int) $order_id , 'bank_return'=> ! empty($bank_return)?$bank_return:($_POST+$_GET) , ); $params['bank_return'] = base64_encode(json_encode($params['bank_return'])); $params = json_encode($params); $do = curl_init(); curl_setopt($do,CURLOPT_URL,"https://sibapal.com/Eserviceapi/verify?params={$params}"); curl_setopt($do, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($do,CURLOPT_RETURNTRANSFER,1); curl_setopt($do, CURLOPT_CONNECTTIMEOUT, 20); $response = curl_exec($do); curl_close($do); return json_decode($response,true);}
$gatewaymodule = 'smn';
$GATEWAY = getGatewayVariables($gatewaymodule);if (!$GATEWAY['type']) die('Module Not Activated'); $invoiceid = $_GET['invoiceid'];$data = $_SESSION['smn'][$invoiceid];$amount = $data['amount'];$transid = $data['au']; if(empty($data['amount'])) die('error');
$invoiceid = checkCbInvoiceID($invoiceid,$GATEWAY['name']);
checkCbTransID($transid); $price = $amount; $bank_return = $_POST + $_GET; $res = verify_smn($GATEWAY['pin'],$amount,$transid,$invoiceid,$bank_return); if($GATEWAY['Currencies']=='Rial') $amount = $amount*10; if (!empty($res) and $res['result']==1){ addInvoicePayment($invoiceid,$res['bank_au'],$amount,0,$gatewaymodule); logTransaction($GATEWAY['name'],$_POST,'Successful'); } else logTransaction($GATEWAY['name'],$_POST,'Unsuccessful');
$url = $CONFIG['SystemURL'].'/viewinvoice.php?id='.$invoiceid;die("<script>window.location='$url';</script>");// or header('Location: '.$url); ?>
تنها راهی که الان شما میتونی مشکل رو پیدا کنید آزمون خطاست. تا جای متد getGatewayVariables برید بعدش die('e'); قرار بدید بعد چک کنید بازم ارور داره یا نه همینطور پیش برید تا لاینی که مشکل داره رو پیدا کنید.
کامنت اول خط هم پاک کنید در php بالا 5.4 گیر میده.
با سلام
با اجازه از جناب مهندس حسینی
فکر نکنم از هاست وسرور باشه چون ما هم از ایشون سرویس داریم ودرگاه مشکل نداره در whmcs