2017-12-08 6 views
0

Ich habe versucht, die lokale Bestätigung der Empfangsbestätigung durchzuführen und derzeit Tests durchzuführen. Aber von Apple Empfang Antwort, bekam ich falsche Zeit Reaktion, so dass es für mich schwierig wird, Anwendung derzeit zu testen. HierAuto-Renewable Subscription Falsche Zeitantwort Sandbox-Modus

ist Log-Informationen: enter image description here

Hier Quellcode, die ich für den Eingang Validierung:

public void CheckIfSubscriptionIsActive(bool validateReceipt) 
{ 
    ConfigurationBuilder builder = ConfigurationBuilder.Instance(StandardPurchasingModule.Instance()); 

    IAppleConfiguration appleConfig = builder.Configure<IAppleConfiguration>(); 
    bool isSubscriptionRunning = false; 

    if (!string.IsNullOrEmpty(appleConfig.appReceipt)) 
    { 
     if (validateReceipt) 
     { 
      // local receipt verification 
      var receiptData = System.Convert.FromBase64String(appleConfig.appReceipt); 
      AppleReceipt receipt = new AppleValidator(AppleTangle.Data()).Validate(receiptData); 
      foreach (AppleInAppPurchaseReceipt productReceipt in receipt.inAppPurchaseReceipts) 
      { 

       Debug.Log("# server date: " + GameManager.Instance.ServerDate + " expire date: " + productReceipt.subscriptionExpirationDate); 
       int result = DateTime.Compare(GameManager.Instance.ServerDate, productReceipt.subscriptionExpirationDate); 
       if (result <= 0) 
       { 
        isSubscriptionRunning = true; 
        Debug.Log(" === ==== === Subscription Running: curr date: " + GameManager.Instance.ServerDate + " expire date: " + productReceipt.subscriptionExpirationDate); 
       } 

       //Debug.Log("PRODUCTID: " + productReceipt.productID); 
       //Debug.Log("PURCHASE DATE: " + productReceipt.purchaseDate); 
       //Debug.Log("EXPIRATION DATE: " + productReceipt.subscriptionExpirationDate); 
       //Debug.Log("CANCELDATE DATE: " + productReceipt.cancellationDate); 
      } 

      if (isSubscriptionRunning) 
       SubscriptionActivated(); 

      // hide loading... 
      showLoader = false; 
      Camera.main.SendMessage("ActivateLoadingDialog", false, SendMessageOptions.DontRequireReceiver); 

     } 
     else 
     { 
      // server side receipt vecification 
      appReceipt = appleConfig.appReceipt; 
      StartCoroutine(CheckSubscriptionStatusServerSideVerification()); 
     } 
    } 
} 

Regel wöchentlich Abonnement hat 3 Minuten Zeitdauer so, wenn ich nicht genaue Zeit immer dann Wie kann ich richtig testen !!

In der oberen Bild, habe ich beiden Male erwähnen, meine Ortszeit ist 15.01.04 und Apfel Empfangsantwortzeit09:37:18 ist. Mit der Überprüfung der lokalen Gerätequittung kann ich die Arbeit derzeit nicht testen. also welchen Weg gibt es für mich zum Testen ??

+0

Irgendwelche Vorschläge diesbezüglich? Wenn Sie mehr Informationen wünschen, dann bin ich dafür verfügbar. – Siddharth

+0

Ich habe dasselbe Problem :( –

+0

Ich fand die Lösung für dieses lassen Sie mich eine Antwort für diese Frage erstellen. – Siddharth

Antwort

1

Grundsätzlich in oben genannten Problem, bekam ich große Zeitdifferenz in Apple-Empfang Antwort, aber jetzt habe ich die Lösung für diese abgeschlossen. Ortszeit 15:01:04 Apfel Empfangsantwortzeit 09:37:18

Hauptgrund für diese GMT Zeitdifferenz. Ich lebe in Indien, also haben wir 5:30 Zeitunterschied läuft.

Also in Apple-Empfangszeit, muss ich diese GMT Zeitdifferenz hinzufügen, um genaue Zeitwerte zu erhalten und danach können wir unsere Restcodierung abschließen.

Ich werde Link hier mit meinem Unity Support Diskussion, wenn jemand das erforderlich war.