Ana Sayfa‎ > ‎

DİA Web Servis v3

  • DİA Web Servislerinin çağrılabilmesi için DİA üye hesabında kontör bulunması gerekmektedir. Her bir hesap -1.000 kontöre kadar düşmeye izin verir. Her bir web servis çağrısı da 0,5 kontör kullanmaktadır. Yani kontör yüklemeden 2.000 web servis çağrısı yapılabilmektedir. 
  • Web Servis kontörleri bittiğinde DİA uygulaması içerisinde yer alan Otomatik Mesaj Sistemi sayfasından tekrar kontör satın alınabilir. Bu kontörler web servis çağrıları dışında otomatik rapor gönderimleri, tanıtım amaçlı e-posta gönderimleri, e-devlet işlemleri (e-fatura, e-defter vb.) gibi operasyonlarda da kullanılabilmektedir.

  • DİA Web Servis altyapısında artık eski XML odaklı çağrıların yerine JSON standardını destekleyen bir altyapı kullanılmaktadır. DİA WS v1 ve v2 versiyonları geliştirilmeyecektir.
  • DİA Modelleri üzerinden geliştirilen v3 altyapısı ile daha gelişmiş bir API kütüphanesi yaratılmıştır.
  • http://www.dia.com.tr/kurulum-dosyalari/ adresinde yer alan DİA WS v3 Test Aracı ile servis kütüphanesine erişilebilir. Bu test aracı ile API listesine ulaşılabilir, her bir ws çağrısı çalıştırılabilir ve input-output yapısı analiz edilebilir. Yeni web servisler eklendikçe JSON güncellenmesi sayesinde yeni API kullanımları da desteklenmektedir. 
  • DİA WS v3 Test Aracı kullanılarak farklı yazılım dillerinden çağrıların nasıl yapılacağı da görülebilir. 
  • WS çağrılarının yapılabilmesi için çağrının yapıldığı sunucuda kontör olduğundan emin olunuz. Kontör durum kontrolünü DİA içinde Otomatik Mesaj Sistemi ekranında sağ üst kısımdaki DİA Kontör kısmından sağlayabilirsiniz.
  • Örnek alınabilecek JSON standardı ile çalışan .Net projesine aşağıdan ve linkten ulaşabilirsiniz.



LOGIN

Web servis çağrılarında session_id parametresinin gönderilmesi gerekmektedir.
Bunun için login servisi çağrılır ve sistemden bir session (oturum) bilgisi istenir.
Oturum bilgisi istenirken Dia'da tanımlı kullanıcı adı ve şifre bilgisi girilmelidir.
Herhangi bir servis çağrılırken burada belirtilen kullanıcı üzerinden işlemler gerçekleşeceğinden kullanıcının çağrılan servis için yetkisinin olup olmadığına dikkat etmek gerekir.
Servis başarılıysa 'msg' kısmında session_id bilgisi döner ve sonrasında çağrılacak servislerde bu id gönderilir.
Herhangi bir işlem yapılmazsa session 1 saat içerisinde timeout olur ve yeni servis çağrılarında yeni session almanız gerekir.

Login Parametreleri:
username: Dia'da tanımlı kullanıcı adı
password: Dia'da tanımlı şifre
disconnect_same_user: Kullanıcı bağlıysa bağlantısı koparılsın mı? ("True" yada "False" gönderilir.)

Örnek Input:
{"login" : {"username": "ws", "password": "ws1", "disconnect_same_user": "True" } }

Login başarılıysa dönen sonuç:
{'code': '200', 'msg': 'b2d4820cc43f4d98a8c6698686b6d386'}

Login başarısızsa dönen sonuç:
{'code': '401', 'msg': 'NOUSER'}


LOGOUT

Önceden alınmış session bilgisini sonlandırmak için kullanılır.

Örnek İnput:
{"logout" : {"session_id": "b2d4820cc43f4d98a8c6698686b6d386" } }


YETKİLİ FİRMA-DÖNEM-ŞUBE-DEPO BİLGİLERİNİ ALMA

"sis_yetkili_firma_donem_sube_depo" servisini çağırarak ilgili kullanıcının yetkisi olan firma, şube, depo bilgileri ve dönem bilgilerine ulaşılabilir.


LİSTELEME SERVİSLERİ

Liste şeklinde bilgilerin döndürüldüğü servislerdir. 

Genelde isimleri '_listele' ile biter (scf_carikart_listele, scf_carikart_adresleri_listele, sis_banka_listele, ...)


FİLTRELEME (filters)

Çeşitli filtreler göndermeye olanak sağlar. Liste şeklinde birden fazla filtre gönderilebilir.
field: Filtrelenecek alanın adı
operator: Filtre türü. "<", ">", "<=", ">=", "!", "!=", "=", "IN", "NOT IN" operatörleri kullanılabilir.
value: Filtre değeri.

Örnek: Cari kart tipi "AL" olanlar
"filters":[{"field": "carikarttipi", "operator": "=", "value": "AL"}]

Örnek: Cari kart kodu "001" veya "002" olanlar
"filters":[{"field": "carikartkodu", "operator": "IN", "value": "001,002"}]

NOT: IN operatörüne birden fazla değer virgülle ayrılarak gönderilebilir.

Örnek: 01.07.2016 tarihinden sonra eklenen yada güncellenen cariler
"filters":[{"field": "_date", "operator": ">=", "value": "2016-07-01"}]

NOT: _date alanı son işlem tarihi bilgisi tutulur

Örnek: Ünvanında "ANONİM" geçen cariler
"filters":[{"field": "unvan", "value": "ANONİM"}]

NOT: Operatör gönderilmezse için geçen şeklinde çalışır.

Örnek: Ünvanında "ANONİM" geçmeyen cariler
"filters":[{"field": "unvan", "operator": "!", "value": "ANONİM"}]

Örnek: Cari kart kodu "001" e eşit olmayan cariler.
"filters":[{"field": "carikartkodu", "operator": "!=", "value": "001"}]


SIRALAMA (sorts)

Listenin belirli bir sırada gelmesi isteniyorsa kullanılır.
field: Sıralanması istenen alan adı
sorttype: Sıralama türü (ASC: düz sıralı, DESC: ters sıralı)

Örnek: Cari kart koduna göre ters sıralı
"sorts": [{"field": "carikartkodu", "sorttype": "DESC"}]

EKSTRA PARAMETRELER (params)

Bazı listelere ekstra parametre gönderimi yapılabilmektedir.
Örneğin cari kart listesinde eğer yetki varsa bakiye bilgisi döndürülmektedir.
Hesaplanan bu bakiyenin "Faturalanmamış irsaliyelerin dahil edilmesi" isteniyorsa aşağıdaki gibi bir ekstra parametre ilave edilir.

Kullanımı: "params": {"irsaliyeleriDahilEt": "False"} 


LİMİT (limit)

Listelerde kaç adet kayda ait bilgi dönsün isteniyorsa gönderilir.

Kullanımı: "limit": 0,

OFFSET (offset)
Hangi kayıttan itibaren veriler gösterilsin isteniyorsa. Sayfalama türü işlemlerde kullanılabilir.

Kullanımı: "offset": 100


KEY Alanların Kullanımı (Ekleme ve Değiştirme İşlemlerinde)

Foreign key olarak bağlanmış alanlar ekleme ve değiştirme işlemlerinde 2 şekilde gönderilebilir.
  1. key değeri direk verilebilir. Örneğin:
    • "_key_scf_carikart": 12345
  2. key değerinin bağlı olduğu modeldeki alanlar verilerek uygun değerin sistem tarafından bulunması sağlanabilir.  Örneğin:
    • "_key_scf_carikart": {"carikartkodu": "0000008"}. Burada scf_carikart tablosunda carikartkodu alanı "0000008" değerine eşit olanı bulması isteniyor. 
    • "_key_sis_ozelkod2": {"turkodu": "M2", "kod": "WS003"}. Birden fazla alan göndererek ilgili kayda ulaşmaya çalışılabilir.
Eşleşen kayıt bulunamazsa veya birden fazla kayıt bulunduysa servis uyarı döndürecektir.




DİA Web Servis v1 ve v2  -  ESKİ

Web Servis Sayfası
Web Servis Dokümanları

  • DİA Web Servis dışında B2C veya B2B lisansına sahip olan DİA E-Ticaret üyelerinin tüm stok bilgilerini diğer e-ticaret siteleri ile veya alt bayileri ile paylaşımına imkan sağlanmaktadır. 
  • DİA B2C Stok XML lisansı ile binlerce ürününün B2C sitesine özgü herkese açık fiyatları tek bir sorgu ile XML formatında paylaşılır. 
  • DİA B2B Stok XML lisansı ile ise paylaşım DİA B2B lisansındaki alt bayi kullanıcı kodu ve şifreleri ile bayilere özgü uygulanan kampanya fiyatlarını içerecek şekilde paylaşılır. Bu sayede farklı bayilere farklı fiyat paylaşımları imkanı sağlanabilir. 
  • B2C ve B2B Stok XML sorgularında da kontör sistemi uygulanmaktadır. B2C ve B2B Stok XML Paylaşım sisteminin Web Servis sistemi ile entegre edilmesi, kontör sistemine dahil edilmesi ve ayrı lisans alınmadan sadece web servis lisansı ile kullanılabilmesinin sağlanması planlanmaktadır.

DİA B2C Stok XML Paylaşımı

ċ
WS_DIA_JSON_v02.zip
(7227k)
Suha Onay,
6 Şub 2017 23:24