selectline-software / selectline-api

Apache License 2.0
26 stars 5 forks source link

Webserver antwortet mit Conflict auf request mit Unterschiedlichen Benutzernamen #234

Closed Torchok19081986 closed 2 years ago

Torchok19081986 commented 2 years ago

Hallo, ich habe ein paar Schwierigkeitenin der Mobile API. Wir haben 2 unterschiedliche Bentutzer in WaWi und Mobile API angelegt. Danach sind biede mit einem WaWi und Mandanten verknüpft. Auf die Login Request anwortet Webserver bzw. API mit StatusCode Conflict. SL Mobile API in V 22.1.2 und WaWi in der Version 22.1.4. Kann mir jemand hier helfen ?

MaikGoertz commented 2 years ago

Moin. Wie wird der Login Request ausgeführt? Wenn beim Login "Conflict" als Response zurück gegeben wird, ist es vermutlich ein ungültiger AppKey. Ist der AppKey in der Lizenz vorhanden und wird richtig übertragen?

Torchok19081986 commented 2 years ago

Morgen, im Swagger ausgeführte Account Methode liefert 02-020 Response auf das Request für Login zurück .

Screenshotfoto :

Swagger Anmeldung

ThePholph commented 2 years ago

Guten Morgen,

siehe "ResponseIdDescription", hier liegt ein Lizenzproblem vor. Habt Ihr einen gültigen AppKey (siehe Kommentar von Maik)? Evtl. auch den Request mal posten.

Viele Grüße

Daniel

Torchok19081986 commented 2 years ago

Morgen, Vielen Dank für Antwort. Kunde hat keinen Toolbox in keinen Version bzw. nicht lizensiert hat. Braucht man für das API pro Benutzer eine ToolBox Lizenz ?


               using (var client = new HttpClient())
                {
                    var cred = new Credentials { UserName = quelleuser, Password = quellepw };
                    HttpContent content = new StringContent(JsonConvert.SerializeObject(cred));
                    content.Headers.ContentType = new MediaTypeWithQualityHeaderValue("application/json");

                    string loginuri = urltext.Text.EndsWith("/") ? urltext.Text : string.Concat(urltext.Text, "/");
                    urltext.Text = loginuri;
                    loginuri += "Login";

                    var response = client.PostAsync(loginuri, content).Result;

                    var result = response.Content.ReadAsStringAsync().Result;

                    if (response.IsSuccessStatusCode)
                    {
                        var tokenModel = response.Content.ReadAsAsync<AccessTokenModel>().Result;

                        if (tokenModel != null)
                        {
                            AccessToken1 = tokenModel.AccessToken;
                            txtToken.Text = AccessToken1;
                        }
                    }

                    else
                    {
                        MessageBox.Show(response.StatusCode + " wurde von Webserver zurückgegeben. Loginrequest war nicht erfolgreich.\r\nBeschreibung : " + response.ReasonPhrase, "Info", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    }

so schaut gerade Login Method für das Login.

konrad79 commented 2 years ago

Man braucht zum Login immer auch einen AppKey. Als Fachhändler kann man einen Developer-AppKey lizenzieren. Und jeder Kunde muss dann einen oder mehrere eigene AppKeys lizenzieren.

https://demo.slmobile.de/demoApi/swagger/ui/index#/Account/Account_Login

Details sind auch nochmal in unserer FAQ beschrieben: https://www.selectline.de/erp-software/selectline-api/

Torchok19081986 commented 2 years ago

Ok. Vielen Dank für die Erklärung. Das selbe Prinzip läuft auch bei anderen Kunde und sie haben keinen Appkey lizensiert, aber sie haben Toolbox mit Gold und Runtime. Wie beantragt man die Appkey für Kunden für das Software bzw. was wird es dann für Kunden kosten ?

konrad79 commented 2 years ago

Die Lizenzierung eines AppKeys funktioniert wie jede andere Lizenzierung von SelectLine Produkten auch. Dafür muss der jeweilige Fachhändler des Kunden sich an das Partnermanagement von SelectLine wenden. Der Fachhändler weiß, wie das geht ;-)

Torchok19081986 commented 2 years ago

Ok. Vielen Dank. Dann muss das App mit die Appkey geändert werden und Änderungen umprogrammiert werden.