کد:
<?
////********************************************************////
//// Bank Mellat Gateways V 1.0 Module 4 WHMCS ////
////********************************************************////
include("../../../dbconnect.php");
include("../../../includes/functions.php");
include("../../../includes/gatewayfunctions.php");
include("../../../includes/invoicefunctions.php");
include("../Mellat/config.php");
require_once("../Mellat/lib/nusoap.php");
//curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
//$page = curl_exec ($ch);
$client = new nusoap_client('https://pgws.bpm.bankmellat.ir/pgwchannel/services/pgw?wsdl');
$namespace='http://interfaces.core.sw.bps.com/';
$resId = $_POST['ResCode'];
$orderId = $_POST['SaleOrderId'];
$verifySaleOrderId = $_POST['SaleOrderId'];
$verifySaleReferenceId = $_POST['SaleReferenceId'];
$invoiceid = $_REQUEST['iid'] ;
// Check for an error
$err = $client->getError();
if ($err) {
echo '<h2>Constructor error</h2><pre>' . $err . '</pre>';
die();
}
$parameters = array(
'terminalId' => $terminalId,
'userName' => $userName,
'userPassword' => $userPassword,
'orderId' => $orderId,
'saleOrderId' => $verifySaleOrderId,
'saleReferenceId' => $verifySaleReferenceId);
// Call the SOAP method
$result = $client->call('bpVerifyRequest', $parameters, $namespace);
$err = $client->getError();
$VerifyAnswer = $result;
if( !$err and isset($result) and $result==0 and $VerifyAnswer == '0'){
$parameters = array(
'terminalId' => $terminalId,
'userName' => $userName,
'userPassword' => $userPassword,
'orderId' => $orderId,
'saleOrderId' => $verifySaleOrderId,
'saleReferenceId' => $verifySaleReferenceId);
// Call the SOAP method
$result2 = $client->call('bpSettleRequest', $parameters, $namespace);
$err = $client->getError();
$SetlleAnswer = $result2;
if (!$err and isset($result2) and $result2==0 and $SetlleAnswer == '0'){
$Pay_Status = 'OK'; }
}
if ($VerifyAnswer <> '0' AND $VerifyAnswer != '' ){
$parameters = array(
'terminalId' => $terminalId,
'userName' => $userName,
'userPassword' => $userPassword,
'orderId' => $orderId,
'saleOrderId' => $verifySaleOrderId,
'saleReferenceId' => $verifySaleReferenceId);
$result = $client->call('bpInquiryRequest', $parameters, $namespace);
$InquiryAnswer = $result ;
if ($InquiryAnswer == '0'){
$parameters = array(
'terminalId' => $terminalId,
'userName' => $userName,
'userPassword' => $userPassword,
'orderId' => $orderId,
'saleOrderId' => $verifySaleOrderId,
'saleReferenceId' => $verifySaleReferenceId);
// Call the SOAP method
$result = $client->call('bpSettleRequest', $parameters, $namespace);
$SetlleAnswer = $result;
}else{
$parameters = array(
'terminalId' => $terminalId,
'userName' => $userName,
'userPassword' => $userPassword,
'orderId' => $orderId,
'saleOrderId' => $verifySaleOrderId,
'saleReferenceId' => $verifySaleReferenceId);
// Call the SOAP method
$result = $client->call('bpReversalRequest', $parameters, $namespace);
}
}
$action=$SystemURL."viewinvoice.php?id="."$invoiceid" ;
$gatewaymodule = "Mellat";
$GATEWAY = getGatewayVariables($gatewaymodule);
if (!$GATEWAY["type"]) die("Module Not Activated");
if ($Pay_Status == 'OK' ){
# Save to Gateway Log: name, data array, status
addInvoicePayment($invoiceid,$verifySaleReferenceId,$amount,$fee,$gatewaymodule); # Apply Payment to Invoice: invoiceid, transactionid, amount paid, fees, modulename
logTransaction($GATEWAY["name"],$_POST,"Successful");
echo " <script>window.location ='".$action."'</script>";
}else{
# Unsuccessful
logTransaction($GATEWAY["name"],$_POST,"Unsuccessful"); # Save to Gateway Log: name, data array, status
echo " <script>window.location ='".$action."'</script>";
}