PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : ردایرکت نشدن به سایت در ماژول پرداخت بانک ملت بعد از پرداخت موفقیت آمیز یا انصراف از پرداخت



Cpt.Price
May 21st, 2013, 19:18
سلام
بنده از ماژول متن باز که دوستان در همین تاپیک گذاشتن استفاده کرده ام برای یکی از دوستان مشکل همینطور که در عنوان میبینید
ردایرکت نشدن به سایت در ماژول پرداخت بانک ملت بعد از پرداخت موفقیت آمیز یا انصراف از پرداخت هست.
صفحه سفید میشه ایا تابع خاصی نیازمنده که فعال نیست؟
ایا فایل php باید باشه و نیست که نمیتونه پیدا کنه؟
ممنون میشم راهنکایی کنید.

nginxweb
May 21st, 2013, 19:24
در whmcs در تنظیمات آدرس صفحه اصلی سایت رو صحیخ وارد نمایید مشکلتون به احتمال زیاد حل خواهد گردید

Cpt.Price
May 21st, 2013, 19:37
در whmcs در تنظیمات آدرس صفحه اصلی سایت رو صحیخ وارد نمایید مشکلتون به احتمال زیاد حل خواهد گردید
ضمن تشکر نوشتاری و کلیکی از شما
نکته ای که ممکنه کمک کنه اینه که بنده ماژول رو از این لینک دانلود کرده ام
http://www.webhostingtalk.ir/f212/54698/
در whmcs قسمت
Domain ادرس سایت : www.123.ir هست
اما در قسمت WHMCS System URL چون مسیر یکی نیست مسیر رو ww.123.ir/whmcs/ معرفی کرده ایم که خیلی وقته مشکلی پیش نیومده.
و اینکه در این مسیر گیر میکنه و صفحه سفید میشه
www.123.ir/whmcs/modules/gateways/callback/mellat.php?iid=240 اگر کمکی میکنه فایل فوق موجوده و توابع nusoap به کار رفته احتمال داره غیر فعال باشه روی هاست سی پنل و این مشکل از این باشه؟
در صورتی که کمک میکنه فایل فوق:


<?php
function mellat_config(){ $configarray = array( "FriendlyName" => array("Type" => "System", "Value" => "پرداخت ریالی بانک ملت"), "mellatterminalId" => array( "FriendlyName" => "ترمینال عملیاتی", "Type" => "text", "Size" => "30", ), "mellatuserName" => array( "FriendlyName" => "نام کاربری", "Type" => "text", "Size" => "30", ), "mellatuserPassword" => array( "FriendlyName" => "رمز عبور", "Type" => "text", "Size" => "30", ), ); return $configarray;}

function mellat_link($params){
$terminalId = $params['mellatterminalId']; $userName = $params['mellatuserName']; $userPassword = $params['mellatuserPassword'];
$invoiceid = $params['invoiceid']; $description = $params["description"]; $amount = $params['amount'];
$companyname = $params['companyname']; $systemurl = $params['systemurl']; $currency = $params['currency'];

//Because WHMCS has bug on this section we check inculde (Fastest way) $included_files = get_included_files(); $flag = 0; foreach ($included_files as $file) { if (basename($file) == "nusoap.php") { $flag = 1; } } if ($flag == 0) { require_once ("./modules/gateways/callback/lib/nusoap.php"); $client = new nusoap_client('https://pgws.bpm.bankmellat.ir/pgwchannel/services/pgw?wsdl'); $namespace = 'http://interfaces.core.sw.bps.com/'; mysql_query("INSERT INTO `morders` (`oid`, `invoiceid`, `amount`, `description`, `isPayed`, `resLink`, `resBank`, `refid`, `saleorderid`, `refund`) VALUES (NULL, '$invoiceid', '$amount', '$description', '0', '0', '-1', 'no', '-1', '0');"); $orderId = mysql_insert_id(); $ops = array( 'terminalId' => $terminalId, 'userName' => $userName, 'userPassword' => $userPassword, 'orderId' => $orderId, 'amount' => intval($amount * 10), 'localDate' => date("Ymd"), 'localTime' => date("His"), 'additionalData' => $description, 'callBackUrl' => $systemurl . '/modules/gateways/callback/mellat.php?iid=' . $invoiceid, 'payerId' => 0); $result = $client->call('bpPayRequest', $ops, $namespace); if ($client->fault) { echo '<h2>Fault</h2><pre>'; print_r($result); echo '</pre>'; die(); } else { $err = $client->getError(); if ($err) { echo '<h2>Error</h2><pre>' . $err . '</pre>'; die(); } else { $res = explode(',', $result); if ($res[0] == "0") { $refid = $res[1]; $resLink = $res[0]; mysql_query("UPDATE `morders` SET `refid` = '$refid',`resLink` = '$resLink' WHERE `morders`.`oid` ='$orderId';"); return '<form action="https://pgw.bpm.bankmellat.ir/pgwchannel/startpay.mellat" method="post" target="_self"><input type="hidden" name="RefId" value="' . $res[1] . '" /><input type="submit" value="' . $params['langpaynow'] . '" /></form>'; } else { $resLink = $res[0]; mysql_query("UPDATE `morders` SET `resLink` = '$resLink' WHERE `morders`.`oid` ='$orderId';"); return ("اتصال به بانک دچار مشکل شد است .خطا: $resLink"); } } } }
}
function mellat_refund($params){ $terminalId = $params['mellatterminalId']; $userName = $params['mellatuserName']; $userPassword = $params['mellatuserPassword'];
$invoiceid = $params['invoiceid']; $description = $params["description"]; $amount = $params['amount'];
$companyname = $params['companyname']; $systemurl = $params['systemurl']; $currency = $params['currency'];
//Because WHMCS has bug on this section we check inculde (Fastest way) $included_files = get_included_files(); $flag = 0; foreach ($included_files as $file) { if (basename($file) == "nusoap.php") { $flag = 1; } } if ($flag == 0) { $results = array(); require_once ("./modules/gateways/callback/lib/nusoap.php"); $client = new nusoap_client('https://pgws.bpm.bankmellat.ir/pgwchannel/services/pgw?wsdl'); $namespace = 'http://interfaces.core.sw.bps.com/'; //isPayed should be 1, we have just on payed. $morderq = mysql_query("SELECT * FROM `morders` WHERE `invoiceid` = $invoiceid AND `isPayed` = '1' LIMIT 1"); if (mysql_num_rows($morderq) != 0) { $morder = mysql_fetch_array($morderq); mysql_query("INSERT INTO `morders` (`oid`, `invoiceid`, `amount`, `description`, `isPayed`, `resLink`, `resBank`, `refid`, `saleorderid`, `refund`) VALUES (NULL, '$invoiceid', '$amount', '$description', '0', '0', '-1', 'no', '-1', '1');"); $refundId = mysql_insert_id(); $orderId = $morder['oid']; $saleReferenceId = $morder['saleorderid']; $ops = array( 'terminalId' => $terminalId, 'userName' => $userName, 'userPassword' => $userPassword, 'orderId' => $refundId, //We make new record to refund 'saleOrderId' => $orderId, 'saleReferenceId' => $saleReferenceId, 'refundAmount' => $amount); $result = $client->call('bpRefundRequest', $ops, $namespace); $res = explode(',', $result); if ($res[0] == 0) { $refId = $res[1]; $ops = array( 'terminalId' => $terminalId, 'userName' => $userName, 'userPassword' => $userPassword, 'orderId' => $refundId, //We make new record to refund 'refundOrderId' => $refundId, 'refundReferenceId' => $refId); $result = $client->call('bpRefundVerifyRequest', $ops, $namespace); if ($result == 0) { mysql_query("UPDATE `morders` SET `refid` = '$refId',`refund`='2' WHERE `morders`.`oid` ='$refundId';"); $results['status'] = "success"; $results['transid'] = $refId; return array( "status" => "success", "transid" => $refId, "rawdata" => $results); } else { $result = $client->call('bpRefundInquiryRequest', $ops, $namespace); if ($result == 0) { mysql_query("UPDATE `morders` SET `refid` = '$refId',`refund`='2' WHERE `morders`.`oid` ='$refundId';"); $results['status'] = "success"; $results['transid'] = $refId; return array( "status" => "success", "transid" => $refId, "rawdata" => $results); } else { mysql_query("UPDATE `morders` SET `refid` = '$refId', WHERE `morders`.`oid` ='$refundId';"); $results['status'] = "error"; $results['transid'] = $refId; return array("status" => "error", "rawdata" => $results); } } } else { $results['status'] = "declined"; return array("status" => "declined", "rawdata" => $results); }
} else { $results['status'] = "declined"; return array("status" => "declined", "rawdata" => $results); }
}
}?>

Cpt.Price
May 21st, 2013, 22:22
مشکل حل شد ، دوستان ادمین میتونند تاپیک رو ببندند.
جهت اطلاع کسانی که احیانا با این قبیل مشکلات بر میخورند :
مشکل از قالب محیط کاربری بنده بود که با تست چند قالب دیگر اطمینان پیدا کردم که مشکل از این قالب هست.
قبل از اعلام مشکل مثل بنده عجول نباشید و حتما قالب محید کاربر / یا ادمین رو تغییر و امتحان کنید.