Автоматически продлеваемая подписка Режим песочницы с неправильным временем отклика

В настоящее время я пытался провести локальную проверку квитанций и проводить тестирование. Но из ответа о получении яблока я получил неверный ответ, связанный со временем, поэтому мне стало трудно тестировать приложение в настоящее время.

Вот информация журнала: введите здесь описание изображения

Вот исходный код, который я использовал для проверки квитанции:

 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());
        }
    }
}

Обычно еженедельная подписка имеет продолжительность 3 минуты, поэтому, если я не получаю точное время, как я могу провести правильное тестирование !!

На изображении выше я упомянул оба раза: мое местное время15:01:04, а время ответа на квитанцию ​​Apple09. :37:18. Используя проверку получения локального устройства в настоящее время, я не могу проверить работу. так какой способ существует для меня для тестирования ??


person Siddharth    schedule 08.12.2017    source источник
comment
Любое предложение по этому поводу?? Если вам нужна дополнительная информация, я доступен для этого.   -  person Siddharth    schedule 10.12.2017
comment
У меня такая же проблема :(   -  person Nilomi Shah    schedule 02.02.2018
comment
Я нашел решение для этого, позвольте мне создать ответ на этот вопрос.   -  person Siddharth    schedule 02.02.2018


Ответы (1)


По сути, в приведенной выше проблеме я получал большую разницу во времени в ответе Apple на квитанцию, но теперь я нашел решение для этого. местное время – 15:01:04 время ответа по квитанции Apple – 09:37:18

Основной причиной этого является разница во времени по Гринвичу. Я живу в Индии, поэтому у нас разница во времени 5:30.

Таким образом, во время получения Apple мне нужно добавить эту разницу во времени по Гринвичу, чтобы получить точные значения времени, и после этого мы можем завершить кодирование остатка.

Я опубликую ссылку здесь с моим обсуждением поддержки Unity, если кому-то это нужно.

person Siddharth    schedule 02.02.2018