jonq Mesaj tarihi: Temmuz 12, 2013 Paylaş Mesaj tarihi: Temmuz 12, 2013 Yapmakta olduğum bir projede SMS ile onay alınması gereken bir durum mevcut. Bunun içinde anlaşılan SMS sunucusu hizmeti veren firmada bu işi SOAP ile yapmışlar. SOAP'a ilk defa bulaştım ( bulaşmaz olaydım ) ama internette doğru dürüst bir kaynak yok. Aynı kodları değişkenleri değiştirip ezbere cümlelerle kopyala yapıştır yapmışlar sanki. Bir noktada kitlendim kaldım, bir çözümde bulamadım. Nette yaptığım araştırmaya göre bu işlemleri 3 ayrı dosyada halletmem gerekiyormuş. 1. dosya SoapClient işlemleri 2. dosya SoapServer 3. dosya WSDL dosyası $client = new SoapClient($wsdl, array('trace' => $trace, 'exceptions' => $exceptions)); $response = $client->startMobile($xml_array); 1. Dosya da SMS sunucusunun istediği parametreleri hazırlayıp soapclient ile bana verilen SMS sunucusundaki WSDL linkine post ediyorum. Sunucu ise bu bilgileri sorunsuz aldığına dair bana "OK" dönüyor. Cep telefonuma SMS de sorunsuz geliyor. Bu noktada bir sıkıntım yok. Kullanıcıya gönderilen SMS'in onaylanması için 5dk ya kadar bir süre var ve bu süre içinde kullanıcı onaylar yada onaylamaz ise sunucu bana SMS'in son durumu ile ilgili tekrar geri dönüş yapıyor. Sorunum ise ben bu geri dönüşü tekrar nasıl yakalayacağımı çözemedim. Kendi hostumda bir WSDL dosyası oluşturup SMS sunucusunun post etmesi için linkini de onlara verdim. Ancak bundan sonrası meçhul. Misal, Soapserver'in ne işe yaradığını anlamış değilim. 3-5 satır bir kodu bir dosyaya yazıp bırakıyoruz. Bu konuda bana yardımcı olabilecek birileri var mı ? Kod yazmanızı istemiyorum daha çok bu işin hangi mantıkta çalıştığını anlatabilirmisiniz ? Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Gladmir Mesaj tarihi: Temmuz 12, 2013 Paylaş Mesaj tarihi: Temmuz 12, 2013 via skype, ts veyahut ventrillo anlatayim Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Sequo Mesaj tarihi: Temmuz 12, 2013 Paylaş Mesaj tarihi: Temmuz 12, 2013 Sana sadece ok gelmez array dump ettiginde gonderdigin islemin id bilgiside gelir. yada tam tersi sen ne gonderirsen o geri gelebilir eger id yoksa id degiskeni bulup onu gonderip daha sonra o id nodan kontrol ettirebilirsin. ama mutlaka sistemin otomatik atadigi bir id vardir. O idye gore ne zaman istersen sorfulama yapman lazim Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
jonq Mesaj tarihi: Temmuz 14, 2013 Konuyu açan Paylaş Mesaj tarihi: Temmuz 14, 2013 Gladmir saolsun baya yardımcı oldu sistemi anlamam da ama şu an başka bir sorunum var. Normalde XML parse ederken sorun yaşamamıştım ama bunda nedense istediğim sonuca ulaşamıyorum. Tüm işlemlerin sonucunda karşı sunucudaki API bana en son bu veriyi POST ediyor. <?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <MobilePaxWEBStart xmlns="http://mobilepax.com/"> <TransactionId>f0e3dd9d-15ce-4f86-9c00-5fb9f9abd065</TransactionId> <ChargingOK>false</ChargingOK> </MobilePaxWEBStart> </soap:Body> </soap:Envelope> file_get_contents('php://input'); ile POST edilen veriyi yakalayıp işlemleri yapmaya çalışıyorum. $arq = file_get_contents('php://input'); $xml = simplexml_load_string($arq); var_dump($xml); Yukarıdaki şekilde simplexml_load_string ile çekmeye çalıştığımda bana object(SimpleXMLElement)#1 (0) {} şeklinde boş bir sonuç döndürüyor. $doc = new DOMDocument(); $doc->loadXML($arq); $datas = $doc->getElementsByTagName("MobilePaxWEBStart"); foreach( $datas as $data ){ $mesaj = $data->getElementsByTagName("TransactionId"); $tranid = $mesaj->item(0)->nodeValue; $aut=$data->getElementsByTagName("ChargingOK") $charging = $aut->item(0)->nodeValue; } var_dump($data); yukarıdaki gibi bir işlem denediğimde şöyle birşey dönüyor ancak ben istediğime nasıl ulaşacağımı çözemedim. object(DOMElement)#3 (18) { [tagName]=> string(17) "MobilePaxWEBStart" [schemaTypeInfo]=> NULL [nodeName]=> string(17) "MobilePaxWEBStart" [nodeValue]=> string(60) " f0e3dd9d-15ce-4f86-9c00-5fb9f9abd065 false " [nodeType]=> int(1) [parentNode]=> string(22) "(object value omitted)" [childNodes]=> string(22) "(object value omitted)" [firstChild]=> string(22) "(object value omitted)" [lastChild]=> string(22) "(object value omitted)" [previousSibling]=> string(22) "(object value omitted)" [nextSibling]=> string(22) "(object value omitted)" [attributes]=> string(22) "(object value omitted)" [ownerDocument]=> string(22) "(object value omitted)" [namespaceURI]=> string(21) "http://mobilepax.com/" [prefix]=> string(0) "" [localName]=> string(17) "MobilePaxWEBStart" [baseURI]=> string(31) "/home/vomopay/public_html/bayi/" [textContent]=> string(60) " f0e3dd9d-15ce-4f86-9c00-5fb9f9abd065 false " } Bana lazım olan ve değerleri, daha sonra da bu işlemlerle veritabanına gerekli bilgileri işleyeceğim. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Sequo Mesaj tarihi: Temmuz 14, 2013 Paylaş Mesaj tarihi: Temmuz 14, 2013 Direk soap ile sms bilgilerini gonderdikten sonra donen veriyi var dump edermisin? Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
jonq Mesaj tarihi: Temmuz 14, 2013 Konuyu açan Paylaş Mesaj tarihi: Temmuz 14, 2013 Kastettiğin bu ise Soapclient ile verileri post ettikten sonra dönen $client = new SoapClient($wsdl, array('trace' => $trace, 'exceptions' => $exceptions)); $response = $client->startMobilePax($xml_array); var_dump($response); dump sonucu bu çıkıyor. object(stdClass)#2 (1) { [startMobilePaxResult]=> object(stdClass)#3 (3) { [status]=> string(2) "OK" [errcode]=> string(0) "" => string(36) "b8c2887b-021d-40d2-a379-76394d123bf8" } } Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği… Sequo Mesaj tarihi: Temmuz 14, 2013 Paylaş Mesaj tarihi: Temmuz 14, 2013 E tamam tranid de vermiş işte? Oncelikle kendi sistemindede bir adet id belirle. Sqlini suna göre yap Id tel sms tranid sonuc hata durum Status ok ise sunlarimyazdir İd tel sms gelentranid 1 null null Ok degilse İd tel sms gelentranid 0 hatamesaji null Daha sonra ok olup durumu null olan kayitlar icin soap ile baglan tranid ye gore ulasip ulasmadıgını ıgrenip editle var olan fieldi ulasti yada ulasmadi seklinde Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği… jonq Mesaj tarihi: Temmuz 14, 2013 Konuyu açan Paylaş Mesaj tarihi: Temmuz 14, 2013 O kısımları hallettim. En son bana son durum ile ilgili bir veri daha POST luyor aşağıdaki şekilde. Bunu parse edip içindekileri ayrıca çekemedim. <?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <MobilePaxWEBStart xmlns="http://mobilepax.com/"> <TransactionId>f0e3dd9d-15ce-4f86-9c00-5fb9f9abd065</TransactionId> <ChargingOK>false</ChargingOK> </MobilePaxWEBStart> </soap:Body> </soap:Envelope> Yukardaki yi çekip DB de daha önce kayıt ettiğim yerdeki TRid ile açtığım fieldde kısmını güncellemem lazım. Öncekinde Soapclient kullanmıştım o kısmı hallettim ama bu dosyada file_get_contents("php://input") ile yakaladığım için yukardaki veriyi parse etmem gerekiyor. Denediğim yöntemlerle sonuca ulaşamadım. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği… di Mesaj tarihi: Temmuz 14, 2013 Paylaş Mesaj tarihi: Temmuz 14, 2013 Sana POST ediyosa $_POST ile alsana onu ? Onun disinda XML kismi icin de SimpleXML Element ya da daha guzeli XMLReader kullanabilirsin. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği… jonq Mesaj tarihi: Temmuz 14, 2013 Konuyu açan Paylaş Mesaj tarihi: Temmuz 14, 2013 $_POST bana array(0) {} döndürüyor simplexml_load_string ise object(SimpleXMLElement)#1 (0) {} döndürüyor $xml = file_get_contents('php://input'); ise var_dump($xml); yaptığımda bana alttakini gösteriyor. <?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:xsi="[www.w3.org]; xmlns:xsd="[www.w3.org]; xmlns:soap="[schemas.xmlsoap.org]; <soap:Body> <MobilePaxWEBStart xmlns="[mobilepax.com]; <TransactionId>f0e3dd9d-15ce-4f86-9c00-5fb9f9abd065</TransactionId> <ChargingOK>false</ChargingOK> </MobilePaxWEBStart> </soap:Body> </soap:Envelope> Yukarıdaki kodu nasıl parse edebilirim çözemedim. XMLReader a bakayım Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği… di Mesaj tarihi: Temmuz 14, 2013 Paylaş Mesaj tarihi: Temmuz 14, 2013 O halde sana POST ile gelmiyor o data. PHP'de XML parse olayi biraz uyuz bi is. Var_dump ya da turevleri ile debug edemiyosun resource'u her zaman. Haliyle bir ornek neyim bulup onun ustunden gitmen daha hayirli olur. XMLReader'a bak bi de. Onun kullanimi nispeden daha rahat. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği… jonq Mesaj tarihi: Temmuz 14, 2013 Konuyu açan Paylaş Mesaj tarihi: Temmuz 14, 2013 yok XMLReader da işime yaramadı. Bir sürü örnek buldum da sonuca ulaşamadım. Soapserver mı kassam yine. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği… di Mesaj tarihi: Temmuz 14, 2013 Paylaş Mesaj tarihi: Temmuz 14, 2013 Soap cevabinda bazi uyuzluklar var standard XML'e gore, ondan isini gormedi muhtemelen. Ya dogru yolu bu degil ama tek lazim olan transaction ID ise kafana gore pars et gitsin o zaman. Response zaten ufak, cak bi regex ya da iki tane explode olsun bitsin. Yok dogru sekilde yapayim diyosan da go go soap client. Ama su kadarini diyeyim, bunca senedir su islerle ugrasiyorum, soz konusu PHP olunca SOAP ve XML gibi illet gormedim henuz. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği… Sequo Mesaj tarihi: Temmuz 15, 2013 Paylaş Mesaj tarihi: Temmuz 15, 2013 $degisken = '#(*?)#'; preg_match($degisken,$xml,$cikti); $cikti=$cikti[1]; Echo $cikti; Yapsana bi. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği… Gladmir Mesaj tarihi: Temmuz 15, 2013 Paylaş Mesaj tarihi: Temmuz 15, 2013 jonq said: yok XMLReader da işime yaramadı. Bir sürü örnek buldum da sonuca ulaşamadım. Soapserver mı kassam yine. SoapServer la halletmistik ya bunu. addFunction (Impl String functionName) veriyorduk, transactionId yi aliyorduk o function la. Edit: Php sucks hard. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği… Paylaş Daha fazla paylaşım seçeneği… Takipçiler 0 Konu listesine dön Paticik Tum Konular Paticik - Pati Tech Paticik - Pati Zone Paticik - Ilgi Alanlari Paticik - Yasam Paticik - Pati Do Paticik - Spor Paticik - Oyunlar Paticik - MMORPG turleri Paticik - Garbage Son Mesajlar Ana Sayfa Pati Tech Donanım & Yazılım SOAP - PHP × Üye misin? Giriş yap Kaydol Bağış Hedesi Yönetim Kurallar × Yeni Oluştur...
Sequo Mesaj tarihi: Temmuz 14, 2013 Paylaş Mesaj tarihi: Temmuz 14, 2013 E tamam tranid de vermiş işte? Oncelikle kendi sistemindede bir adet id belirle. Sqlini suna göre yap Id tel sms tranid sonuc hata durum Status ok ise sunlarimyazdir İd tel sms gelentranid 1 null null Ok degilse İd tel sms gelentranid 0 hatamesaji null Daha sonra ok olup durumu null olan kayitlar icin soap ile baglan tranid ye gore ulasip ulasmadıgını ıgrenip editle var olan fieldi ulasti yada ulasmadi seklinde Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
jonq Mesaj tarihi: Temmuz 14, 2013 Konuyu açan Paylaş Mesaj tarihi: Temmuz 14, 2013 O kısımları hallettim. En son bana son durum ile ilgili bir veri daha POST luyor aşağıdaki şekilde. Bunu parse edip içindekileri ayrıca çekemedim. <?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> <soap:Body> <MobilePaxWEBStart xmlns="http://mobilepax.com/"> <TransactionId>f0e3dd9d-15ce-4f86-9c00-5fb9f9abd065</TransactionId> <ChargingOK>false</ChargingOK> </MobilePaxWEBStart> </soap:Body> </soap:Envelope> Yukardaki yi çekip DB de daha önce kayıt ettiğim yerdeki TRid ile açtığım fieldde kısmını güncellemem lazım. Öncekinde Soapclient kullanmıştım o kısmı hallettim ama bu dosyada file_get_contents("php://input") ile yakaladığım için yukardaki veriyi parse etmem gerekiyor. Denediğim yöntemlerle sonuca ulaşamadım. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
di Mesaj tarihi: Temmuz 14, 2013 Paylaş Mesaj tarihi: Temmuz 14, 2013 Sana POST ediyosa $_POST ile alsana onu ? Onun disinda XML kismi icin de SimpleXML Element ya da daha guzeli XMLReader kullanabilirsin. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
jonq Mesaj tarihi: Temmuz 14, 2013 Konuyu açan Paylaş Mesaj tarihi: Temmuz 14, 2013 $_POST bana array(0) {} döndürüyor simplexml_load_string ise object(SimpleXMLElement)#1 (0) {} döndürüyor $xml = file_get_contents('php://input'); ise var_dump($xml); yaptığımda bana alttakini gösteriyor. <?xml version="1.0" encoding="utf-8"?> <soap:Envelope xmlns:xsi="[www.w3.org]; xmlns:xsd="[www.w3.org]; xmlns:soap="[schemas.xmlsoap.org]; <soap:Body> <MobilePaxWEBStart xmlns="[mobilepax.com]; <TransactionId>f0e3dd9d-15ce-4f86-9c00-5fb9f9abd065</TransactionId> <ChargingOK>false</ChargingOK> </MobilePaxWEBStart> </soap:Body> </soap:Envelope> Yukarıdaki kodu nasıl parse edebilirim çözemedim. XMLReader a bakayım Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
di Mesaj tarihi: Temmuz 14, 2013 Paylaş Mesaj tarihi: Temmuz 14, 2013 O halde sana POST ile gelmiyor o data. PHP'de XML parse olayi biraz uyuz bi is. Var_dump ya da turevleri ile debug edemiyosun resource'u her zaman. Haliyle bir ornek neyim bulup onun ustunden gitmen daha hayirli olur. XMLReader'a bak bi de. Onun kullanimi nispeden daha rahat. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
jonq Mesaj tarihi: Temmuz 14, 2013 Konuyu açan Paylaş Mesaj tarihi: Temmuz 14, 2013 yok XMLReader da işime yaramadı. Bir sürü örnek buldum da sonuca ulaşamadım. Soapserver mı kassam yine. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
di Mesaj tarihi: Temmuz 14, 2013 Paylaş Mesaj tarihi: Temmuz 14, 2013 Soap cevabinda bazi uyuzluklar var standard XML'e gore, ondan isini gormedi muhtemelen. Ya dogru yolu bu degil ama tek lazim olan transaction ID ise kafana gore pars et gitsin o zaman. Response zaten ufak, cak bi regex ya da iki tane explode olsun bitsin. Yok dogru sekilde yapayim diyosan da go go soap client. Ama su kadarini diyeyim, bunca senedir su islerle ugrasiyorum, soz konusu PHP olunca SOAP ve XML gibi illet gormedim henuz. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Sequo Mesaj tarihi: Temmuz 15, 2013 Paylaş Mesaj tarihi: Temmuz 15, 2013 $degisken = '#(*?)#'; preg_match($degisken,$xml,$cikti); $cikti=$cikti[1]; Echo $cikti; Yapsana bi. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Gladmir Mesaj tarihi: Temmuz 15, 2013 Paylaş Mesaj tarihi: Temmuz 15, 2013 jonq said: yok XMLReader da işime yaramadı. Bir sürü örnek buldum da sonuca ulaşamadım. Soapserver mı kassam yine. SoapServer la halletmistik ya bunu. addFunction (Impl String functionName) veriyorduk, transactionId yi aliyorduk o function la. Edit: Php sucks hard. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Öne çıkan mesajlar