متد برگشت هم برات مینویسم امیدوارم به دردت بخوره .
public function verify($price = NULL ,$order_id = NULL , $au = NULL)
{
//print_r($_POST);
$RefId = @$_POST['RefId']; // notNeed
$ResCode = @$_POST['ResCode'];
$SaleOrderId = (int) @$_POST['SaleOrderId'];
$SaleReferenceId = @$_POST['SaleReferenceId'];
//Logs::model()->add('SaleReferenceId',$SaleReferenceId .'-'.$RefId);

$this->SaleReferenceId = $SaleReferenceId;
/**/
//check
if($SaleOrderId != $order_id+5400 or $RefId!=$au or ! isset($_POST['ResCode']))
{
Logs::model()->add('برگشت بانک ملت','خطا : ورودی نامعتبر است !');
return false;
}

if($ResCode !=0)
{
return false;
#Logs::model()->add('برگشت بانک ملت','خطا : پرداخت انجام نشد .');
}

$client = new nusoap_client('https://pgws.bpm.bankmellat.ir/pgwchannel/services/pgw?wsdl');
$err = $client->getError();
if ($err)
{
Logs::model()->add('برگشت بانک ملت',"_خطا : " . strip_tags($err) );
return false;
}


$parameters = array(
'terminalId' => self::terminalID ,
'userName' => self::username ,
'userPassword' => self::password ,
'orderId' => $SaleOrderId ,
'saleOrderId' => $SaleOrderId ,
'saleReferenceId' => $SaleReferenceId
);

// Call the SOAP method
unset($result);
$result = $client->call('bpVerifyRequest', $parameters,'http://interfaces.core.sw.bps.com/');

// Check for a fault
//if ($client->fault)
//Logs::model()->add('برگشت بانک ملت','_خطا در اتصال به بانک .');


$err = $client->getError();
if ($err)
{
Logs::model()->add('برگشت بانک ملت',"__خطا : " . strip_tags($err) );
return false;
}


if(isset($result) and $result==0)
{
//settel
unset($result);
$result = $client->call('bpSettleRequest', $parameters,'http://interfaces.core.sw.bps.com/');
if ($client->fault)
{
Logs::model()->add('برگشت بانک ملت','خطا در اتصال به بانک .');
return false;
}


$err = $client->getError();
if ($err)
{
Logs::model()->add('برگشت بانک ملت',"خطا : " . strip_tags($err) );
return false;
}


if(isset($result) and $result==0)
{
return true;
}
}
return false;
}