furkankadioglu / efatura

eArşiv üzerinden Fatura Oluşturucu

Home Page:https://furkankadioglu.github.io/efatura/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

SMS Doğrulayabilen Var mı?

sauronntrr opened this issue · comments

Merhaba,
Bu sorunun çözümünü bulan var mı arkadaşlar? verifySMSCode fonksiyonu 1 sonucu veriyor ama faturayı yine de onaylamıyor.
1.9.4 e güncelledim yine aynı...

Ek: Murat beyin yazdığı Get sistemiyle doğrulama oluyor fakat bir türlü mantığını anlamadım. Aşama aşama olmasın diye uğrağtım. Operasyon id dönüyor sms doğru giriliyor cevap 1 geliyor yine de eksik nedir çözemedim.

Projemi uyguladığım şirketlerden biri bu sene eFaturaya geçti. Kendi şirketimde ise şimdilik keseceğim bir fatura bulunmuyor. Bu yüzden aktif olarak test edemiyorum.
En kısa sürede test edip döneceğim.

Projemi uyguladığım şirketlerden biri bu sene eFaturaya geçti. Kendi şirketimde ise şimdilik keseceğim bir fatura bulunmuyor. Bu yüzden aktif olarak test edemiyorum.
En kısa sürede test edip döneceğim.

Murat bey teşekkür ederim.
Mantığınıza yatan bir şey varsa ben de sorunu çözüp çözümünü paylaşabilirim. Size de zahmet veriyoruz. Dediğim gibi aşama aşama get ile yapmakla bizim yaptığımız sistemin ne farkı olabilir onu anlamadım.

Projemi uyguladığım şirketlerden biri bu sene eFaturaya geçti. Kendi şirketimde ise şimdilik keseceğim bir fatura bulunmuyor. Bu yüzden aktif olarak test edemiyorum.
En kısa sürede test edip döneceğim.

Murat bey teşekkür ederim. Mantığınıza yatan bir şey varsa ben de sorunu çözüp çözümünü paylaşabilirim. Size de zahmet veriyoruz. Dediğim gibi aşama aşama get ile yapmakla bizim yaptığımız sistemin ne farkı olabilir onu anlamadım.

İlk aklıma gelen şey şu oldu: Sizin senaryonuzdaki sıralama nasıl bilmiyorum; SMS gönderme işlemi için fatura seçmeye gerek yok ancak fatura onaylamak için öncesinde getEttnInvoiceFromAPIArray ile faturayı sistemden isteyip hazırlamak gerekebilir.

Buna benzer bir sorunu SMS gönderirken yaşamıştık. Eski versiyonlarda telefon numarasını ayarlayabiliyorduk ancak GIB'e gelen güncelleme ile önce telefon numarası sorgusu yaparak sistemin telefon numarasını "hazırlaması" gerekiyordu. SMS gönderme sisteminin başına bu hazırlık aşamasını ekleyerek bunu çözdük.

private function initializeSMSVerification()

Eğer sizin senaryonuzda önce getEttnInvoiceFromAPIArray ile faturayı çekmeden sms onaylama yapıyorsanız bu sebeple olmuyor olabilir. Bu ilk aklıma gelen şey ve şu an deneyemiyorum ancak ilk fatura kestiğimde deneyeceğim.
Siz de bu sıralamayla gidiyor fakat onaylayamıyorsanız başka yerlere bakmamız gerekebilir.

Tekrar teşekkür ederim murat bey cevabınız için.
Ne yaptıysam olmadı malesef. Madem olmuyor gibte nasıl true dönüyor akıl erdiremedim..

Projemi uyguladığım şirketlerden biri bu sene eFaturaya geçti. Kendi şirketimde ise şimdilik keseceğim bir fatura bulunmuyor. Bu yüzden aktif olarak test edemiyorum.
En kısa sürede test edip döneceğim.

Murat bey teşekkür ederim. Mantığınıza yatan bir şey varsa ben de sorunu çözüp çözümünü paylaşabilirim. Size de zahmet veriyoruz. Dediğim gibi aşama aşama get ile yapmakla bizim yaptığımız sistemin ne farkı olabilir onu anlamadım.

İlk aklıma gelen şey şu oldu: Sizin senaryonuzdaki sıralama nasıl bilmiyorum; SMS gönderme işlemi için fatura seçmeye gerek yok ancak fatura onaylamak için öncesinde getEttnInvoiceFromAPIArray ile faturayı sistemden isteyip hazırlamak gerekebilir.

Buna benzer bir sorunu SMS gönderirken yaşamıştık. Eski versiyonlarda telefon numarasını ayarlayabiliyorduk ancak GIB'e gelen güncelleme ile önce telefon numarası sorgusu yaparak sistemin telefon numarasını "hazırlaması" gerekiyordu. SMS gönderme sisteminin başına bu hazırlık aşamasını ekleyerek bunu çözdük.

private function initializeSMSVerification()

Eğer sizin senaryonuzda önce getEttnInvoiceFromAPIArray ile faturayı çekmeden sms onaylama yapıyorsanız bu sebeple olmuyor olabilir. Bu ilk aklıma gelen şey ve şu an deneyemiyorum ancak ilk fatura kestiğimde deneyeceğim. Siz de bu sıralamayla gidiyor fakat onaylayamıyorsanız başka yerlere bakmamız gerekebilir.

Sorunu dün çözdüm. Faturaları onaylıyor. Toplu onaylamayı yapamadım sadece. setUuid sadece string kabul ettiği için arraydeki ilk değeri set edip, getEttnInvoiceFromAPIArray fonksiyonuna da array ı gönderdim. Yine sonuç 1 döndü ama imzalamadı. Olsun yine de bu da bir şeydir :)
Teşekkürker.

$uuid = array("dfe094de-7513-11ec-8569-00155dfd5633","1de30e14-72e0-11ec-98f4-fcaa151b8a56");

uuid dizisni tanımlarken hata yapmış olabilirsiniz. veya işlem sırasında bir hata olabilir.

  $client = new InvoiceManager();
  $client->setUsername($this->User)->setPassword($this->Pass);
  $client->connect();
  $dateStart = "01/01/2022";
  $dateEnd = date("d/m/Y");
  $client->getEttnInvoiceFromAPIArray($dateStart, $dateEnd,$uuid);
  $result = $client->verifySMSCode($_POST["Sms_Sifre"] , $_POST["Sms_id"]);
  if ($result) {return true;}else {return false;}
  $client->logOutFromAPI();

Ben Bu şekilde girdiğimde herhangi bir hata almıyorum. Biraz önce test ettim.

Merhaba telefon numarasını Portaldaki Kişisel Bilgiler sayfasındaki Tel No alanına yazılan bilgiden mi alıyor?
Bir de telefon numarası +90 şeklinde mi olmalı yoksa 5XX formatında mı?

Teşekkürler.

Merhaba telefon numarasını Portaldaki Kişisel Bilgiler sayfasındaki Tel No alanına yazılan bilgiden mi alıyor? Bir de telefon numarası +90 şeklinde mi olmalı yoksa 5XX formatında mı?

Teşekkürler.

Portaldan alıyor.

Merhaba telefon numarasını Portaldaki Kişisel Bilgiler sayfasındaki Tel No alanına yazılan bilgiden mi alıyor? Bir de telefon numarası +90 şeklinde mi olmalı yoksa 5XX formatında mı?
Teşekkürler.

Portaldan alıyor.

Teşekkürler. Formatı nasıl olmalı peki?

$uuid = array("dfe094de-7513-11ec-8569-00155dfd5633","1de30e14-72e0-11ec-98f4-fcaa151b8a56");

uuid dizisni tanımlarken hata yapmış olabilirsiniz. veya işlem sırasında bir hata olabilir.

  $client = new InvoiceManager();
  $client->setUsername($this->User)->setPassword($this->Pass);
  $client->connect();
  $dateStart = "01/01/2022";
  $dateEnd = date("d/m/Y");
  $client->getEttnInvoiceFromAPIArray($dateStart, $dateEnd,$uuid);
  $result = $client->verifySMSCode($_POST["Sms_Sifre"] , $_POST["Sms_id"]);
  if ($result) {return true;}else {return false;}
  $client->logOutFromAPI();

Ben Bu şekilde girdiğimde herhangi bir hata almıyorum. Biraz önce test ettim.

Bir öncesinde fatura set ettiğim için toplu onaylama yapamıyormuşum. Bu şekide oldu teşekkür ederim.

Merhaba telefon numarasını Portaldaki Kişisel Bilgiler sayfasındaki Tel No alanına yazılan bilgiden mi alıyor? Bir de telefon numarası +90 şeklinde mi olmalı yoksa 5XX formatında mı?
Teşekkürler.

Portaldan alıyor.

Teşekkürler. Formatı nasıl olmalı peki?

Telefon numarasını herhangi bir yere yazmıyorsunuz ki portaldaki haliyle alıyor.

Merhaba telefon numarasını Portaldaki Kişisel Bilgiler sayfasındaki Tel No alanına yazılan bilgiden mi alıyor? Bir de telefon numarası +90 şeklinde mi olmalı yoksa 5XX formatında mı?
Teşekkürler.

Portaldan alıyor.

Teşekkürler. Formatı nasıl olmalı peki?

Telefon numarasını herhangi bir yere yazmıyorsunuz ki portaldaki haliyle alıyor.

Test ortamında yazılabiliyor da ondan dolayı sormuştum. Sanırım SMS onayı sadece production ortamında çalışıyor.

Merhaba telefon numarasını Portaldaki Kişisel Bilgiler sayfasındaki Tel No alanına yazılan bilgiden mi alıyor? Bir de telefon numarası +90 şeklinde mi olmalı yoksa 5XX formatında mı?
Teşekkürler.

Portaldan alıyor.

Teşekkürler. Formatı nasıl olmalı peki?

Telefon numarasını herhangi bir yere yazmıyorsunuz ki portaldaki haliyle alıyor.

Test ortamında yazılabiliyor da ondan dolayı sormuştum. Sanırım SMS onayı sadece production ortamında çalışıyor.

Evet, SMS onayı canlı ortamda çalışıyor sadece.

Projemi uyguladığım şirketlerden biri bu sene eFaturaya geçti. Kendi şirketimde ise şimdilik keseceğim bir fatura bulunmuyor. Bu yüzden aktif olarak test edemiyorum.
En kısa sürede test edip döneceğim.

Murat bey teşekkür ederim. Mantığınıza yatan bir şey varsa ben de sorunu çözüp çözümünü paylaşabilirim. Size de zahmet veriyoruz. Dediğim gibi aşama aşama get ile yapmakla bizim yaptığımız sistemin ne farkı olabilir onu anlamadım.

İlk aklıma gelen şey şu oldu: Sizin senaryonuzdaki sıralama nasıl bilmiyorum; SMS gönderme işlemi için fatura seçmeye gerek yok ancak fatura onaylamak için öncesinde getEttnInvoiceFromAPIArray ile faturayı sistemden isteyip hazırlamak gerekebilir.
Buna benzer bir sorunu SMS gönderirken yaşamıştık. Eski versiyonlarda telefon numarasını ayarlayabiliyorduk ancak GIB'e gelen güncelleme ile önce telefon numarası sorgusu yaparak sistemin telefon numarasını "hazırlaması" gerekiyordu. SMS gönderme sisteminin başına bu hazırlık aşamasını ekleyerek bunu çözdük.

private function initializeSMSVerification()

Eğer sizin senaryonuzda önce getEttnInvoiceFromAPIArray ile faturayı çekmeden sms onaylama yapıyorsanız bu sebeple olmuyor olabilir. Bu ilk aklıma gelen şey ve şu an deneyemiyorum ancak ilk fatura kestiğimde deneyeceğim. Siz de bu sıralamayla gidiyor fakat onaylayamıyorsanız başka yerlere bakmamız gerekebilir.

Sorunu dün çözdüm. Faturaları onaylıyor. Toplu onaylamayı yapamadım sadece. setUuid sadece string kabul ettiği için arraydeki ilk değeri set edip, getEttnInvoiceFromAPIArray fonksiyonuna da array ı gönderdim. Yine sonuç 1 döndü ama imzalamadı. Olsun yine de bu da bir şeydir :) Teşekkürker.

Siz bu sorunu nasıl çözdünüz acaba ? Ben de aynı durumdayım da şu anda. c# a port etmeye çalışıyorum kodu. 1 inde işyerimde kullanmaya başlayacağız. ama onaylandı dese de bir türlü, gerçekten onaylamıyor.

@sharkgrin

SMS kodunun gitmesini sağladıysanız doğrulama için verifySMSCode

public function verifySMSCode($code, $operationId)

çağırmadan önce getEttnInvoiceFromAPIArray methodu çağırılmalı.

public function getEttnInvoiceFromAPIArray($startDate, $endDate, $ettn)

protected olan $invoices değişkeninde onaylanacak faturaların ettn numarası tanımlı olması gerekiyor.

protected $invoices = [];

@muratak18 bey çok teşekkür ediyorum, esasında bunu yapıyorum ama sanırım gözümden kaçan bir şeyler var. sonuçtan haberdar ederin sizi de. sağolun.

@muratak18 bey çok teşekkür ediyorum, esasında bunu yapıyorum ama sanırım gözümden kaçan bir şeyler var. sonuçtan haberdar ederin sizi de. sağolun.

Rica ederim. Size bahsettiğim şekilde kullanıyorum ve faturalar onaylanıyor. Bu kütüphane için izlenmesi gereken yol bu ama siz c# a port ediyorsanız aynı yolu izleyerek yazmanız şart değil. Önemli olan e-arşiv portala isteği gönderirken onaylayacağınız fatura/faturaların ettn bilgisinin gidiyor olması:

'DATA' => $this->invoices,

Nihayet çözüldü :) burası için biraz alakasız bir bilgi ama, belki denk gelirsiniz bir yerlerde. bir json objesine başka bir json string i verip yeniden serialize ettiğim için (DATA parametesi) bir sürü string escape karakteri ("") oluşuyor stringin içinde. Çok teşekkür ediyorum yardımlarınız için tekrar.