<html>
<?php
function GenerateSaleRequest($merchantId, $merchantPassword, $cardNumber, $expiry, $cvv2, $brand, $amountType,$amountCode, $amount, $eci, $cavv)
{
$xmlDocument = new DOMDocument( "1.0", "UTF-8" );
$posRequest = $xmlDocument->createElement( "PosRequest" );
$originator = $xmlDocument->createElement( "Originator" );
$acquirer = $xmlDocument->createElement( "Acquirer" );
$acquirer->setAttribute( "ID", "1" );
$merchant = $xmlDocument->createElement( "Merchant" );
$merchant->setAttribute( "HostMerchantId", $merchantId);
$merchant->setAttribute( "Password", $merchantPassword );
$trnx = $xmlDocument->createElement( "Trnx" );
$trnx->setAttribute( "Type", "Sale" );
$payment = $xmlDocument->createElement( "Payment" );
$pan = $xmlDocument->createElement( "PAN" );
$pan->setAttribute( "PAN", $cardNumber); // Kart Numarası
$pan->setAttribute( "Expiry", $expiry);
$pan->setAttribute( "CVV2",$cvv2);
$pan->setAttribute( "Brand", $brand);
$pamount = $xmlDocument->createElement("Amount");
$pamount->setAttribute( "Amount", $amount); // 10,25 YTL
$pamount->setAttribute( "Type", $amountType);
$pamount->setAttribute( "Code", $amountCode);
$originator->appendChild($acquirer);
$originator->appendChild($merchant);
$payment->appendChild($pan);
$payment->appendChild($pamount);
if( $eci != "" )
{
$options = $xmlDocument->createElement("Options");
$peci = $xmlDocument->createElement("Item");
$peci->setAttribute("Name", "ECI");
$peci->setAttribute("Value", $eci);
$pcavv = $xmlDocument->createElement("Item");
$pcavv->setAttribute("Name", "CAVV");
$pcavv->setAttribute("Value", $cavv);
$options->appendChild($peci);
$options->appendChild($pcavv);
$payment->appendChild($options);
}
$posRequest->appendChild($originator);
$posRequest->appendChild($trnx);
$posRequest->appendChild($payment);
$xmlDocument->appendChild($posRequest);
return $xmlDocument->saveXML();
}
$request = GenerateSaleRequest("000000000070780", "", "4446760000012552", "200910", "123", "Visa", "1","949", "1100", "", "");
// print $request;
$client = new SoapClient("https://sanalpos-test.ziraatbank.com.tr/?WSDL");
$param=array('parameters' => array('xmlRequest'=>$request));
$result = $client->__call("Process",$param);
print($result->ProcessResult);
$resultDocument = new DOMDocument();
$resultDocument->loadXML($result->ProcessResult);
$resultNode = $resultDocument->getElementsByTagName("Result")->item(0);
$code = $resultNode->getElementsByTagName("Code")->item(0)->nodeValue;
$trnxId = $resultDocument->getElementsByTagName("TrnxID")->item(0)->nodeValue;
$host = $resultDocument->getElementsByTagName("Host")->item(0);
$RC = null;
$message = null;
$authCode = null;
$RRN = null;
if($host != null )
{
foreach($host->childNodes as $node)
{
switch($node->localName)
{
case "RC":
$RC = $node->nodeValue;
break;
case "Message":
$message = $node->nodeValue;
break;
case "AuthCode":
$authCode = $node->nodeValue;
break;
case "RRN":
$RRN = $node->nodeValue;
break;
}
}
}
if( $code == 0 )
print("<br>İşlem Başarılı<br>");
else
print("İşlem İsteği Reddedildi <br>");
print("İşlem Numarası :");print($trnxId);print("<br>");
print("Sanal Pos Cevabı :");print($code);print("<br>");
print("Provizyon Cevabı :");print($RC);print("<br>");
print("Provizyon Mesajı :");print($message);print("<br>");
print("Provizyon Kodu :");print($authCode);print("<br>");
print("Provizyon İşlem No :");print($RRN);print("<br>");
?>
</html>Daha önce Ziraat Bankası sanal pos entegrasyonu yapmadım bu yüzden netten biraz araştırma yaptım yukarıdaki kodları buldum bunları kendinize göre düzenleyip test edebilirsiniz.