با سلام
دوستان ماژول درگاه بانک ملت برای هر پرداخت کاربر رو به اینوی ای دی 0 پس از پرداخت موفق و واریز مبلغ به حساب ما ردایرکت میکنه که در فایل Callback هست مشکل ، برای اطمینان اما فایل های دیگر نیز به حضور دوستان تقدیم میشه.
فایل ملت در پوشه کال بک
کد PHP:
<?php
include("../../../dbconnect.php");include("../../../includes/functions.php");include("../../../includes/gatewayfunctions.php");include("../../../includes/invoicefunctions.php");include("../Mellat/config.php");require_once("../Mellat/lib/nusoap.php");
        
//curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);        //$page = curl_exec ($ch);
        
$client = new nusoap_client('https://pgwsf.bpm.bankmellat.ir/pgwchannel/services/pgw?wsdl');        $namespace='http://interfaces.core.sw.bps.com/';
                 
$resId $_POST['ResCode'];                 $orderId $_POST['SaleOrderId'];                 $verifySaleOrderId $_POST['SaleOrderId'];                 $verifySaleReferenceId $_POST['SaleReferenceId'];                 $invoiceid intval(substr($orderid,0,-3)) ;

        
// Check for an error        $err = $client->getError();        if ($err) {            echo '<h2>Constructor error</h2><pre>' . $err . '</pre>';            die();        }if($_POST['ResCode'] == '0'){$parameters = array(            'terminalId' => $terminalId,            'userName' => $userName,            'userPassword' => $userPassword,            'orderId' => $orderId,            'saleOrderId' => $verifySaleOrderId,            'saleReferenceId' => $verifySaleReferenceId);
        // Call the SOAP method        $result = $client->call('bpVerifyRequest', $parameters, $namespace);        $VerifyAnswer = $result;
if($VerifyAnswer == '0'){$parameters = array(            'terminalId' => $terminalId,            'userName' => $userName,            'userPassword' => $userPassword,            'orderId' => $orderId,            'saleOrderId' => $verifySaleOrderId,            'saleReferenceId' => $verifySaleReferenceId);
        
// Call the SOAP method        $result = $client->call('bpSettleRequest', $parameters, $namespace);        $SetlleAnswer = $result;        if ($SetlleAnswer == '0'){
        
$Pay_Status 'OK'; }

}}else{    
$Pay_Status '';}
if (
$VerifyAnswer <> '0' AND $VerifyAnswer != '' ){              $parameters = array(            'terminalId' => $terminalId,            'userName' => $userName,            'userPassword' => $userPassword,            'orderId' => $orderId,            'saleOrderId' => $verifySaleOrderId,            'saleReferenceId' => $verifySaleReferenceId);
         
$result $client->call('bpInquiryRequest'$parameters$namespace);         $InquiryAnswer $result ;        if ($InquiryAnswer == '0'){
          
$parameters = array(            'terminalId' => $terminalId,            'userName' => $userName,            'userPassword' => $userPassword,            'orderId' => $orderId,            'saleOrderId' => $verifySaleOrderId,            'saleReferenceId' => $verifySaleReferenceId);
        
// Call the SOAP method        $result = $client->call('bpSettleRequest', $parameters, $namespace);        $SetlleAnswer = $result;}else{   $parameters = array(            'terminalId' => $terminalId,            'userName' => $userName,            'userPassword' => $userPassword,            'orderId' => $orderId,            'saleOrderId' => $verifySaleOrderId,            'saleReferenceId' => $verifySaleReferenceId);
        // Call the SOAP method        $result = $client->call('bpReversalRequest', $parameters, $namespace);}}

$action=$SystemURL."viewinvoice.php?id="."$invoiceid;$gatewaymodule "Mellat";$GATEWAY getGatewayVariables($gatewaymodule);if (!$GATEWAY["type"]) die("Module Not Activated");
if (
$Pay_Status == 'OK' ){      # Save to Gateway Log: name, data array, status      addInvoicePayment($invoiceid,$verifySaleReferenceId,$amount,$fee,$gatewaymodule); # Apply Payment to Invoice: invoiceid, transactionid, amount paid, fees, modulename      logTransaction($GATEWAY["name"],$_POST,"Successful");      echo " <script>window.location ='".$action."'</script>";      }else{        # Unsuccessful    logTransaction($GATEWAY["name"],$_POST,"Unsuccessful"); # Save to Gateway Log: name, data array, status
    
echo " <script>window.location ='".$action."'</script>";
}
فایل Pay در پوشه ملت
کد PHP:
<?include("../../../dbconnect.php");?><html><head>

        <script language="javascript" type="text/javascript">                function postRefId (refIdValue) {                        var form = document.createElement("form");                        form.setAttribute("method", "POST");                        form.setAttribute("action", "https://pgw.bpm.bankmellat.ir/pgwchannel/startpay.mellat");                        form.setAttribute("target", "_self");                        var hiddenField = document.createElement("input");                        hiddenField.setAttribute("name", "RefId");                        hiddenField.setAttribute("value", refIdValue);                        form.appendChild(hiddenField);
                        document.body.appendChild(form);                        form.submit();                        document.body.removeChild(form);                }
        </script></head>
<body></body></html><?php



 
require_once("lib/nusoap.php"); include("config.php");
 
$client = new nusoap_client('https://pgwsf.bpm.bankmellat.ir/pgwchannel/services/pgw?wsdl'); $namespace='http://interfaces.core.sw.bps.com/';
 
$invoideid $_POST['ResNum']; $invoideid=intval($invoideid); $dbinvoice mysql_fetch_object(mysql_query("SELECT tblinvoices.total AS amount,tblcurrencies.code AS currency FROM tblinvoices LEFT JOIN tblclients ON tblinvoices.userid=tblclients.id LEFT JOIN tblcurrencies ON tblclients.currency=tblcurrencies.id WHERE tblinvoices.id='$invoideid'")); $amount=str_replace('.00','',$dbinvoice->amount);if ($dbinvoice->currency == 'ریال'){    //nothing    $amount=intval($amount);}else{    $amount = intval($amount)*10;}
 
$orderId $_POST['ResNum'].rand(100,999); $localDate date('Ynd'); $localTime date('His'); $callBackUrl $_POST['SysURL']."/modules/gateways/callback/Mellat.php"$additionalData "" $payerId "0"$userName $parameters = array(               'terminalId' => $terminalId,               'userName' => $userName,               'userPassword' => $userPassword,               'orderId' => $orderId,               'amount' => $amount,               'localDate' => $localDate,               'localTime' => $localTime,               'additionalData' => $additionalData,               'callBackUrl' => $callBackUrl,               'payerId' => $payerId);
        
$result $client->call('bpPayRequest'$parameters$namespace);
        
$resultStr  $result;
        
$res explode (',',$resultStr);      $ResCode $res[0];          $res[1];         if ($ResCode == "0") {             echo 'درحال ورود به سایت بانک ملت ... ';                   echo "<script language='javascript' type='text/javascript'>postRefId('" $res[1] . "');</script>";         } else   {                 echo "<script>alert('امکان اتصال وجود ندارد ، لطفاً دوباره تلاش کنید.');</script>";                 echo " <script>window.location ='".$_POST['SysURL']."/viewinvoice.php?id=$invoideid."'</script>";
                 }



?>
صمیمانه تشکر میشه در راهنمایی و رفع مشکل.