none
CurrentAppSimulator / CurrentApp / Trial RRS feed

  • Allgemeine Diskussion

  • Hallo Community,

    ich habe zwei Dinge die ich gerne ansprechen möchte.

    Zum ersten: CurrentAppSimulator.RequestProductPurchaseAsync(NAME); es scheint mir diese Funktion wird nur ausgeführt wenn der Modus nicht Trial ist (licenseInformation.IsTrial ). Wenn ich jetzt Teste erreiche ich nie den Code an dem sich die Information ändert, da die Funktion übersprungen wird, da Trial immer true ist (außer App wurde im Store gekauft). Übersehe ich etwas ? Habe ich einen Denkfehler ?

    Zum anderen bearbeite ich ungern Code nach dem Debuggen, wenn das Ding durch ist wird nichts mehr am Code verändert (Persönliche Empfindung und Einstellung) . Nehmen wir mal an ich habe bei Punkt 1 einen Denkfehler; und ich kann meinen Programmcode weiter Testen, so muss ich anschließend in meinem gesammten Code „CurrentAppSimulator“ durch „CurrentApp“ ersetzen. Klar man kann es klein halten usw. aber ich muss meinen „fertigen“ Code nochmal umschreiben um die App einzureichen. Das empfinde ich als nicht schön.

    Für Anregungen, Hilfe und Tipps, vor allem zum ersten Punkt, bedanke ich mich schon mal.

    Gruß

    ITMS75


    • Bearbeitet ITMS75 Mittwoch, 17. August 2016 16:14
    Mittwoch, 17. August 2016 11:42

Alle Antworten

  • Hallo,

    ohne den Code zu kennen den du geschrieben hast werden wir dir nicht helfen können.

    Poste doch bitte die entsprechenden Zeilen.

    Du könntest das ganze mit einem globalen Wert und If/Else lösen.

    if (TestOn)
                    {
                        featureGekauft = Windows.ApplicationModel.Store.CurrentAppSimulator.LicenseInformation.ProductLicenses["WerbungAusschalten"].IsActive;
                    }
                    else
                    {
                        featureGekauft = Windows.ApplicationModel.Store.CurrentApp.LicenseInformation.ProductLicenses["WerbungAusschalten"].IsActive;
                    }

    So bleibst du deiner Line treu.

    Gruß

    Thomas

    Mittwoch, 17. August 2016 21:12
  • Vielen Dank für deine Antwort,


    wie du an meinen Forum-Punkten siehst, bin ich bei Microsoft noch ziemlich neu und deshalb auch bei einigen Dingen noch etwas unsicher. Dein Ansatz bietet natürlich einen Lösungsansatz. Ich weiß halt nicht ob es bei der Zertifizierung auf den Microsoft Server irgendwie rauskommt, dass noch ein Test-Modus-Objekt sprich „CurrentAppSimulator“ als Option im Code steht (wenn auch durch ein Flag eigentlich ausgeschlossen). Das könnte ich allerdings mal Testen :O) Vielleicht haut ja auch irgendeine Compiler Optimierung den eigentlich nicht erreichbaren Code raus.


    Ich habe das ganze ja als Diskussion gepostet, und wenn ich mir etwas wünschen dürfte ,wäre es eine Art Bild-In Funktion die Automatisch entscheidet welches Objekt intern benutzt wird, und man als Entwickler nur mit einem Objekt arbeiten muss, und so zum Beispiel sich auch keine Struddel-Fehler einschleichen können :O) Vielleicht kann man so was auch selbst basteln, mal schauen.


    Zu der anderen Sache:


    public async void goToStore(string pID)

    {

        try

       {

            System.Diagnostics.Debug.WriteLine(licenseInformation.IsTrial);

            await CurrentAppSimulator.RequestProductPurchaseAsync(pID);


            if (checkLicense(pID)) Classes.Defs.overview[pID].purchased = true;

       }

       catch (Exception)

        {

               System.Diagnostics.Debug.WriteLine("goToStore Exception");

       }

    }


    public bool checkLicense (string id)

    {

         return(licenseInformation.ProductLicenses[id].IsActive);

    }



    Die Ausgabe von licenseInformation.IsTrial ist immer true, sowohl im Debug Modus als auch im Release Modus. Ich habe irgendwo gelesen, das im Trial-Modus keine Käufe gemacht werden können (erscheint mir auch logisch). Leider ist es mir nicht möglich gewesen etwas zu finden vorübergehend Trial manuel auf false zu setzen um so zu testen.


    Bei dem Code oben passiert seltsamer weise nichts weiteres. Es wird auch kein CurrentAppSimulator Dialog angezeigt, so das kein Kauf simuliert werden kann. (Denke ich habe irgendwo einen Fehler)


    Ich kann jetzt

    1) await CurrentAppSimulator.RequestProductPurchaseAsync(pID);

    durch

    2) await CurrentAppSimulator.RequestProductPurchaseAsync(pID,false);

    ersetzen.


    Visual Studio weist mich darauf hin, das die 2te Funktion veraltet ist, und ich besser Variante 1 verwenden sollte, aber ich bekomme so einen CurrentAppSimulator Dialog angezeigt. Allerdings verändert sich der Lizenz Status nicht, liegt wohl daran, dass ich im Trial Modus nichts kaufen kann.


    So, das war jetzt ein langer Text. Hoffe das ganze ist nicht allzu blöd und ich stehe nicht komplett auf dem Schlauch.


    Viele Grüße und nochmals Danke !!




    • Bearbeitet ITMS75 Mittwoch, 17. August 2016 23:39
    Mittwoch, 17. August 2016 23:32
  • Hallo,

    hast du den die WindowsStoreProxy.xml konfiguriert und deine Produkte angelegt?

    Link

    Der Code für dem Kauf sieht so aus

    var kauf = await Windows.ApplicationModel.Store.CurrentAppSimulator.RequestProductPurchaseAsync("WerbungAusschalten");
    
                if (kauf.Status == Windows.ApplicationModel.Store.ProductPurchaseStatus.Succeeded)
                {
                    var test = 123;
                }

    Soweit ich weiß wird auch nichts angezeigt sondern der Wert im RAM auf true gesetzt, sodass bei nächsten start der App alles wie vorher ist.

    Du hast mit dem weiteren Prozess nichts zu tun sondern wartest nur auf den Result und fragst ob alles ok ist. 

    Sollte es aber ein Verbrauchsgut sein musst Du dem Store noch zurückmelden das der Kunde das Produkt bekommen hat. Sonst ist ein weiterer kauf nicht möglich.

    Ich persönlich nutze CurrentAppSimulator nicht und setze die entsprechenden Flags innerhalb eines Testszenario.

    Donnerstag, 18. August 2016 00:19