PHP Efatura api kurmaya calisiyorum
Merhaba arkadaslar efatura php api kurmaya calisiyorum github üzerinden buldugum bir proje, fakat bu tür hazir paketlerin kurulumunu veya isleyis mantigini daha önce cok görmedigim icin mantigini anlayamadim. Yol gösterebilir misiniz?
https://earsivportal.efatura.gov.tr/intragiris.html
adresi fetch isteği kabul ediyor aslında.
Yani bir localhost sunucusunda html ve js yeterli aslında. Bir de gerekli şablona uygun fatura json yapısı.
Sunucuya atılan genel istekler:
- Oturum açma
- Fatura Oluşturma ve UUID (diğer adı ile ETTN) al ve depola
- Vergi veya TC numarasından şirket/şahıs sorgula ve depola
Kullanıcı tarafından girilecek veriler:
- Şirket/Şahıs bilgilerini (Sunucuya sorgulama yaptırmak istemezseniz)
- Adres bilgisi
- Fatura satır bilgileri dizi
- Satır toplam bilgileri
Oturum açtıktan sonra ETTN(UUID) değeri alma isteği:
const params = {
cmd:'EARSIV_PORTAL_UUID_GETIR',
token: token,
jp: JSON.stringify({})
}
fetch("https://earsivportal.efatura.gov.tr/earsiv-services/dispatch", {
"headers": {
"accept": "application/json, text/javascript, */*; q=0.01",
"accept-language": "tr-TR,tr;q=0.9,en-US;q=0.8,en;q=0.7",
"content-type": "application/x-www-form-urlencoded; charset=UTF-8",
"sec-fetch-dest": "empty",
"sec-fetch-mode": "cors",
"sec-fetch-site": "same-origin"
},
"referrerPolicy": "strict-origin-when-cross-origin",
"body": new URLSearchParams(params),
"method": "POST",
"mode": "cors",
"credentials": "omit" // localhost üzerinden atınca include falan olabiliyor net hatırlamıyorum.
});
Vergi/TC Sorgulama
const params = {
cmd: '',
token: token,
pageName: 'RG_BASITFATURA',
jp: JSON.stringify({vknTcknn: 'vergi/tcno'})
}
fetch("https://earsivportal.efatura.gov.tr/earsiv-services/dispatch", {
"headers": {
"accept": "application/json, text/javascript, */*; q=0.01",
"accept-language": "tr-TR,tr;q=0.9,en-US;q=0.8,en;q=0.7",
"content-type": "application/x-www-form-urlencoded; charset=UTF-8",
"sec-fetch-dest": "empty",
"sec-fetch-mode": "cors",
"sec-fetch-site": "same-origin"
},
"referrerPolicy": "strict-origin-when-cross-origin",
"body": new URLSearchParams(params),
"method": "POST",
"mode": "cors",
"credentials": "omit"
});