3. Session (Oturum) & API Key
Servis çağrısı yapabilmek için login
işleminin gerçekleştirilip session_id
alınması gerekmektedir. Tüm servislerin ilk parametresi session_id
olmalıdır. Oturum açıldıktan sonra session timeout oluncaya kadar çağrılar atılabilmektedir. Timeout süresi 1 saattir. Gerçekleştirilen her çağrı timeout süresini tekrar sıfırlar.
3.1. Api Key Nedir? Nasıl Alınır
Servis çağrılarını başlatabilmeniz için, DİA tarafından verilen, tekil bir anahtar değerdir. Bu değeri almak için satis@dia.com.tr adresine, ne amaçla kullanacağınız ve uygulamanızın detaylarını bildiren bir mail atmanız gerekiyor. Sonrasında yetkili personelimiz dönüş sağlayıp sürecin devamını sağlıyor. Alınan api key değerini sadece login servisinde kullanmanız yeterli, api key kullanılarak alınan session değeri sonrası yapılan tüm çağrılar ilgili api key ile ilişkilendirilir.
3.2. Login
Kullanıcı listesinde (sis3100)
tanımlı olan kullanıcı bilgisi kullanılarak login servisini çağırabilirsiniz. Servis çağrısı başarılıysa msg
içerisinde session_id
numarası dönecektir. Servis çağrılarında bu numarayı kullanmanız gerekmektedir.
Login sonrası yapılan işlemlerdeki kayıtlarda ekleyen, güncelleyen kullanıcı bilgileri olarak login kullanıcısının bilgisi görünecektir. Ayrıca ilgili servisin çağrılabilmesi için kullanıcının yetkisinin olması gerekmektedir. Örneğin scf_fatura_listele
servisini çağırabilmek için Fatura Listeleme
yetkisi ilgili kullanıcıda tanımlı olmalıdır.
Kullanıcı için “İzin Verilen IP'ler” tanımlaması yapıldıysa, yalnızca belirtilen IP adreslerinde servis çağrılabilmektedir.
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 İnput:
{"login" : {"username": "ws", "password": "ws", "disconnect_same_user": "True", "params": {"apikey": "xxx"} } }
Login başarılıysa dönen sonuç:
{'code': '200', 'msg': 'b2d4820cc43f4d98a8c6698686b6d386'}
Login başarısızsa dönen sonuç:
{'code': '401', 'msg': 'NOUSER'}
3.3. Logout
Önceden alınmış session bilgisini sonlandırmak için kullanılır.
Örnek İnput:
{"logout" : {"session_id": "b2d4820cc43f4d98a8c6698686b6d386" } }