• 27-06-2014, 17:17:37
    #1
    Merhaba arkadaşlar, elinde ziraat bankası için sanalpos çekim örneği olan varsa paylaşabilirmi?
    çok acil lazım.
  • 27-06-2014, 18:11:50
    #2
    Ben de bir kaç gündür Opencart entegrasyonu ile uğraşıyorum.
  • 27-06-2014, 22:05:32
    #3
    <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.