• 31-07-2015, 16:50:14
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    curl_setopt($ch, CURLOPT_POSTFIELDS,
    '<Message xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">'
    .'<APIVersion>1.0.0</APIVersion>'
    .'<OkUrl>'.$basariliislem.'</OkUrl>'
    .'<FailUrl>'. $basarisizislem.'</FailUrl>'
    .'<HashData>'.$HashData.'</HashData>'
    .'<MerchantId>'.$MerchantId.'</MerchantId>'
    .'</Message>');

    curl ile gönderilecek (Örnek kısaltılmış) böyle bir xml verim var.
    veriyi gönderdiğimde karşı taraftan aşağıdaki gibi uyarı mesajı geliyor.
    There is an error in XML document (1, 222).

    karşı taraf requesti görmemiz gerekiyor diyor. Yani istediğ XML verisinin çıktısını görmek

    örnek
    <Message xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <APIVersion>1.0.0</APIVersion>
    <OkUrl>https://site.com/basarili</OkUrl>
    <FailUrl>https://site.com/basarisiz</FailUrl>
    <HashData>112223445566</HashData>
    <MerchantId>12345</MerchantId>
    </Message>

    sorum yukarıdaki veriyi aşağıdaki gibi nasıl yazdırabilirim.
  • 01-08-2015, 03:25:02
    #2
    Merhaba hocam,

    <?xml version="1.0" encoding="UTF-8" standalone="no" ?>
    şeklinde bir header verisi ile beraber göndermeyi denemeni öneririm.
  • 01-08-2015, 21:07:20
    #3
    Aşağıdaki gibi yol izleyebilirsin.

    						
    <?php
    						$POST_EDILECEK_URL = 'https://www.xxx.com';
    						
    						$XML_VERISI = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
    										<Message xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    											<APIVersion>1.0.0</APIVersion>
    											<OkUrl>https://site.com/basarili</OkUrl>
    											<FailUrl>https://site.com/basarisiz</FailUrl>
    											<HashData>112223445566</HashData>
    											<MerchantId>12345</MerchantId>
    										</Message>";
    					   
    						$ch = curl_init($POST_EDILECEK_URL);
    						curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
    						curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
    						curl_setopt($ch, CURLOPT_POST, 1);
    						curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/xml"));
    						curl_setopt($ch, CURLOPT_POSTFIELDS, $XML_VERISI);
    						curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    						$results = curl_exec($ch);
    						curl_close($ch);
    
    						//gelen cevabı okuma
    						preg_match("/<donenveritag1>(.*)<\/donenveritag1>/", $results, $donenveritag1temizveri);
    						preg_match("/<donenveritag2>(.*)<\/donenveritag2>/", $results, $donenveritag2temizveri);
    						
    						echo $donenveritag1temizveri.' '.$donenveritag2temizveri;
    						?>
  • 06-08-2015, 12:33:39
    #4
    Cevaplar için teşekkür ederim ama, benim sorum veriyi post etmek değil

    post edilecek tüm veriyi ekranda görmek istiyorum.

    yani explorer penceresinde

    <Message xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <APIVersion>1.0.0</APIVersion>
    <OkUrl>https://site.com/basarili</OkUrl>
    <FailUrl>https://site.com/basarisiz</FailUrl>
    <HashData>112223445566</HashData>
    <MerchantId>12345</MerchantId>
    </Message>

    böyle yazılı görmek istiyorum, nasıl print edebilirim



    gurkanbicer adlı üyeden alıntı: mesajı görüntüle
    Merhaba hocam,

    <?xml version="1.0" encoding="UTF-8" standalone="no" ?>
    şeklinde bir header verisi ile beraber göndermeyi denemeni öneririm.
    bulerobul adlı üyeden alıntı: mesajı görüntüle
    Aşağıdaki gibi yol izleyebilirsin.

    						
    <?php
    						$POST_EDILECEK_URL = 'https://www.xxx.com';
    						
    						$XML_VERISI = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>
    										<Message xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    											<APIVersion>1.0.0</APIVersion>
    											<OkUrl>https://site.com/basarili</OkUrl>
    											<FailUrl>https://site.com/basarisiz</FailUrl>
    											<HashData>112223445566</HashData>
    											<MerchantId>12345</MerchantId>
    										</Message>";
    					   
    						$ch = curl_init($POST_EDILECEK_URL);
    						curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
    						curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
    						curl_setopt($ch, CURLOPT_POST, 1);
    						curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/xml"));
    						curl_setopt($ch, CURLOPT_POSTFIELDS, $XML_VERISI);
    						curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    						$results = curl_exec($ch);
    						curl_close($ch);
    
    						//gelen cevabı okuma
    						preg_match("/<donenveritag1>(.*)<\/donenveritag1>/", $results, $donenveritag1temizveri);
    						preg_match("/<donenveritag2>(.*)<\/donenveritag2>/", $results, $donenveritag2temizveri);
    						
    						echo $donenveritag1temizveri.' '.$donenveritag2temizveri;
    						?>
  • 06-08-2015, 12:51:13
    #5
    kodun en sonuna;

    @header("Content-type: text/xml");
    echo $XML_VERISI;
  • 06-08-2015, 13:13:48
    #6
    recepuncu adlı üyeden alıntı: mesajı görüntüle
    kodun en sonuna;

    @header("Content-type: text/xml");
    echo $XML_VERISI;

    tek satır bir string olarak verdi.

    1.0.0https://site.com/basarilihttps://site.com/basarisiz11222344556612345

    yukarıdaki sonuç yazdırıldı
    henüz bu yöntemde sonuç vermedi
  • 06-08-2015, 13:23:31
    #7
    Şunu anlamadım. verilerin doğru gidip gitmediğini mi görmek istiyorsunuz?
  • 06-08-2015, 13:23:33
    #8
    göndermeye çalıştığın $XML_VERISI hatalı aşağıdaki gibi değiştir çalışır.

    $XML_VERISI = '<?xml version="1.0" encoding="UTF-8"?> 
    					<Message xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
    						<APIVersion>1.0.0</APIVersion> 
    						<OkUrl>https://site.com/basarili</OkUrl> 
    						<FailUrl>https://site.com/basarisiz</FailUrl> 
    						<HashData>112223445566</HashData> 
    						<MerchantId>12345</MerchantId> 
    					</Message>'; 
    	
    	@header("Content-type: text/xml");	
    	echo $XML_VERISI;
  • 06-08-2015, 14:32:22
    #9
    bulerobul adlı üyeden alıntı: mesajı görüntüle
    Şunu anlamadım. verilerin doğru gidip gitmediğini mi görmek istiyorsunuz?
    Evet doğrudur, karşı taraf ne gönderdiğimi mail ortamında görmek istiyor,
    normalde veri burada yazdığım kadar kısa değil, çok uzun,
    bende veriyi karşı tarafın istediği gibi yazdırıp kopyala yapıştır yapıp mail atmak istiyorum.


    recepuncu adlı üyeden alıntı: mesajı görüntüle
    göndermeye çalıştığın $XML_VERISI hatalı aşağıdaki gibi değiştir çalışır.

    $XML_VERISI = '<?xml version="1.0" encoding="UTF-8"?> 
    					<Message xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
    						<APIVersion>1.0.0</APIVersion> 
    						<OkUrl>https://site.com/basarili</OkUrl> 
    						<FailUrl>https://site.com/basarisiz</FailUrl> 
    						<HashData>112223445566</HashData> 
    						<MerchantId>12345</MerchantId> 
    					</Message>'; 
    	
    	@header("Content-type: text/xml");	
    	echo $XML_VERISI;
    şimdi deneyeceğim, sonucu gene yazarım.
    aslında bu benim yazdığım bir kod değil karşı tarafın tam olarak benden istediği yazdım.