Örnek 10
Senaryo :
Barkodu okutulan stoğu bulup, sistem parametresindeki fiyat türüne göre fiyatını getirelim.
Örnekler diadevdays sunucusu üzerinde çalışmaktadır.
Örnek Kod (python):
# coding=utf-8
import simplejson
import base64
import urllib2
from datetime import datetime
from pprint import pprint
wsAdresMain = 'https://diadevdays.ws.dia.com.tr/api/v3/'
firma_kodu = 4
donem_kodu = 1
apikey = "773f9085-9dc8-4f50-b34d-f7b56da33b5f"
def callWs(wsAdres, postBody):
try:
postBody = simplejson.dumps(postBody, cls=simplejson.JSONEncoder)
req = urllib2.Request(wsAdres,
data=postBody,
headers={"Content-Type": "application/json"})
content = urllib2.urlopen(req).read()
except Exception, e:
print("Exception: {}".format(repr(e)))
wsResult = simplejson.loads(content)
return wsResult
loginBody = {"login" :
{"username": "ws",
"password": "ws",
"disconnect_same_user": True,
"lang": "tr",
"params": {"apikey": apikey}
}
}
loginResult = callWs(wsAdresMain + 'sis/json', loginBody)
sessionID = loginResult['msg']
if not sessionID:
print("Login yapilamadi")
exit(0)
barkod = raw_input('Lütfen barkodu okutunuz: ')
postBody = {"scf_barkod_okut" :
{"session_id": sessionID,
"firma_kodu": firma_kodu,
"donem_kodu": donem_kodu,
"barkodtipi": "BARKOD",
"barkodlist": [barkod]
}
}
wsResult = callWs(wsAdresMain + 'scf/json', postBody)
stokResult = wsResult['result'][0]
postBody = {"scf_fiyat_hazirla" :
{"session_id": sessionID,
"firma_kodu": firma_kodu,
"donem_kodu": donem_kodu,
"params": { "islemturu": "FATURA",
"fisturu": "2",
"kalemturu": "MLZM",
"_key_kalemturu": stokResult['stokkart']['_key'],
"_key_kalembirim": stokResult['_key_secilibirim']
}
}
}
wsResult = callWs(wsAdresMain + 'scf/json', postBody)
fiyatResult = wsResult['result'][0]
stokFiyat = fiyatResult['birimfiyat']
print "%s kodlu stoğun fiyatı: %s" % (stokResult['stokkart']['stokkartkodu'], str(stokFiyat))