Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

Διαδικτυακή Υπηρεσία Α.Α.Δ.Ε. «Αναζήτηση Βασικών Στοιχείων Μητρώου Επιχειρήσεων»

Îåêßíçóå áðü ôï ìÝëïò γιωργος μπακογιαννης. Τελευταία δημοσίευση από το μέλος bazzil στις 18-05-2022, 02:31. Υπάρχουν 8 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  20-11-2018, 13:43 78326

    Διαδικτυακή Υπηρεσία Α.Α.Δ.Ε. «Αναζήτηση Βασικών Στοιχείων Μητρώου Επιχειρήσεων»

    Καλησπέρα,
    Έχει ασχοληθεί κάποιος με την Αναζήτηση Βασικών Στοιχείων Μητρώου Επιχειρήσεων σε περιβάλλον .net ?
    Σχετική σελίδα: https://www.aade.gr/epicheireseis/phorologikes-yperesies/metroo/anazetese-basikon-stoicheion-metrooy-epicheireseon 


    Ευχαριστώ


    while (!dead) learn();
  •  20-11-2018, 14:03 78327 σε απάντηση της 78326

    Απ: Διαδικτυακή Υπηρεσία Α.Α.Δ.Ε. «Αναζήτηση Βασικών Στοιχείων Μητρώου Επιχειρήσεων»

    Καλησπέρα,

    Από το διάβασμα του documentation φαίνεται αρκετά straight-forward - θα πρέπει να κάνεις αναφορά στο service (https://www1.gsis.gr/wsaade/RgWsPublic2/RgWsPublic2?WSDL) και μετά να χρησιμοποιήσεις τον service proxy που φτιάχνει το Visual Studio για σένα. Λογικά μπορείς να κάνεις το ίδιο και από command line με το wsdl.exe από το Developer command prompt του Visual Studio.

    Τι ακριβώς είναι αυτό που σε προβληματίζεις

     

    George J.

     


    George J. Capnias: Χειροπρακτικός Υπολογιστών, Ύψιστος Γκουράρχης της Κουμπουτερολογίας
    w: capnias.org, t: @gcapnias, l: gr.linkedin.com/in/gcapnias
    dotNETZone.gr News
  •  20-11-2018, 15:41 78328 σε απάντηση της 78327

    Απ: Διαδικτυακή Υπηρεσία Α.Α.Δ.Ε. «Αναζήτηση Βασικών Στοιχείων Μητρώου Επιχειρήσεων»

    Την αναφορά την έκανα στο service, αλλά δεν ξέρω με τις κλάσεις / συναρτήσεις πως να τις καλέσεις και με ποιο σειρά.
    Δεν βρήκα κάτι σχετικό εκτός από την εφαρμογή που είναι σε java, αλλά από java δεν ξέρω.
    Δεν βρήκα επίσης κάποια τεκμηρίωση.
    Έχω υλοποίηση ποιο παλιά κάτι σχετικό vies { http://ec.europa.eu/taxation_customs/vies/ } και λειτουργεί μια χαρά μέχρι τώρα.
    Αλλά η υπηρεσία της ΑΑΔΕ δίνει ποιο πολλά στοιχεία.

    Αυτά!


    while (!dead) learn();
  •  20-11-2018, 15:51 78329 σε απάντηση της 78328

    Απ: Διαδικτυακή Υπηρεσία Α.Α.Δ.Ε. «Αναζήτηση Βασικών Στοιχείων Μητρώου Επιχειρήσεων»

    :-)

    Δεν μπορεί μια υπηρεσία να είναι πιο συγκεκριμένη από το να δίνει το .wsdl - το link που περιέχεται στην σελίδα που ανέφερες, "Υλικό τεκμηρίωσης για προγραμματιστές" είναι αυτά που χρειάζονται.

    Ο κώδικας που χρειάζεσαι είναι κάπως έτσι:

                using (RgWsPublic2Service_InterfaceClient client = new RgWsPublic2Service_InterfaceClient())

                {

                    rg_ws_public2_input_rtType type = new rg_ws_public2_input_rtType();

                    type.afm_called_by = "";

                    type.afm_called_for = "";


                    rgWsPublic2AfmMethodRequestType request = new rgWsPublic2AfmMethodRequestType();

                    request.INPUT_REC = type;


                    rgWsPublic2AfmMethodResponseType response = client.rgWsPublic2AfmMethod(request);

                    if (response.result != null && response.result.rg_ws_public2_result_rtType != null)

                    {


                    }

                } 

     

    George J.
     


    George J. Capnias: Χειροπρακτικός Υπολογιστών, Ύψιστος Γκουράρχης της Κουμπουτερολογίας
    w: capnias.org, t: @gcapnias, l: gr.linkedin.com/in/gcapnias
    dotNETZone.gr News
  •  20-11-2018, 16:15 78330 σε απάντηση της 78329

    Απ: Διαδικτυακή Υπηρεσία Α.Α.Δ.Ε. «Αναζήτηση Βασικών Στοιχείων Μητρώου Επιχειρήσεων»

    George σε ευχαριστώ για την βοήθεια σου. Δυστυχώς δεν έχω εμπειρία σε web εφαρμογές.

    Όταν "τρέχεί" η εντολή  { ... var response = client.rgWsPublic2AfmMethod(request); ... }

    Σκάει System.ServiceModel.Security.SecurityNegotiationException.

    Message=Could not establish secure channel for SSL/TLS with authority 'www1.gsis.gr'. 

    WebException: The request was aborted: Could not create SSL/TLS secure channel.

    Στην εφαρμογή που είναι σε java {σχετ εικόνα: https://imgur.com/3uzMdUq } κάπου πρέπει να γραφτεί το user name και το password.


     


    while (!dead) learn();
  •  20-11-2018, 16:24 78331 σε απάντηση της 78330

    Απ: Διαδικτυακή Υπηρεσία Α.Α.Δ.Ε. «Αναζήτηση Βασικών Στοιχείων Μητρώου Επιχειρήσεων»

    Εάν μπορέσω και την υπολογίσω θα την καθαρό-γράψω σε μια κλάση για να τη έχει όποιος την θέλει.
    while (!dead) learn();
  •  14-05-2022, 09:31 78579 σε απάντηση της 78331

    Απ: Διαδικτυακή Υπηρεσία Α.Α.Δ.Ε. «Αναζήτηση Βασικών Στοιχείων Μητρώου Επιχειρήσεων»

    Επειδή αντιμετοπίζω το ίδιο πρόβλημα με 'σενα, απ ότι κατάλαβα δεν σου δίνει δυνατότητα να στείλεις username & password. Πρέπει να τα στείλεις μέσω SoapClient και SoapHeader πράγμα που δεν βρήκα τρόπο πως να το κάνω στο visual studio σε vb ή C# ενώ γίνεται σε java ή php. Ισως με WebService αλλα δεν έχω την όρεξη να δοκιμάσω.

     Τελικά κατέληξα να το κάνω όπως το myData με http request στέλνω στο WSDL url το xml που δίνουν στην τεκμηρίωση συμπληρωμένο με τα στοιχεία πρόσβασης και απο την απάντηση πέρνω το XML μέσα απο το <srvc:result> και με parsing επιλέγω τα στοιχεία που θέλω.

    Μόλις τελειώσω θα τ ανεβάσω στο git-hub

    Σε περίπτωση που δεις την απάντηση, εσύ με ποιό τρόπο το έκανες;

  •  16-05-2022, 14:30 78581 σε απάντηση της 78579

    Απ: Διαδικτυακή Υπηρεσία Α.Α.Δ.Ε. «Αναζήτηση Βασικών Στοιχείων Μητρώου Επιχειρήσεων»

    Καλησπέρα bazzil,

    Επειδή είχα την τύχη την περασμένη βδομάδα να έχω προσωπική ενασχόληση με το συγκεκριμένα service - πλην της θεωρητικής καθοδήγησης που είχα γράψει εδώ, πριν μερικά χρόνια. 

    Η αλήθεια είναι ότι είχα γράψει, ισχύει ακόμα, και ας έχουν περάσει τόσα χρόνια - αλλά, υπάρχει αλλά...

    Αρχικά, ένα service είναι ένα service και πάντα πρέπει να του φέρεσαι έτσι και να το χρησιμοποιείς έτσι. Συγκεκριμένα, το Visual Studio και περισσότερο δε το .NET Framework, σου δίνει τα εργαλεία για να χειριστείς τα XML web services και σου φτιάχνει αυτόματα class stubs για τη εύκολη χρήση τους. Το "σωστό" θα ήταν να πάρεις αυτό το δρόμο, μιας και η ενημέρωση του service αργότερα θα είναι και δεξί κλικ στο Visual Studio, αν ποτέ το χρειαστείς - αυτή η πρακτική δεν είναι ποτέ λάθος.

    Το "αλλά" ξεκινάει από την ελλιπή τεκμηρίωση του service από την ίδια την αρχή που το διαθέτει - σου δίνονται δείγματα XML αρχείων. Προφανώς αυτός που έφτιαξε το πακέτο υποστήριξης δεν είναι ακριβώς προγραμματιστής, και αυτό που βρήκε χρήσιμο το έβαλε μαζί με την υπηρεσία σαν documentation, για να βοηθήσει άλλους προγραμματιστές.

    Να σου πω ότι έψαξα στο internet να βρω κάτι έτοιμο και αυτά που βρήκα ήταν τα εξής:

    - Μια υλοποίηση του καθηγητή Δ. Σπινέλη (https://github.com/dspinellis/greek-vat-data), αλλά η υλοποίηση για το service σε C# είναι ένα text template που συμπληρώσεις τα δεδομένα - δεν υπάρχει το stub που φτιάχνει το .NET Framework.

    - Σε ένα forum (http://www.logistis-forotexnis.gr) βρήκα το link για ένα pdf, που σίγουρα βοηθάει να δεις πως λειτουργεί το service (http://www.logistis-forotexnis.gr/ckfinder/userfiles/files/%CE%9F%CE%B4%CE%B7%CE%B3%CE%AF%CE%B5%CF%82%20%CE%B3%CE%B9%CE%B1%20%CE%A0%CF%81%CE%BF%CE%B3%CF%81%CE%B1%CE%BC%CE%BC%CE%B1%CF%84%CE%B9%CF%83%CF%84%CE%AD%CF%82.pdf), αλλά αν κάτσεις και το ακολουθήσεις θα δεις ότι το SoapUI δεν δίνει λύση σε αυτό που θες - πιο πολύ σε πάρει πίσω στα εργαλεία του .NET Framework, παρά σε οδηγεί πως να περάσεις τα στοιχεία που θες στο header και να καλέσεις την υπηρεσία.

    - Σαν να μην έφταναν τα παραπάνω, το σχετικό documentation για τα XML services από την Microsoft είναι πλέον ελλιπές - σε σχέση με το αρχικό documentation που υπήρχε, πολλά έχουν διαγραφεί, ή έχουν αλλάξει ή αναμένουν να διορθωθούν και να προσαρμοστούν στο .NET Core. Οπότε ούτε από εκεί έρχεται η βοήθεια που θες.

    Αυτό που με οδήγησε σε αυτό που ήθελα από την αρχή - να χρησιμοποιήσω το stub class και να περάσω την ασφάλεια στο header του request ήταν ένα post στο stackoverflow.com: (https://stackoverflow.com/questions/5833539/how-to-add-security-header-to-a-soap-message). Η ερώτηση είναι το πρόβλημα που θέλουμε να λύσουμε στην περίπτωση του service της ΑΑΔΕ. Η εύκολη λύση είναι η 2η, να φτιάξεις το header σαν xml και να το φορτώσεις στο request του stub και να πάρεις την απάντηση. Η πρώτη λύση με την χρήση του WSE 2.0, μπορεί και να παίζει, αλλά δεν την προτίμησα γιατί το WSE 2.0, έχει γίνει WSE 3.0 και ήταν extensions επάνω στο πρότυπο του SOAP, ουσιαστικά μιλάμε για το "παππού" των WCF services. Όπως το WCF, έτσι και με το WSE δεν θες να εξαρτάσαι από αυτά, αλλά να είσαι μακριά.

    Δεν έχω κώδικα να σου δείξω άμεσα, αλλά θα το κάνω το συντομότερο...


    George J.  


    George J. Capnias: Χειροπρακτικός Υπολογιστών, Ύψιστος Γκουράρχης της Κουμπουτερολογίας
    w: capnias.org, t: @gcapnias, l: gr.linkedin.com/in/gcapnias
    dotNETZone.gr News
  •  18-05-2022, 02:31 78582 σε απάντηση της 78581

    Απ: Διαδικτυακή Υπηρεσία Α.Α.Δ.Ε. «Αναζήτηση Βασικών Στοιχείων Μητρώου Επιχειρήσεων»

    Καλημέρα. Ευχαριστώ για την απάντηση. Στην αναζήτηση που είχα κανει σχετικά για την υπηρεσία αυτή βρήκα διάφορα παραδείγματα στα οποία περνούσαν ως παράμετρο ένα αντικείμενο user που είχε τα στοιχεία πρόσβασης.

    Αν δεις στο VB & Soap Authentication (microsoft.com)  στο πρώτο Post εχει προς το τέλος του κώδικα  την γραμμή .rgWsPublicAfmMethod(m, user, userarr, pid, errorvar) 

    το έχω δει και σ αυτό το παράδειγμα rgwspublic package - github.com/kamhlos/rgwspublic - pkg.go.dev με γλώσσα Go το οποίο καλεί την gwspublic.AFMInfo("", "998184801", username, password) όπου περνάει τα στοιχεία πρόσβασης στις παραμέτρους.

    Στην τεκμηρίωση του υπουργείου  δεν γράφει τίποτε για το πως να περάσεις τα στοιχεία πρόσβασης. Θεώρησα πως τα παραδείγματα που έχει είναι για κάνουμε post εμείς το XML. Με αυτό τον τρόπο το έχω κάνει.

    Επίσης αν κάνεις import το url ως web reference δεν έχει κάποια κλάση για το πέρασμα των στοιχείων.

    Βλέποντας  τον πηγαιο κώδικα της εφαρμογής που είχε σε java την οποία έδινε το υποργείο με την τεκμηρίωση αλλά και σε php που βρήκα εδώ soap php request with login in header - Stack Overflow, κατέληξα στο συμπέρασμα ότι δεν σου δίνει δυνατότητα να περάσεις τα στοιχεία μέσω κάποια παραμέτρου και πως θα πρέπει να περάσεις τα δεδομένα στο header του σχήματος του xml που περιγράφει την υπηρεσία μέσω κατάλληλων soap κλάσεων μέσω WebServece dll. 

    Και σ αυτό το άρθρο c# - How to add security header to a SOAP message? - Stack Overflow που ανέβασες το κάνει με αυτό τον τρόπο.

    Χρησιμοποιώντας μόνο το url της υπηρεσία είτε σαν web reference είτε σαν Connected Service  κατάφερα ότι και με το παράδειγμα σου που είχες παραθέσει παλαιότερα. Να καλώ μόνο το version info 

    Δοκίμασα κι αυτό χωρίς επιτυχία

    Dim xxa As New http_request.ServiceInterface.RgWsPublic2Service_InterfaceClient()

    xxa.ClientCredentials.UserName.UserName = "username"

    xxa.ClientCredentials.UserName.Password = "password"


    Τελικά, για να μπορέσω να συνεχίσω την δουλεία μου το έκανα όπως  εδώ https://github.com/bazzil/AADE_RgWsService όπως το παράδειγμα του καθηγητού που έχεις αναρτήσει

    Eχω κάνει και σχετικό dll στο ίδιο έργο μέσα.

    Κάποια στιγμή θα δοκιμάσω με το παράδειγμα  https://stackoverflow.com/questions/5833539/how-to-add-security-header-to-a-soap-message


     

     

Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems