نمایش نتایج 1 تا 4 از 4

نام تاپیک: مشکل با نمونه سورس درگاه پرداخت بانک ملت

  1. #1

    مشکل با نمونه سورس درگاه پرداخت بانک ملت

    من اسکریپت پرداخت آنلاین بانک ملت رو از یکی دو جا خریدم

    اما تو همشون این موردی که میخوام بگم وجود داره

    این خلاصه کدی هست که تو صفحه بازگشت از بانک باید اجرا بشه

    به ساختارهای شرطی دقت کنید

    مثلا تو خط 14 یک بار error رو چک میکنه خوب اگه اروری داشته باشه شرط خط 15 برقرار میشه و وارد بلاک if میشه حالا مشکل اینه که تو این بلاک دوباره چرا همون کد خط 14 اجرا میشه(آبجکت کلاینت که کاری نکرده )

    در ضمن اگه شرط خط 15 برقرار باشه صددرصد خط 18 اجرا میشه و از اجرای بقیه اسکریپت خارج میشه و هیچ وقت به متد استعلام وضعیت تراکنش و بقیه چیزا نمیرسه

    خواهشا دوستانی که تو این زمینه کار کردن راهنمایی کنن

    <?php
    $RefId = $_POST['RefId']; //RefId
    $ResCode = $_POST['ResCode']; //ResCode
    $SaleOrderId = $_POST['SaleOrderId']; //Order Id
    $SaleReferenceId = $_POST['SaleReferenceId']; //Transaction

    $client = new nusoap_client("https://bpm.shaparak.ir/pgwchannel/services/pgw?wsdl");

    $result = $client->call("bpVerifyRequest", $parameters, $namespace);

    if ($client->fault) {
    die();
    } else {
    $err = $client->getError();
    if ($err) {
    $err = $client->getError();
    if ($err) {
    die();
    }
    $result = $client->call("bpInquiryRequest", $parameters, $namespace);

    if ($client->fault) {
    die();
    } else {
    $err = $client->getError();
    if ($err) {
    $err = $client->getError();
    if ($err) {
    die();
    }
    $result = $client->call("bpReversalRequest", $parameters, $namespace);
    if ($client->fault) {
    die();
    } else {
    $err = $client->getError();
    if ($err) {
    die();
    } else {
    //echo "Reversal Response is :" . $resultStr;
    }
    }
    echo '<h2>Error</h2><pre>' . $err . '</pre>';
    die();
    } else {
    //SETTLE REQUEST
    $err = $client->getError();
    if ($err) {
    die();
    }
    $result = $client->call("bpSettleRequest", $parameters, $namespace);

    if ($client->fault) {
    die();
    } else {
    $err = $client->getError();
    if ($err) {
    die();
    } else {
    //Update Table,Save Settle Status
    //Note: Successful Settle means that sale is settled.
    }
    //echo "Settle Response is :" $resultStr;
    }
    //echo "Inquiry Response is :" . $resultStr;
    }
    //end display the result
    }
    //end check for error
    //Display the reeor
    echo '<h2>Error</h2><pre>' . $err . '</pre>';
    die();
    } else {
    $err = $client->getError();
    if ($err) {
    die();
    }
    $result = $client->call("bpSettleRequest", $parameters, $namespace);

    if ($client->fault) {
    die();
    } else {
    $err = $client->getError();
    if ($err) {
    die();
    } else {
    $query = "UPDATE payment ";
    $query .= " SET RefId='{$RefId}',SaleRefId='{$SaleReferenceId}',Re sCode='{$ResCode}' ";
    $query .= " WHERE Id='{$SaleOrderId}' ";
    $user_set = mysqli_query($connection, $query);
    //echo "settle Response is :" . $resultStr;
    }
    }
    }

    }


    ?>
    <form id="form1" runat="server">

    <fieldset>
    <legend>نتیجه پرداخت</legend>

    <div class="bankMellatLogo">
    <img alt="" src="img/BM_Logo.png"/>
    </div>
    <?php
    if ($ResCode == 0) {
    ?>
    <img src="img/accept.png">
    <?php
    } else {
    ?>
    <img src="img/notaccept.png">
    <?php
    }
    ?>
    <table>
    <tr>
    <td>رسید پرداخت:</td>
    <td>
    <span><?php echo $RefId; ?></span>
    </td>
    </tr>
    <tr>
    <td>کد برگشتی از درگاه:</td>
    <td>
    <span><?php echo response($ResCode); ?></span>
    </td>
    </tr>
    <tr>
    <td>شماره پرداخت:</td>
    <td>
    <span><?php echo $SaleOrderId; ?></span>
    </td>
    </tr>
    <tr>
    <td>شماره مرجع پرداخت:</td>
    <td>
    <span><?php echo $SaleReferenceId; ?></span>
    </td>
    </tr>
    </table>

    </fieldset>
    </form>



  2. #2

    نقل قول: مشکل با نمونه سورس درگاه پرداخت بانک ملت

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

        $err = $client->getError();
    if ($err) {
    $err = $client->getError();
    if ($err) {
    die(); }


    باید به این شکل شود :

        $err = $client->getError();
    if ($err) {
    die(); }


    همچنین استفاده از die برای خطا گزینه مناسبی نیست و در هنگام بروز خطا هیچ هندل مناسبی ندارد و صفحه نتیجه سفید خواهد شد ، بهتر است از بلاک های try , catch استفاده شود.

    و در نهایت متد getError وقتی مقدار میگیرد که به هر دلیل نتوان به وب سرویس متصل شد ( مثلا وب سرویس بانک قطع است ... ) پس دیگه متد های بعد از آن اهمیتی ندارد .

  3. #3

    نقل قول: مشکل با نمونه سورس درگاه پرداخت بانک ملت

    و در نهایت متد getError وقتی مقدار میگیرد که به هر دلیل نتوان به وب سرویس متصل شد ( مثلا وب سرویس بانک قطع است ... ) پس دیگه متد های بعد از آن اهمیتی ندارد .
    ولی طبق مستندات شرکت بهپرداخت ملت گفته اگه به هر دلیلی نتونستی نتیجه متد bpVerifyRequest در زمان انجام تراکنش مطلع بشی از
    متد bpInquiryRequest برای استعلام وضعیت تراکنش استفاده بشه
    حالا چه موقعیه که متد bpVerifyRequest نتیجه اش نمیاد که اینکارو بکنبم
    میشه روند اجرای این کد رو اصلاح کنید

  4. #4

    نقل قول: مشکل با نمونه سورس درگاه پرداخت بانک ملت

    دوستانی که با درگاه بانک ملت کار کردن و تجربه دارن لطفا راهنمایی کنن

تاپیک های مشابه

  1. سوال: مشکل در راه اندازی درگاه پرداخت بانک ملت
    نوشته شده توسط abbaszz در بخش PHP
    پاسخ: 6
    آخرین پست: شنبه 03 بهمن 1394, 12:49 عصر
  2. مشکل هنگام اتصال به درگاه پرداخت بانک ملت
    نوشته شده توسط aks2download در بخش PHP
    پاسخ: 0
    آخرین پست: یک شنبه 11 مرداد 1394, 13:58 عصر
  3. مشکل در استفاده از درگاه پرداخت بانک ملت
    نوشته شده توسط phonixone2 در بخش ASP.NET Web Forms
    پاسخ: 2
    آخرین پست: جمعه 17 خرداد 1392, 15:01 عصر

قوانین ایجاد تاپیک در تالار

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