Автообновляемая подписка Режим песочницы с неправильным временем отклика
Я пытался проверить местную квитанцию и тестирование в настоящее время. Но из ответа на получение Apple я получил неправильный ответ, связанный со временем, поэтому мне стало трудно тестировать приложение в настоящее время.
Вот исходный код, который я использовал для подтверждения получения:
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 и время ответа на получение яблок 09:37:18. Используя проверку квитанции локального устройства в настоящее время я не могу проверить работу. так какой способ существует для меня для тестирования??
1 ответ
В основном в вышеупомянутой проблеме, я получил значительную разницу во времени в ответе Apple о получении, но теперь я пришел к решению для этого.местное время 15:01:04 время отклика наполучение яблок 09:37:18
Основная причина этого - разница во времени по Гринвичу. Я живу в Индии, поэтому у нас разница во времени 5:30.
Поэтому во время получения Apple, я требую добавить эту разницу во времени по Гринвичу, чтобы получить точные значения времени, и после этого мы можем завершить наше остальное кодирование.
Я опубликую ссылку здесь с моим обсуждением поддержки Unity, если кто-то потребовал этого.