v2.5.2
Giriş yap

PHP Efatura api kurmaya calisiyorum

spleidanger
199 defa görüntülendi

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://github.com/furkankadioglu/efatura

trsherlock
73 gün önce

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