ظاهراً کدتون نباید مشکلی داشته باشه و مشکل توی وب سرویسه. اما با اینحال این کد رو تست کنید:

$parameters = array(
'terminalId' => 'terminal_id', #terminal id ke az bank daryaft kardid
'userName' => 'username', #username ke az band daryaft kardid
'userPassword' => 'password', #password ke az bank daryaft kardid
'orderId' => rand(),
'amount' => $amount,
'localDate' => date('Ymd'),
'localTime' => date('H:i:s'),
'additionalData' => '',
'callBackUrl' => 'http://'.$_SERVER['SERVER_NAME'].'users/member/payment/pay/callback/id:' . $this->Auth->user('id'),
'payerId' => '0'
);

$client = new NuSOAP_Client('https://pgws.bpm.bankmellat.ir/pgwchannel/services/pgw?wsdl', 'wsdl');
$namespace = 'http://interfaces.core.sw.bps.com/';
if ($err = $client->getError()) {
echo '<h2>Constructor error</h2><pre>' . $err . '</pre>';
exit;
}
elseif ($client->fault) {
echo '<h2>Fault</h2><pre>';
print_r($result);
echo '</pre>';
exit;
}
else {
return($client->call('bpPayRequest', $parameters, $namespace));
}

اگه جواب نداد، خط آخر بجای return از var_dump استفاده کنید ببینیم چی چاپ میشه.