نمایش نتایج: از شماره 1 تا 5 , از مجموع 5

موضوع: InvoiceID غلط در ماژول پرداخت بانک ملت

  1. #1
    عضو انجمن
    تاریخ عضویت
    Nov 2012
    نوشته ها
    120
    تشکر تشکر کرده 
    2
    تشکر تشکر شده 
    80
    تشکر شده در
    59 پست

    پیش فرض InvoiceID غلط در ماژول پرداخت بانک ملت

    با سلام
    دوستان ماژول درگاه بانک ملت برای هر پرداخت کاربر رو به اینوی ای دی 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>";
                     }



    ?>
    صمیمانه تشکر میشه در راهنمایی و رفع مشکل.
    شمسی ساز WHMC تمامی نسخه ها
    تنها يك رئيس وجود دارد. مشتري.او مي تواند هر كسي در شركت،از مديرعامل گرفته تا پائين را اخراج كندتنها با خرج كردن پولش در جايي ديگر

  2. # ADS




     

  3. #2
    عضو انجمن
    تاریخ عضویت
    Nov 2012
    نوشته ها
    120
    تشکر تشکر کرده 
    2
    تشکر تشکر شده 
    80
    تشکر شده در
    59 پست

    پیش فرض پاسخ : InvoiceID غلط در ماژول پرداخت بانک ملت

    برای واضح تر شدن مشکل:
    بعد از پرداخت شماره فاکتور 2250 مثلا با لینک
    whmcs.com/viewinvoice.php?id=2250
    به
    whmcs.com/viewinvoice.php?id=0
    و پرداخت نشده انجام میگیره. و یک تصحیح دیگر:
    ...
    ردایرکت میکنه که در فایل Callback هست...
    صحیح تر

    ...ردایرکت میکنه که در فایلMellat.php که در پوشه Callback هست...
    هست.
    ویرایش توسط Cpt.Price : June 3rd, 2013 در ساعت 11:18
    شمسی ساز WHMC تمامی نسخه ها
    تنها يك رئيس وجود دارد. مشتري.او مي تواند هر كسي در شركت،از مديرعامل گرفته تا پائين را اخراج كندتنها با خرج كردن پولش در جايي ديگر

  4. #3
    عضو انجمن
    تاریخ عضویت
    Nov 2012
    نوشته ها
    120
    تشکر تشکر کرده 
    2
    تشکر تشکر شده 
    80
    تشکر شده در
    59 پست

    پیش فرض پاسخ : InvoiceID غلط در ماژول پرداخت بانک ملت

    مورد دیگه ای رو اضافه کنم این هست که بعد از اتصال به درگاه بانک ملت و انصراف از پرداخت باز هم اینوی آی دی رو 0 محسوب میکنه.
    شمسی ساز WHMC تمامی نسخه ها
    تنها يك رئيس وجود دارد. مشتري.او مي تواند هر كسي در شركت،از مديرعامل گرفته تا پائين را اخراج كندتنها با خرج كردن پولش در جايي ديگر

  5. #4
    عضو انجمن milad221 آواتار ها
    تاریخ عضویت
    Mar 2011
    نوشته ها
    423
    تشکر تشکر کرده 
    185
    تشکر تشکر شده 
    577
    تشکر شده در
    407 پست

    پیش فرض پاسخ : InvoiceID غلط در ماژول پرداخت بانک ملت

    ماژول های رایگان عموما مشکلات دارن
    از ماژول نالرز استفاده کنید درست کار میکنه
    رویاهاتو با فونیکس کلاد نقاشی کن

    https://phonixcloud724.com

  6. #5
    عضو انجمن
    تاریخ عضویت
    Nov 2012
    نوشته ها
    120
    تشکر تشکر کرده 
    2
    تشکر تشکر شده 
    80
    تشکر شده در
    59 پست

    پیش فرض پاسخ : InvoiceID غلط در ماژول پرداخت بانک ملت

    ممنون از پاسخ شما که بسیار کمک کرد!
    99% ماژول صحیح هست و به محض اینکه این مشکل هم حل بشه برای همه دوستان خواهم گذاشت که مبالغ گذاف 50 هزار تومانی رو متحمل نشند توی این شرایط اقتصادی.
    تمام مراحل صحیح هست فقط شماره فاکتور رو که میگیره از سرور بانک 0 میشناسه یا اصلا نمیگیره.
    شمسی ساز WHMC تمامی نسخه ها
    تنها يك رئيس وجود دارد. مشتري.او مي تواند هر كسي در شركت،از مديرعامل گرفته تا پائين را اخراج كندتنها با خرج كردن پولش در جايي ديگر

اطلاعات موضوع

کاربرانی که در حال مشاهده این موضوع هستند

در حال حاضر 1 کاربر در حال مشاهده این موضوع است. (0 کاربران و 1 مهمان ها)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •