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"
}
}