Sayın Nimet EREN, 08 / Eylül / 2008
Transkript
Sayın Nimet EREN, 08 / Eylül / 2008
Ülker İletişim Web Servisi Interprise Bu doküman Ülker iletişim web servisi hakkında teknik açıklamaları içerir. İletişim web servisi web adresi : www.ulker.com.tr/webservices/contactservice/contactservice.asmx?wsdl .Net projelerinde Add Web Reference seçeneği ile yukarıdaki web adresi belirtilerek servis proje içine dahil edilir. W eb servisinin kullanılabilmesi için iki adet güvenlik kodu gereklidir. 1.Ajans güvenlik kodu 2.İletişim web servisi güvenlik kodu Bu bilgilere erişmek için http://www.ulker.com.tr/Interprise/login.aspx adresinden sizinle paylaşılan kullanıcı adı ve parola ile giriş yaptıktan sonra API/Export linkine tıklandığında Yetkiniz dahilinde erişebileceğiniz siteler görüntülenir. Ayarlar linkine tıklandığında İletişim web servisinde kullanmanız gereken Ajans güvenlik kodu (Agency Secret Key) ve İletişim web serivisi Güvenlik Kodu (İletişim Secret Key) değerlerine erişebilirsiniz. Aynı sayfanın altında iletişim formu alanları ile ilgili bölüm mevcuttur. Bu bölümde iletişim formunda kullanılacak olan alanları işaretleyip, doldurulması zorunlu alan olup olmamasını belirleyebilirsiniz. Form alanları içinde isim, mesaj ve e-posta mutlaka olmalıdır. Bu nedenle zorunlu alan statüsü değiştirilemez. Seçimler yapıldıktan sonra “Kaydet” butonuna basılarak panelden yapılması gereken değişiklikler tamamlanmış olur. Web Servisi Dokümantasyonu Nesneler IletisimBilgiOrnegi ProjectContactSecretKey Proje güvenlik kodunu içeren string AgencySecretKey Ajans güvenlik kodunu içeren string yonlendirenSiteId :string Başka bir siteden iletişim formuna yönlendirme yapıldığında kullanılır. siteDomain Site domain bilgisini içeren string Örnek :www.siteadi.com siteAdi Site adını içeren string uyeId Üyelik bilgisi web servisine gönderildiğinde kullanılır. kisiTuruId Formu dolduran kişi hakkında bilgi içerir. Varsayılan değer :1 Seçenekler :1-Tüketici, 2-Perakandeci, 5-Kurum Organizasyon konuId İletinin konusu hakkında bilgi verir. Varsayılan değer:0 getKonularByDilId fonksiyonu ile konu listesine erişilebilir. 1:Ürün, 2:Satış Teşkilatı,4:Kampanya,8:Reklam, 16: Sponsorluk,16384:Diğer aciklama İleti içeriğini içerir. isim Gönderen kişinin adını ve soyadını içerir. Ad ve Soyadın tek bir alana yazılacağı alandır. MusteriAdi Gönderen kişinin adını içeren alandır. MusteriSoyadi Gönderen kişinin soyadını içeren alandır. eposta Gönderen kişi e-posta adresini içerir. kurulusAdi Gönderen kişi firma adını içerir. Varsayılan değer boştur. ulkeId Ülke Id değerini içerir. Rakamdan oluşur. getUlkeler fonksiyonu ile şehir listesine erişilebilir. ilId Şehir Id değerini içerir.Rakamdan oluşur. getIller fonksiyonu ile şehir listesine erişilebilir. ilDiger Listede olmayan bir şehir için metin alanından girilen şehir bilgisini içerir. ilceId İlçe Id değerini içerir. getIlcelerByIlId fonksiyonu ile bir ile ait olan ilçe listesi elde edilir. adresTurId Adres türünü içerir. getAdresTurleri fonksiyonu ile elde edilebilir. Varsayılan değer: 1 Seçenekler :1-Ev, 2-İş , 3-Yazlık Adres Adres bilgisini içerir. telefon1TurId Telefon alanını tanımlar. Varsayılan değer:1 Seçenekler :1-Ev, 2-İş, 3-Cep, 4-Faks telefon1UlkeKodu Ülke kodunu içerir. Zorunlu değildir. telefon1AlanKodu Üç haneli alan kodunu içeren rakamlardan oluşan string. telefon1Numara 7 haneli telefon numarasını içeren rakamlardan oluşan string. telefon2TurId Formdaki ikinci telefon alanı olduğunda kullanılabilir. telefon2UlkeKodu Formdaki ikinci telefon alanı olduğunda kullanılabilir. telefon2AlanKodu Formdaki ikinci telefon alanı olduğunda kullanılabilir. telefon2Numara Formdaki ikinci telefon alanı olduğunda kullanılabilir. ip Mesajı gönderen kişinin IP numarası gönderilmelidir. dilId Form kontrollerinde hata olduğunda hata mesajları Türkçe ve İngilizce olarak görüntülenebilmektedir. Varsayılan değer :1 Seçenekler :1-Türkçe, 2-İngilizce action İleti ile ilgili alınacak aksiyon belirtilir. Atama yapılmayabilir. cocuk1Isim Çocuk isim bilgisini içerir.Gerektiğinde kullanılabilir. cocuk1Cinsiyet Çocuk cinsiyet bilgisini içerir.Gerektiğinde kullanılabilir. cocuk1DogumTarihi Çocuk doğum tarihi bilgisini içerir.Gerektiğinde kullanılabilir. cocuk2Isim Çocuk isim bilgisini içerir.Gerektiğinde kullanılabilir. cocuk2Cinsiyet Çocuk cinsiyet bilgisini içerir.Gerektiğinde kullanılabilir. cocuk2DogumTarihi Çocuk doğum tarihi bilgisini içerir.Gerektiğinde kullanılabilir. cocuk3Isim Çocuk isim bilgisini içerir.Gerektiğinde kullanılabilir. cocuk3Cinsiyet Çocuk cinsiyet bilgisini içerir.Gerektiğinde kullanılabilir. cocuk3DogumTarihi Çocuk doğum tarihi bilgisini içerir.Gerektiğinde kullanılabilir. smsGonderilsinMi Sms gönderilip gönderilmemesini belirler. epostaGonderilsinMi E-posta gönderilip gönderilmemesini belirler mektupGonderilsinMi Mektup gönderilip gönderilmemesini belirler dogumTarihi Gönderici doğum tarihi içerir. Gerektiğinde kullanılabilir. calisiyorMu Gerektiğinde kullanılabilir. bebekBekliyorMu Gerektiğinde kullanılabilir. yas Yaş bilgisini içerir. iletisim_sonuc Gönder fonksiyonu ile form bilgileri gönderildiğinde web servisinden döner. Sonuc 0: Mesaj gönderilemezse döner 1: Mesaj başarıyla gönderildiğinde döner 2: Güvenlik kodları ya da form geçerlilik denetimleri ile ilgili sorun olduğunda döner. Aciklama Hata mesajı ile ilgili açıklama ya da mesajın ulaştığı bilgisi döner. Mesajlar MessageInfo nesnesi tipinde üye MessageInfo Mesajlar Validasyon hatası olduğunda bu hataları içeren dizi. MessageCode Validasyon hatası olduğunda bu hata kodlarını döndüren dizi. ContactResultInfo Gönder fonksiyonuna parametre olarak gönderilir. Sonuc Validasyon hatası olduğunda bu hataları içeren dizi. Mesajlar Validasyon hatası olduğunda bu hata kodlarını döndüren dizi. Fonksiyonlar Gonder İletişim formundaki bilgilerin gönderilmesini sağlar. Parametreler: IletisimBilgiOrnegi ContactResultInfo Dönen Değer: iletisim_sonuc getAdresTurleri Adres seçeneklerini döndürür. Parametreler:Yok Dönen Değer:Dataset getIlcelerByIlId Şehire ait ilçe listesini döndürür. Parametreler: ilId Dönen Değer:Dataset getIller Şehir listesini döndürür. Parametreler:Yok Dönen Değer:dataset getKonularByDilId Mesaj konu listesini döndürür. Parametreler:DilId Türkçe:1,İngilizce:2 Dönen Değer:dataset getNumaraTurleri Telefon numara türlerini döndürür. Parametreler:Yok Dönen Değer:Dataset getUlkeler Ülke listesini döndürür. Parametreler:Yok Dönen Değer: Dataset getUlkelerIngilizce İngilizce ülke listesini döndürür. Parametreler:Yok, Dönen Değer:Dataset Örnek ASP .NET Sayfa Kodu Asp .Net vb ile yazılmış kod örneği aşağıdadır.Web form yerine flash form kullanıldığında post edilen değerler Request.Form(“AlanAdi”) şeklinde alınarak web servisine aktarılabilir. Partial Class iletisim Inherits System.Web.UI.Page Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load If Not Page.IsPostBack Then ListeKutulari() End If End Sub Public Sub ListeKutulari() Dim iletisim As New yenimbs.ContactService '/////////// Şehir Listesi //////////// ddlSehir.DataSource = iletisim.getIller ddlSehir.DataTextField = "AD" ddlSehir.DataValueField = "ID" ddlSehir.DataBind() ddlSehir.Items.Insert(0, New ListItem("İl Seçiniz...", "")) '/////////// Telefon Türleri //////////// ddlTelefonTipi1.DataSource = iletisim.getNumaraTurleri() ddlTelefonTipi1.DataTextField = "AD" ddlTelefonTipi1.DataValueField = "ID" ddlTelefonTipi1.DataBind() ddlTelefonTipi1.Items.Insert(0, New ListItem(" ", "")) End Sub Protected Sub imgbtnGonder_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles imgbtnGonder.Click If Page.IsValid Then MesajGonder() End If End Sub Public Sub MesajGonder() Dim Dim Dim Dim Dim IPAddress As String = Request.UserHostAddress iletisim As New yenimbs.ContactService iletisimdata As New yenimbs.IletisimBilgiOrnegi iletisimsonuc As New yenimbs.iletisim_sonuc iletisimsonucbilgi As New yenimbs.ContactResultInfo iletisimdata.AgencySecretKey = "111111-2222-3333-4444444" iletisimdata.ProjectContactSecretKey = "111111-2222-3333-4444444" iletisimdata.ip = IPAddress iletisimdata.aciklama = txtMesaj.Text iletisimdata.dilId = 1 iletisimdata.eposta = txtEposta.Text iletisimdata.isim = txtAdSoyad.Text iletisimdata.MusteriAdi = txtAd.txt iletisimdata.MusteriSoyadi = txtSoyad.txt iletisimdata.ilId = ddlSehir.SelectedValue iletisimdata.siteAdi = "site adı" iletisimdata.siteDomain = "www.siteadi.com" iletisimdata.telefon1UlkeKodu = txtUlkeKodu1.Text iletisimdata.telefon1AlanKodu = txtSehirKodu1.Text iletisimdata.telefon1Numara = txtTelefonNo1.Text iletisimdata.telefon1TurId = ddlTelefonTipi1.SelectedValue iletisimdata.ilceId = ddlIlce.SelectedValue iletisimsonuc = iletisim.Gonder(iletisimdata, iletisimsonucbilgi) Select Case iletisimsonuc.Sonuc Case 0 'Teknik Sorun, mesaj gönderilemedi Case 1 'Mesaj gönderildi Case 2 'Form validasyonları ya da güvenlik kodu hatalı End Select End Sub Public Sub IlceSec() Dim iletisim As New yenimbs.ContactService ddlIlce.DataSource = iletisim.getIlcelerByIlId(ddlSehir.SelectedValue) ddlIlce.DataTextField = "AD" ddlIlce.DataValueField = "ID" ddlIlce.DataBind() ddlIlce.Items.Insert(0, New ListItem("İlçe Seçiniz ", "")) End Sub Protected Sub ddlSehir_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ddlSehir.SelectedIndexChanged IlceSec() End Sub End Class Örnek PHP Kod <?php /*Php ayarları **********************************************************************************/ error_reporting(E_ALL & ~E_NOTICE); ini_set('extension', 'php_soap.dll' ); ini_set('display_errors',1); ini_set("soap.wsdl_cache_enabled","0"); /**Servis Ayarları & Adresi ve Bağlantısı *********************************************************************************/ $cService = new SoapClient("http://www.ulker.com.tr/webservices/contactservice/contactservice.asmx?wsdl"); // $cService = new SoapClient("http://localhost/ContactService/ContactService.asmx?wsdl"); $all_fields = array_map(function($n){return '';}, array_flip(array('ProjectContactSecretKey', 'AgencySecretKey', 'yonlendirenSiteId', 'siteDomain', 'siteAdi', 'uyeId', 'kisiTuruId', 'konuId', 'aciklama', 'isim', 'MusteriAdi', 'MusteriSoyadi', 'eposta', 'kurulusAdi', 'ulkeId', 'ilId', 'ilDiger', 'ilceId', 'adresTurId', 'adres', 'telefon1TurId', 'telefon1UlkeKodu', 'telefon1AlanKodu', 'telefon1Numara', 'telefon2TurId', 'telefon2UlkeKodu', 'telefon2AlanKodu', 'telefon2Numara', 'ip', 'dilId', 'action', 'cocuk1Isim', 'cocuk1Cinsiyet', 'cocuk1DogumTarihi', 'cocuk2Isim', 'cocuk2Cinsiyet', 'cocuk2DogumTarihi', 'cocuk3Isim', 'cocuk3Cinsiyet', 'cocuk3DogumTarihi', 'smsGonderilsinMi', 'epostaGonderilsinMi', 'mektupGonderilsinMi', 'dogumTarihi', 'calisiyorMu', 'bebekBekliyorMu', 'yas'))); $arrayServisSettings=array( "ProjectContactSecretKey" => "f3674d98-1442-445f-a9fe-84732f99b1dd", "AgencySecretKey" => "f9149363-f71b-40d0-8b31-21bb2fa77031", //"iletisimSecretKey" => "1fbd8958-a44a-4cd8-8e71-b8edb19a3db0", //Site ayarları 'yonlendirenSiteId' => 198, 'siteDomain' => "www.sokmarketler.com.tr", 'siteAdi' => "Şok Marketler", 'uyeId' => 198, 'ip' => (string)$_SERVER['REMOTE_ADDR'] ); /*****************************************************************************************/ if(isset($_GET['ilceID'])){ header("Last-Modified: " . gmdate( "D, d M Y H:i:s" ) . "GMT"); header("Cache-Control: no-cache, must-revalidate"); header("Pragma: no-cache"); header("Content-type: application/json"); header('Content-Type: application/javascript'); $ilcelerList=$cService->getIlcelerByIlId(array("ilId"=>$_GET['ilceID'])); //var_dump_mono($ilcelerList->getIlcelerByIlIdResult->any); $xml=$ilcelerList->getIlcelerByIlIdResult->any; $ilcelerList = new SimpleXMLElement($xml); $ilcelerListJSONarray=array(); foreach($ilcelerList->NewDataSet->Table1 as $ilce){ $ilcelerListJSONarray[]=array('id'=> trim($ilce->ID), 'ad' =>trim($ilce->AD)); } // var_dump_mono($ilcelerListJSONarray); echo json_encode($ilcelerListJSONarray); exit; } /*****************************************************************************************/ $illerList=$cService->getIller(); $xml=$illerList->getIllerResult->any; $illerList = new SimpleXMLElement($xml); $illerList = $illerList->NewDataSet->Table1; //Gelen Datalar işleniyor******************************************************************************/ if(isset($_POST["isim"])){ //-$ContactResultInfo = array( 'sonuc' => "0", 'mesajlar' => array() ); // $iletisim_data = array( # override previous 'isim' => htmlspecialchars(trim($_POST["isim"])), 'eposta' => htmlspecialchars(trim($_POST["eposta"])), 'ilId' => (int)$_POST["ilId"], 'ilceId' => (int)$_POST["ilceId"], 'dilId' => 1, // (int)$_POST["dilId"], 'telefon1TurId' => (int)$_POST["telefon1TurId"], 'telefon1UlkeKodu' => htmlspecialchars(trim($_POST["telefon1UlkeKodu"])), 'telefon1AlanKodu' => htmlspecialchars(trim($_POST["telefon1AlanKodu"])), 'telefon1Numara' => htmlspecialchars(trim($_POST["telefon1Numara"])), 'adres' => htmlspecialchars(trim($_POST["adres"])), 'aciklama' =>htmlspecialchars(trim($_POST["aciklama"])) ); $iletisim_data=array_merge($all_fields, $arrayServisSettings, $iletisim_data); // var_dump_mono($all_fields); var_dump_mono($iletisim_data); $sendData = array( "ContactInfo" => $iletisim_data, "ContactResultInfo" => $ContactResultInfo ); //Veriler GÖnderiliyor.... $iletisim_sonuc=""; var_dump_mono($sendData); $iletisim_sonuc=$cService->Gonder($sendData); } function var_dump_mono($arg, $printr=true) { echo "<pre>"; $printr ? print_r($arg) : var_dump($arg); echo "</pre>"; } //-?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Untitled Document</title> <script src="http://code.jquery.com/jquery-1.8.2.min.js"></script> <script> function selectAddItems(tag,items,selected){ //Select dataları işleme... var select = tag ; $('option', select).remove(); if(select.prop) { var options = select.prop('options'); }else { var options = select.attr('options'); } $.each(items, function (key, value){ options[options.length] = new Option(value.ad, value.id); }); if(selected=!null){ select.val(selected); } } function getIlcelerList(id){ //İlçe Listedi alınıyır... $.ajax({ url: 'contactForm.php?ilceID='+id, dataType: 'json', success: function(JSON) { // alert(JSON); selectAddItems($('#ilceId'),JSON,selected=null); } }); } $(document).ready(function(e) { /******************************/ $('#ilId').change(function(e) { getIlcelerList($('#ilId option:selected').val()); }); /******************************/ }); </script> </head> <body> <form id="contactForm" name="contactForm" method="post" action=""> <p> <label>Adınız</label> <input type="text" name="isim" id="isim" /> </p> <p> <label for="soyad">Soyadınız</label> <input type="text" name="soyad" id="soyad" /> </p> <p> <label for="soyad">E-Posta</label> <input type="text" name="eposta" id="eposta" /> </p> <p> <label for="il">İl</label> <select name="ilId" id="ilId"> <option value="">İl Seçiniz----</option> <?php foreach($illerList as $il) { echo '<option value="'.$il->ID.'">'.$il->AD.'</option>'; } ?> </select> </p> <p> <div id="ilceSecimi" > <label for="ilce">İlçe</label> <select name="ilceId" id="ilceId" > <option value="">İlçe Seçiniz ---</option> </select> </div> <div id="phone1" > <label for="telefon1TurId">Tel</label> <input type="text" name="telefon1TurId" id="telefon1TurId" value="1" /> <input type="text" name="telefon1UlkeKodu" id="telefon1UlkeKodu" value="90" /> <input type="text" name="telefon1AlanKodu" id="telefon1AlanKodu" value="216" /> <input type="text" name="telefon1Numara" id="telefon1Numara" value="1234567" /> </div> <div id="adress" > <label for="adres">adres</label> <input type="adres" name="adres" id="adres" value="deneme" /> </div> </p> <p> <label for="mesaj">Mesajınız</label> <textarea name="aciklama" cols="50" rows="7" id="aciklama"></textarea> </p> <p> <input type="submit" name="sendBtn" id="sendBtn" value="Gönder" /> </p> <p> </p> <p> </p> </form> <div class="boxInfo"> <?php var_dump_mono($iletisim_sonuc, false); ?> </div> </body> </html> Önemli Notlar Yönetim panelinden doğru güvenlik kodlarını aldığınıza emin olunuz. Üyelik web servisi ve iletişim web servisinde kullanılan il ve ilçe bilgileri (Id’ler) birbirinden farklıdır. İletişim web servisi içindeki il ve ilçe listeleme fonksiyonunu kullanarak iletişim formunu oluşturunuz. Plaka kodlarıyla il bilgilerini kullanmayınız. Kendi oluşturduğunuz il ve ilçe id’lerini kullanmayınız. Eğer servis exception verirse [email protected] adresine mail ile bilgi veriniz. Doküman Tarihçesi İsmail Cem AKSOY, 10.06.2011, Oluşturuldu İsmail Cem AKSOY, 24.04.12, Güncellendi Eşref Atak, 14.11.2012, Güncellendi - PHP örnek kod eklendi
Benzer belgeler
Uyarılar ve Dikkat Edilmesi Gereken Hususlar Sınırlı
Telefon: 888-825-9640 ya da +1-724-858-2837
[email protected]
www.Circadiance.com