مشکل کد من برای پرداخت آنلاین پارسیان

miladanimator

Active Member
سلام دوستان.
من با بانک پارسیان قرار داد بستم و اون ها پین کد و یک فایل payment.php رو برای من فرستادن.

حالا من یک صفحه طراحی کردم که یک فرم داره و مقدار واریزی رو از کاربر میگیره و به صفحه parsian.php ارسال .میکنه .

PHP:
<form method="post" name="pay" id="pay" action="parsian.php" >
<input name="price" type="text" id="price" maxlength="10" size="25">
<input class="button" type="submit" value="send">
</form>
حالادرصفحه parsian.php ابتدا برخی اطلاعاتمورد نیازمو می گیرم و در دیتابیسثبت می کنم. مانند :شماره کاربر و مبلغ و ...

حالا این اطلاعات رو دارم :

PHP:
$price=safeint($_POST["price"]);
$pin = 'MYPARSIANPIN';
$PaymentName = 'parsian';    
$RedirectURL='uuuu.php';
$PayID هم زمان ثبت در دیتابیس با دستور $PayID=mysql_insert_id(); می گیرم .

و حالا با کد زیر سعی دارم authority رو بدست بیارم .



PHP:
switch ($PaymentName) {

    case "parsian" :

        $error="";
        include("nusoap/nusoap.php");
  $soapclient = new soapclient('https://www.pec24.com/pecpaymentgateway/eshopservice.asmx?wsdl','wsdl');
        if(!$soapclient->getError()){
            $soapProxy = $soapclient->getProxy() ;
            if(!$soapclient->getError()){
                   $params = array(
                    'pin' => $pin ,  // this is our PIN NUMBER
                    'amount' => $price,
                    'orderId' => $PayID,
                    'callbackUrl' => $RedirectURL,
                    'authority' => 0,
                    'status' => 1
                );
                $sendParams = array($params) ;
                $res = $soapclient->call('PinPaymentRequest', $sendParams);
                $authority = $res['authority'];
                $status = $res['status'];
    
                if ( ($authority) and ($status==0) )  {
                       $parsURL = "https://www.pec24.com/pecpaymentgateway/"  ;
                       $form="<form name='form_gateway' method='GET' action='$parsURL'><input type='hidden' name='au' value='$authority'></form>";
                    $query="update dynamic_ads_onlinepays set RefNum='$authority' where PayID='$PayID'";
                    mysql_db_query($dbname,$query,$RSconn);
                } else {
                    $error.="ERROR $status";
                        $error.=$soapclient->getError();
                }
            }else{
                    $error.=$soapclient->getError();
            }
        }else{
            $error.=$soapclient->getError();
        }
        
        if($error){
               $form="<form name='form_gateway' method='GET' action='#' onsubmit=\"alert('$error  !')\"></form>";
              echo "<p dir=LTR>";
              echo "ERROR = $error <br /> " ;
              echo "$authority <br />" ;
              echo "$status <br />" ;
              echo "$orderId <br />" ;
              echo "Couldn't get proper authority key from Parsian" ;
              echo "</p>";
              exit;
        }
        break;

}
این کد در برخی موارد مثلا هر 10 بار یک بار جواب میده . اما در اکثر موارد ارور شماره 30 رو بر می گردونه که در راهنما اومده :

Status (byte): [FONT=&quot]کد وضعيت[/FONT]
0: [FONT=&quot]موفق[/FONT]
20, 22: [FONT=&quot]پين فروشنده درست نميباشد[/FONT]
30:[FONT=&quot] عمليات قبلا با موفقيت انجام شده است [/FONT]
34:[FONT=&quot] شماره تراکنش فروشنده درست نميباشد[/FONT]


حالا چند سوال :

1- علت این خطا چیه که همش تکرار می شه؟؟ آیا مشکل از کد های منه ؟؟؟
2- در صورتی که کدهام مشکلی دارن مشکلشون چیه ؟؟
3- در مراحل تست ، چندین بار هم خطای 14 دریافت کردم که در فایل راهنما اشاره ای بهش نشده . این خطا مربوط به چیه؟؟

فایل payment.php i هم که بانک ارسال کرده ضمیمه کردم
 

پیوست ها

  • payment.zip
    1.1 کیلوبایت · بازدیدها: 16

ajomehri

Member
شما روی هاست آپلود کردید یا روی desktop ؟
شاید آی پی ای چیزی چک میکنه ببینه قبلا ثبت شده یا نه ؟؟
 

miladanimator

Active Member
روی سرور تست می کنم . آی.پی و دومین ما هم در پارسیان ثبت شده و همانطور که گفتم در برخی موارد به سایت بانک برای پرداخت منتقل میشیم . اما متاسفانه در بیشتر موارد این خطا رو داریم .
 

جدیدترین ارسال ها

بالا