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>&nbsp;</p>
<p>&nbsp;</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ı

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

Detaylı