<?php
/*
Mellat Iranian Bank payment component for cakePHP version 0.1 Beta 1. ;
Rememeber that you need nusop libraries and copy them in to Vendors folder of your cakePHP Application. ;
Written by Vahid Alimohamadi ;
http://cybercoder.ir ;
It is Free to use and develop by anyone. ;
*/
?>
<script language="javascript" type="text/javascript">
function postRefId (refIdValue) {
var form = document.createElement("form");
form.setAttribute("method", "POST");
form.setAttribute("action", "https://pgw.bpm.bankmellat.ir/pgwchannel/startpay.mellat");
form.setAttribute("target", "formresult");
var hiddenField = document.createElement("input");
hiddenField.setAttribute("name", "RefId");
hiddenField.setAttribute("value", refIdValue);
form.appendChild(hiddenField);
document.body.appendChild(form);
form.submit();
document.body.removeChild(form);
}
</script>
<?php
App::import('Vendor','nusoap');
Class MellatPaymentComponent extends object {
function startup(&$controller)
{
$this->controller = $controller;
}
private function getResRef($amount=0){
$orderID =rand();
$date = date("Ymd");
$time = date("His");
$parameters = array(
'terminalId' => 'the_terminal_id_that_obtained_from_bank',
'userName' => 'the_username_that_obtained_from_bank',
'userPassword' => 'the_password_for_the_username',
'orderId' => $orderID,
'amount' => $amount,
'localDate' => $date,
'localTime' => $time,
'additionalData' => '',
'callBackUrl' => 'http://your_payment_address',
'payerId' => "0"
);
$client = new nusoap_client('https://pgws.bpm.bankmellat.ir/pgwchannel/services/pgw?wsdl');
$namespace='http://interfaces.core.sw.bps.com/';
return $client->call('bpPayRequest', $parameters, $namespace );
}
public function paymentRequest($amount=0) {
$ResRef=$this->getResRef($amount) ;
$ResRef=explode(',',$ResRef) ;
$ResCode=$ResRef[0] ;
settype($ResCode,"string");
if (!empty($ResRef[1])) {
$RefId=$ResRef[1] ;
settype($RefId,"string") ;
}
/* if $ResCode variable contains a non-zero number then You can Map error numbers to Messages yourself */
if (isset($RefId)) echo "<script language='javascript' type='text/javascript'>postRefId('" . $RefId . "');</script>";
}
}
?>