CYFROWY BARON • PROGRAMOWANIE • Zobacz wątek - Integracja aplikacji z Elektronicznym Nadawcą Poczty
Strona 1 z 1

Integracja aplikacji z Elektronicznym Nadawcą Poczty

Nowy postNapisane: środa, 17 maja 2017, 15:21
przez mate006
Witam serdecznie

Od tygodnia męczę się z integracją własnej aplikacji z EN Poczty poprzez wsdl, znalazłem kod do śledzenia:

KOD cpp:     UKRYJ  
 
        System.Net.NetworkCredential c = new System.Net.NetworkCredential();
        c.UserName = "sledzeniepp";
        c.Password = "PPSA";
        System.Net.CredentialCache cc = new System.Net.CredentialCache();
        cc.Add(new Uri("https://tt.poczta-polska.pl/Sledzenie/services/Sledzenie?wsdl"), "Basic", c);
        wSledz.Credentials = cc;

        string ff = wSledz.witaj("ssss");''
 
Jednak nie wiem jak podpiąć System.Net.NetworkCredential do własnego programu.

Re: Integracja aplikacji z Elektronicznym Nadawcą Poczty

Nowy postNapisane: wtorek, 30 maja 2017, 14:07
przez mate006
Witam

Wie ktoś jak to rozwiązać w C++ Builder?

Bardzo mi na tym zależy

Re: Integracja aplikacji z Elektronicznym Nadawcą Poczty

Nowy postNapisane: środa, 31 maja 2017, 10:14
przez polymorphism
Nie znam tematu, ale jakie to ma znaczenie, czy to jest C++ Builder, czy nie?

Re: Integracja aplikacji z Elektronicznym Nadawcą Poczty

Nowy postNapisane: środa, 31 maja 2017, 15:33
przez mate006
Chodzi o to że nie wiem jak to w C++ Builder można zakodować. Obstawiam że trzeba podpiąć jakąś bibliotekę, ale nie wiem jaką

Re: Integracja aplikacji z Elektronicznym Nadawcą Poczty

Nowy postNapisane: środa, 31 maja 2017, 18:23
przez polymorphism
Z tego, co pamiętam, bo swego czasu był tu ktoś, kto wykorzystywał WSDL do obsługi bodajże allegro, musisz wygenerować ze specjalnego pliku wsdl bibliotekę/zestaw klas do obsługi usługi/protokołu sieciowego, który chcesz wykorzystać. Jak już będziesz miał pliki źródłowe, to dodaj je do swojego projektu tak, jak dodajesz każde inne pliki .cpp.

Re: Integracja aplikacji z Elektronicznym Nadawcą Poczty

Nowy postNapisane: środa, 7 czerwca 2017, 14:42
przez mate006
Ten ktoś to ja :),

Co do logowania to udało mi się, i wszystko ok pobierać pobiera super, ale jak chce wysłać list czy paczkę to pojawia się problem w stylu że

Produkt (paczka nieobsługiwana()) nie znajduje się na umowie zawartej z Pocztą Polską



to wygenerowałem przez WSDL Importer (to tylko część odpowiedzialna za generowanie przesyłek)

KOD cpp:     UKRYJ  
class przesylkaBiznesowaType : public przesylkaBiznesowaType
{
private:
  zasadySpecjalneEnum FzasadySpecjalne;
  bool            FzasadySpecjalne_Specified;
  masaType        Fmasa;
  bool            Fmasa_Specified;
  gabarytBiznesowaType Fgabaryt;
  bool            Fgabaryt_Specified;
  bool            Fniestandardowa;
  bool            Fniestandardowa_Specified;
  wartoscType     Fwartosc;
  bool            Fwartosc_Specified;
  bool            Fostroznie;
  bool            Fostroznie_Specified;
  numerTransakcjiOdbioruType FnumerTransakcjiOdbioru;
  bool            FnumerTransakcjiOdbioru_Specified;
  pobranieType*   Fpobranie;
  bool            Fpobranie_Specified;
  urzadWydaniaEPrzesylkiType* FurzadWydaniaEPrzesylki;
  bool            FurzadWydaniaEPrzesylki_Specified;
  Array_Of_subPrzesylkaBiznesowaType FsubPrzesylka;
  bool            FsubPrzesylka_Specified;
  ubezpieczenieType* Fubezpieczenie;
  bool            Fubezpieczenie_Specified;
  EPOType*        Fepo;
  bool            Fepo_Specified;
  void __fastcall SetzasadySpecjalne(int Index, zasadySpecjalneEnum _prop_val)
  {  FzasadySpecjalne = _prop_val; FzasadySpecjalne_Specified = true;  }
  bool __fastcall zasadySpecjalne_Specified(int Index)
  {  return FzasadySpecjalne_Specified;  }
  void __fastcall Setmasa(int Index, masaType _prop_val)
  {  Fmasa = _prop_val; Fmasa_Specified = true;  }
  bool __fastcall masa_Specified(int Index)
  {  return Fmasa_Specified;  }
  void __fastcall Setgabaryt(int Index, gabarytBiznesowaType _prop_val)
  {  Fgabaryt = _prop_val; Fgabaryt_Specified = true;  }
  bool __fastcall gabaryt_Specified(int Index)
  {  return Fgabaryt_Specified;  }
  void __fastcall Setniestandardowa(int Index, bool _prop_val)
  {  Fniestandardowa = _prop_val; Fniestandardowa_Specified = true;  }
  bool __fastcall niestandardowa_Specified(int Index)
  {  return Fniestandardowa_Specified;  }
  void __fastcall Setwartosc(int Index, wartoscType _prop_val)
  {  Fwartosc = _prop_val; Fwartosc_Specified = true;  }
  bool __fastcall wartosc_Specified(int Index)
  {  return Fwartosc_Specified;  }
  void __fastcall Setostroznie(int Index, bool _prop_val)
  {  Fostroznie = _prop_val; Fostroznie_Specified = true;  }
  bool __fastcall ostroznie_Specified(int Index)
  {  return Fostroznie_Specified;  }
  void __fastcall SetnumerTransakcjiOdbioru(int Index, numerTransakcjiOdbioruType _prop_val)
  {  FnumerTransakcjiOdbioru = _prop_val; FnumerTransakcjiOdbioru_Specified = true;  }
  bool __fastcall numerTransakcjiOdbioru_Specified(int Index)
  {  return FnumerTransakcjiOdbioru_Specified;  }
  void __fastcall Setpobranie(int Index, pobranieType* _prop_val)
  {  Fpobranie = _prop_val; Fpobranie_Specified = true;  }
  bool __fastcall pobranie_Specified(int Index)
  {  return Fpobranie_Specified;  }
  void __fastcall SeturzadWydaniaEPrzesylki(int Index, urzadWydaniaEPrzesylkiType* _prop_val)
  {  FurzadWydaniaEPrzesylki = _prop_val; FurzadWydaniaEPrzesylki_Specified = true;  }
  bool __fastcall urzadWydaniaEPrzesylki_Specified(int Index)
  {  return FurzadWydaniaEPrzesylki_Specified;  }
  void __fastcall SetsubPrzesylka(int Index, Array_Of_subPrzesylkaBiznesowaType _prop_val)
  {  FsubPrzesylka = _prop_val; FsubPrzesylka_Specified = true;  }
  bool __fastcall subPrzesylka_Specified(int Index)
  {  return FsubPrzesylka_Specified;  }
  void __fastcall Setubezpieczenie(int Index, ubezpieczenieType* _prop_val)
  {  Fubezpieczenie = _prop_val; Fubezpieczenie_Specified = true;  }
  bool __fastcall ubezpieczenie_Specified(int Index)
  {  return Fubezpieczenie_Specified;  }
  void __fastcall Setepo(int Index, EPOType* _prop_val)
  {  Fepo = _prop_val; Fepo_Specified = true;  }
  bool __fastcall epo_Specified(int Index)
  {  return Fepo_Specified;  }

public:
  __fastcall ~przesylkaBiznesowaType();
__published:
  __property zasadySpecjalneEnum zasadySpecjalne = { index=(IS_ATTR | IS_OPTN), read=FzasadySpecjalne, write=SetzasadySpecjalne, stored = zasadySpecjalne_Specified };
  __property masaType         masa = { index=(IS_ATTR | IS_OPTN), read=Fmasa, write=Setmasa, stored = masa_Specified };
  __property gabarytBiznesowaType    gabaryt = { index=(IS_ATTR | IS_OPTN), read=Fgabaryt, write=Setgabaryt, stored = gabaryt_Specified };
  __property bool       niestandardowa = { index=(IS_ATTR | IS_OPTN), read=Fniestandardowa, write=Setniestandardowa, stored = niestandardowa_Specified };
  __property wartoscType    wartosc = { index=(IS_ATTR | IS_OPTN), read=Fwartosc, write=Setwartosc, stored = wartosc_Specified };
  __property bool        ostroznie = { index=(IS_ATTR | IS_OPTN), read=Fostroznie, write=Setostroznie, stored = ostroznie_Specified };
  __property numerTransakcjiOdbioruType numerTransakcjiOdbioru = { index=(IS_ATTR | IS_OPTN), read=FnumerTransakcjiOdbioru, write=SetnumerTransakcjiOdbioru, stored = numerTransakcjiOdbioru_Specified };
  __property pobranieType*   pobranie = { index=(IS_OPTN | IS_UNQL), read=Fpobranie, write=Setpobranie, stored = pobranie_Specified };
  __property urzadWydaniaEPrzesylkiType* urzadWydaniaEPrzesylki = { index=(IS_OPTN | IS_UNQL), read=FurzadWydaniaEPrzesylki, write=SeturzadWydaniaEPrzesylki, stored = urzadWydaniaEPrzesylki_Specified };
  __property Array_Of_subPrzesylkaBiznesowaType subPrzesylka = { index=(IS_OPTN | IS_UNBD | IS_UNQL), read=FsubPrzesylka, write=SetsubPrzesylka, stored = subPrzesylka_Specified };
  __property ubezpieczenieType* ubezpieczenie = { index=(IS_OPTN | IS_UNQL), read=Fubezpieczenie, write=Setubezpieczenie, stored = ubezpieczenie_Specified };
  __property EPOType*          epo = { index=(IS_OPTN | IS_UNQL), read=Fepo, write=Setepo, stored = epo_Specified };
};

class adresType : public TRemotable {
private:
  nazwaType       Fnazwa;
  bool            Fnazwa_Specified;
  nazwa2Type      Fnazwa2;
  bool            Fnazwa2_Specified;
  ulicaType       Fulica;
  bool            Fulica_Specified;
  numerDomuType   FnumerDomu;
  bool            FnumerDomu_Specified;
  numerLokaluType FnumerLokalu;
  bool            FnumerLokalu_Specified;
  miejscowoscType Fmiejscowosc;
  bool            Fmiejscowosc_Specified;
  kodPocztowyType FkodPocztowy;
  bool            FkodPocztowy_Specified;
  krajType        Fkraj;
  bool            Fkraj_Specified;
  telefonType     Ftelefon;
  bool            Ftelefon_Specified;
  emailType       Femail;
  bool            Femail_Specified;
  mobileType      Fmobile;
  bool            Fmobile_Specified;
  UnicodeString   FosobaKontaktowa;
  bool            FosobaKontaktowa_Specified;
  UnicodeString   Fnip;
  bool            Fnip_Specified;
  void __fastcall Setnazwa(int Index, nazwaType _prop_val)
  {  Fnazwa = _prop_val; Fnazwa_Specified = true;  }
  bool __fastcall nazwa_Specified(int Index)
  {  return Fnazwa_Specified;  }
  void __fastcall Setnazwa2(int Index, nazwa2Type _prop_val)
  {  Fnazwa2 = _prop_val; Fnazwa2_Specified = true;  }
  bool __fastcall nazwa2_Specified(int Index)
  {  return Fnazwa2_Specified;  }
  void __fastcall Setulica(int Index, ulicaType _prop_val)
  {  Fulica = _prop_val; Fulica_Specified = true;  }
  bool __fastcall ulica_Specified(int Index)
  {  return Fulica_Specified;  }
  void __fastcall SetnumerDomu(int Index, numerDomuType _prop_val)
  {  FnumerDomu = _prop_val; FnumerDomu_Specified = true;  }
  bool __fastcall numerDomu_Specified(int Index)
  {  return FnumerDomu_Specified;  }
  void __fastcall SetnumerLokalu(int Index, numerLokaluType _prop_val)
  {  FnumerLokalu = _prop_val; FnumerLokalu_Specified = true;  }
  bool __fastcall numerLokalu_Specified(int Index)
  {  return FnumerLokalu_Specified;  }
  void __fastcall Setmiejscowosc(int Index, miejscowoscType _prop_val)
  {  Fmiejscowosc = _prop_val; Fmiejscowosc_Specified = true;  }
  bool __fastcall miejscowosc_Specified(int Index)
  {  return Fmiejscowosc_Specified;  }
  void __fastcall SetkodPocztowy(int Index, kodPocztowyType _prop_val)
  {  FkodPocztowy = _prop_val; FkodPocztowy_Specified = true;  }
  bool __fastcall kodPocztowy_Specified(int Index)
  {  return FkodPocztowy_Specified;  }
  void __fastcall Setkraj(int Index, krajType _prop_val)
  {  Fkraj = _prop_val; Fkraj_Specified = true;  }
  bool __fastcall kraj_Specified(int Index)
  {  return Fkraj_Specified;  }
  void __fastcall Settelefon(int Index, telefonType _prop_val)
  {  Ftelefon = _prop_val; Ftelefon_Specified = true;  }
  bool __fastcall telefon_Specified(int Index)
  {  return Ftelefon_Specified;  }
  void __fastcall Setemail(int Index, emailType _prop_val)
  {  Femail = _prop_val; Femail_Specified = true;  }
  bool __fastcall email_Specified(int Index)
  {  return Femail_Specified;  }
  void __fastcall Setmobile(int Index, mobileType _prop_val)
  {  Fmobile = _prop_val; Fmobile_Specified = true;  }
  bool __fastcall mobile_Specified(int Index)
  {  return Fmobile_Specified;  }
  void __fastcall SetosobaKontaktowa(int Index, UnicodeString _prop_val)
  {  FosobaKontaktowa = _prop_val; FosobaKontaktowa_Specified = true;  }
  bool __fastcall osobaKontaktowa_Specified(int Index)
  {  return FosobaKontaktowa_Specified;  }
  void __fastcall Setnip(int Index, UnicodeString _prop_val)
  {  Fnip = _prop_val; Fnip_Specified = true;  }
  bool __fastcall nip_Specified(int Index)
  {  return Fnip_Specified;  }
__published:
  __property nazwaType       nazwa = { index=(IS_ATTR | IS_OPTN), read=Fnazwa, write=Setnazwa, stored = nazwa_Specified };
  __property nazwa2Type     nazwa2 = { index=(IS_ATTR | IS_OPTN), read=Fnazwa2, write=Setnazwa2, stored = nazwa2_Specified };
  __property ulicaType       ulica = { index=(IS_ATTR | IS_OPTN), read=Fulica, write=Setulica, stored = ulica_Specified };
  __property numerDomuType  numerDomu = { index=(IS_ATTR | IS_OPTN), read=FnumerDomu, write=SetnumerDomu, stored = numerDomu_Specified };
  __property numerLokaluType numerLokalu = { index=(IS_ATTR | IS_OPTN), read=FnumerLokalu, write=SetnumerLokalu, stored = numerLokalu_Specified };
  __property miejscowoscType miejscowosc = { index=(IS_ATTR | IS_OPTN), read=Fmiejscowosc, write=Setmiejscowosc, stored = miejscowosc_Specified };
  __property kodPocztowyType kodPocztowy = { index=(IS_ATTR | IS_OPTN), read=FkodPocztowy, write=SetkodPocztowy, stored = kodPocztowy_Specified };
  __property krajType         kraj = { index=(IS_ATTR | IS_OPTN), read=Fkraj, write=Setkraj, stored = kraj_Specified };
  __property telefonType    telefon = { index=(IS_ATTR | IS_OPTN), read=Ftelefon, write=Settelefon, stored = telefon_Specified };
  __property emailType       email = { index=(IS_ATTR | IS_OPTN), read=Femail, write=Setemail, stored = email_Specified };
  __property mobileType     mobile = { index=(IS_ATTR | IS_OPTN), read=Fmobile, write=Setmobile, stored = mobile_Specified };
  __property UnicodeString osobaKontaktowa = { index=(IS_ATTR | IS_OPTN), read=FosobaKontaktowa, write=SetosobaKontaktowa, stored = osobaKontaktowa_Specified };
  __property UnicodeString        nip = { index=(IS_ATTR | IS_OPTN), read=Fnip, write=Setnip, stored = nip_Specified };
};

typedef DynamicArray<przesylkaType*> Array_Of_przesylkaType;

class przesylkaType : public TRemotable
{
private:
  guidType        Fguid;
  guidType        FpakietGuid;
  bool            FpakietGuid_Specified;
  guidType        FopakowanieGuid;
  bool            FopakowanieGuid_Specified;
  opisType        Fopis;
  bool            Fopis_Specified;
  void __fastcall SetpakietGuid(int Index, guidType _prop_val)
  {  FpakietGuid = _prop_val; FpakietGuid_Specified = true;  }
  bool __fastcall pakietGuid_Specified(int Index)
  {  return FpakietGuid_Specified;  }
  void __fastcall SetopakowanieGuid(int Index, guidType _prop_val)
  {  FopakowanieGuid = _prop_val; FopakowanieGuid_Specified = true;  }
  bool __fastcall opakowanieGuid_Specified(int Index)
  {  return FopakowanieGuid_Specified;  }
  void __fastcall Setopis(int Index, opisType _prop_val)
  {  Fopis = _prop_val; Fopis_Specified = true;  }
  bool __fastcall opis_Specified(int Index)
  {  return Fopis_Specified;  }
__published:
  __property guidType         guid = { index=(IS_ATTR), read=Fguid, write=Fguid };
  __property guidType   pakietGuid = { index=(IS_ATTR | IS_OPTN), read=FpakietGuid, write=SetpakietGuid, stored = pakietGuid_Specified };
  __property guidType   opakowanieGuid = { index=(IS_ATTR | IS_OPTN), read=FopakowanieGuid, write=SetopakowanieGuid, stored = opakowanieGuid_Specified };
  __property opisType         opis = { index=(IS_ATTR | IS_OPTN), read=Fopis, write=Setopis, stored = opis_Specified };
};

class addShipment : public TRemotable
 {
private:
  Array_Of_przesylkaType Fprzesylki;
  int             FidBufor;
  bool            FidBufor_Specified;
  void __fastcall SetidBufor(int Index, int _prop_val)
  {  FidBufor = _prop_val; FidBufor_Specified = true;  }
  bool __fastcall idBufor_Specified(int Index)
  {  return FidBufor_Specified;  }

public:
  __fastcall  addShipment();
  __fastcall ~addShipment();
__published:
  __property Array_Of_przesylkaType  przesylki = { index=(IS_UNBD | IS_UNQL), read=Fprzesylki, write=Fprzesylki };
  __property int           idBufor = { index=(IS_OPTN | IS_UNQL), read=FidBufor, write=SetidBufor, stored = idBufor_Specified };
};


 


a tak wygląda kod za pomocą którego wysyłam paczkę

KOD cpp:     UKRYJ  
void __fastcall TOrders::Button2Click(TObject *Sender)
{
       _di_ElektronicznyNadawca api = GetElektronicznyNadawca();

        String id = getGuid();
        przesylkaBiznesowaType *list = new przesylkaBiznesowaType;

        list->gabaryt = gabarytBiznesowaType::XL;
        list->masa = 200;

        list->guid = id;

        adresType *adres = new adresType;

        adres->nazwa  = "Jan";
        adres->nazwa2 = "Nowak";
        adres->ulica  = "Cicha";
        adres->numerDomu = "2";
        adres->numerLokalu = "";
        adres->kodPocztowy = "00002";
        adres->miejscowosc = "Radom";
        adres->telefon = "512977315";

        list->adres = adres;

        Array_Of_przesylkaType przes;
        przes.set_length(1);
        przes[0] = list;

        addShipment *par = new addShipment;
        par->przesylki = przes;

        addShipmentResponse wynik;

        wynik = api->addShipment(par);

        if (wynik[0]->error.Length > 0)
        {
                for (int i = 0; i < wynik[0]->error.Length; i++)
                {
                        ShowMessage(wynik[0]->error[i]->errorDesc);
                }
        }
        else
        {
        ShowMessage(wynik[0]->numerNadania);
        }
}
 


Niby wszystko jest jak w przykładowym kodzie w dokumentacji Poczty, od razu dodam że ten typ jest na mojej umowie z Pocztą Polską, przez XML'a generuje prawidłowo. Cały problem leży w tym że nie można jawnie przekazać jaki ma to być typ, tylko określenie typu ustawiamy za pomocą klasy przesylkaBiznesowaType. Prosiłbym o pomoc, może ktoś wie jak rozwiązać ten problem.

Re: Integracja aplikacji z Elektronicznym Nadawcą Poczty

Nowy postNapisane: piątek, 16 czerwca 2017, 11:58
przez mate006
Pomógłby mi ktoś, bo nie ukrywam trochę mi na tym zależy :)

Re: Integracja aplikacji z Elektronicznym Nadawcą Poczty

Nowy postNapisane: piątek, 16 czerwca 2017, 12:24
przez polymorphism
Obawiam się, że nikt Ci na tym forum nie pomoże w tej kwestii. Sam musisz kombinować.


KOD cpp:     UKRYJ  
class przesylkaBiznesowaType : public przesylkaBiznesowaType { ... }

To Ci się w ogóle skompilowało?