• 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
بانک پارسیان
#1
یکی لطف کنه به ما یاد بده چطور با این کار کنیم.
فایلی که بانک ارسال کرده اینه:
کد پی‌اچ‌پی:
<?php


//  this function is to get proper authority key from Parsian
function gotoParsian () {

  include(
"nusoap/nusoap.php");

  
$soapclient = new soapclient('https://www.pec24.com/pecpaymentgateway/eshopservice.asmx?wsdl','wsdl');
  if (!
$err $soapclient->getError())
   
$soapProxy $soapclient->getProxy() ;

  if ( (!
$soapclient) OR ($err $soapclient->getError()) ) {
    
$error .= $err "<br />" ;
    echo 
$error ;
  } else {
    
$amount intval($_POST['Amount']) ;  // here is the posted amount
    
$orderId getResNum( .... ) ; // this function is internal which will get order id
    
$authority ;  // default authority
    
$status ;    // default status
    
$callbackUrl "payment/paid_parsian/" // site call back Url

    
$params = array(
                 
'pin' => ... ,  // this is our PIN NUMBER
                
'amount' => $amount,
                
'orderId' => $orderId,
                
'callbackUrl' => $callbackUrl,
                
'authority' => $authority,
                
'status' => $status
              
);
    
$sendParams = array($params) ;
    
$res $soapclient->call('PinPaymentRequest'$sendParams);

    
$authority $res['authority'];
    
$status $res['status'];

    if ( (
$authority) and ($status==0) )  {
       
// this is a succcessfull connection
       
...
       ...
       ...

       
$parsURL "https://www.pec24.com/pecpaymentgateway/?au=" $authority ;
       
redirectToURL ($parsURL) ;

       exit() ;
       die() ;
       return;

    } else {
       
// this is unsucccessfull connection
      
echo "<p dir=LTR>";
      if (
$err=$soapclient->getError()) {
       echo 
"ERROR = $err <br /> " ;
      }
      echo 
"$authority <br />" ;
      echo 
"$status <br />" ;
      echo 
"$orderId <br />" ;
      echo 
"Couldn't get proper authority key from Parsian" ;
      echo 
"</p>";

    }

  }
  .... 
// SHOW HTML PART

}

//  this function is to Validate Payment
function check_Payment_Parsian () {

  include(
"nusoap/nusoap.php");

  
$authority $_REQUEST['au'];
  
$status $_REQUEST['rs'];

  if (
$authority) {
    
// here we update our database
    
...
  }

  if ( (
$status==0) and (checkDataBase(...)) ) {
    
$soapclient = new soapclient('https://www.pec24.com/pecpaymentgateway/eshopservice.asmx?wsdl','wsdl');

    if ( (!
$soapclient) OR ($err $soapclient->getError()) ) {
       
// this is unsucccessfull connection
      
echo  $err "<br />" ;

    } else {
      
$status ;   // default status
      
$params = array(
                
'pin' => ... ,  // this is our PIN NUMBER
                 
'authority' => $authority,
                
'status' => $status ) ; // to see if we can change it
      
$sendParams = array($params) ;
      
$res $soapclient->call('PinPaymentEnquiry'$sendParams);
      
$status $res['status'];

      if (
$status==0) {
       
// this is a succcessfull payment
       // we update our DataBase

      
} else {

       
// this is a UNsucccessfull payment
       // we update our DataBase

        
echo  "Couldn't Validate Payment with Parsian "  ;

      }

    }


  } else {
       
// this is a UNsucccessfull payment

  
}

  .... 
// SHOW HTML PART

}


?>

اگه کسی فایل کار با بانک سامان رو هم بده ممنون می شم.
بانک دیگه ای هم پرداخت آنلاین داره یا همه از درگاه این دوتا بانک این کارو می کنن؟؟؟
همه جوره اش رو داریم ظاهرن
  پاسخ
تشکر شده توسط :
#2
دوستان میشه جواب ایشون رو بگین؟ ما هم یه چیزی یاد بگیریمBlush
بنده طعم ايمان را نمي چشد، تا اينكه دريابد آنچه اتفاق نيفتاده است نمي شد كه اتفاق بيفتد؛و آنچه شده و اتفاق افتاده است,نمي شد كه نشود و اتفاق نيفتد....حضرت علي(ع)
  پاسخ
تشکر شده توسط :
#3
تابع اول میایی و یک سری اطلاعات با soap به بانک ارسال می کنه. شامل مبلغ فاکتور شماره فاکتور(باید یونیک باشه) و همچنین call back url که همون urlی هست که بعد از پرداخت کاربر رو به اون باید بفرسته. (فکر کنم باید نشونی کامل که با http شروع میشه باشه) بعد که این اطلاعات رو ارسال می کنی در صورت صحت اطلاعات (مثل مبلغ درست یا یونیک بودن شماره فاکتور و ... که توی داکیومنت گفته شده) برات یک سری مقادیر بر می گردونه که یکیش authority هست. تو این مقدار رو می گیری و با توجه به این مقدار کاربر رو به صفحه پرداخت ارسال می کنی.

"https://www.pec24.com/pecpaymentgateway/?au=" . $authority ;

بعد که کاربر کارش تموم میشه (چه موفقیت آمیز باشه چه نباشه) به call back url کاربر رو ارسال می کنه به همراه یک سری پارامتر . تابع check_Payment_Parsian توی همین صفحه صدا زده میشه یک سری پارامتر رو از POST می گیره و از طریق وب سرویس از بانک می پرسه وضعیت این پروسس چطور بوده. یا میگه موفقیت آمیز بوده یا شکست. که علت شکست رو هم با کد بهت میگه. دیگه اگر موفقیت آمیز بود ادامه کار رو میری.

بانک سامان هم تقریبا همینه. ولی اون مستقیم اطلاعات مقدار پرداختی و ... رو به همراه کاربر می فرستی بانک . و بعد بانک بهت میگه که این کاربر اینقدر پرداخت کرده و ... .

بانکهای ملی و صادرات و ... هم پرداخت دارن که همه اونها از یک استاندارد (اسمش یادم رفته ولی آمریکایی هست) استفاده می کنن. یعنی کد نویسیشون یکی هست.
  پاسخ
تشکر شده توسط : Reza


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان