Google IAP подписки - PullRequest
       38

Google IAP подписки

0 голосов
/ 16 мая 2018

Я только что прочитал это: API разработчика Google Play: "startTimeMillis" обновляется, когда он не должен

Но он довольно старый.Может ли кто-нибудь подтвердить, что он работает так или нет?

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

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

Мы собираемся использовать эту конечную точку: https://developers.google.com/android-publisher/api-ref/purchases/subscriptions/get, которая должна иметь этот результат: https://developers.google.com/android-publisher/api-ref/purchases/subscriptions#resource

Можем ли мы каким-то образом выяснить, что старый токен уже был отменен, затем повторно подписан и что нам следует ожидать новую подписку?

1 Ответ

0 голосов
/ 17 мая 2018

Мы смоделировали это, и это результат:

Это было требование:

Зарегистрировать нового пользователя

Купить подписку

Сохранить поля ответачтобы иметь возможность вызвать это в комментариях https://developers.google.com/android-publisher/api-ref/purchases/subscriptions/get

Позвонить на предыдущую конечную точку и сохранить ответ в комментариях

Отменить подписку

Подождать 1 месяц для истечения срока

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

Повторная подписка

Вызовите конечную точку со старыми данными, вызовите конечную точку с данными из повторной подписки, сохраните оба ответа в комментариях


Купить первую подписку:

{ "orderId": "GPA.3353-9191-0752-74136", "packageName": "xxx", "productId": "xxx", "purchaseTime": 1526543042663, "purchaseState": 0, "developerPayload": "ee40691d0a3e5f3600df9f35e3346ba7", "signature": "xxx", "purchaseToken": "xxx", "autoRenewing": true }

Ответ Google на первую подписку:

{ "kind": "androidpublisher#subscriptionPurchase", "startTimeMillis": "1526543042663", "expiryTimeMillis": "1526543456810", "autoRenewing": true, "priceCurrencyCode": "GBP", "priceAmountMicros": "11990000", "countryCode": "GB", "developerPayload": "xxx", "paymentState": 1, "orderId": "GPA.3353-9191-0752-74136", "purchaseType": 0 }

Купить вторую подписку:

{ "orderId": "GPA.3348-1559-2255-63309", "packageName": "xxx", "productId": "de.mp.ft.01.test", "purchaseTime": 1526543263033, "purchaseState": 0, "developerPayload": "xxx", "purchaseToken": "mibhepofikjpphaoimomekai.AO-J1Oytkgta2QbLt9lQa7y66eVnqqU1-yjOQJ9B4Sq5Md3Y1OvXJzE-MaazMhAr8gdazydx5sUHTPYg_93mocy37UW8c2M4RFDd0HmbP36lz9HIT7SJmAU", "autoRenewing": true }

Googleответ на вторую подписку:

{ "kind": "androidpublisher#subscriptionPurchase", "startTimeMillis": "1526543263033", "expiryTimeMillis": "1526543756810", "autoRenewing": true, "priceCurrencyCode": "GBP", "priceAmountMicros": "11990000", "countryCode": "GB", "developerPayload": "xxx", "paymentState": 1, "orderId": "GPA.3348-1559-2255-63309..0", "linkedPurchaseToken": "ldblmpncfnknbgdmojghdkgj.AO-J1Oy6BqXGaqL355JjzOTQrwfzmLPtckmXmQLfgxX-pwVM3iRin81_AiYVUKsg4FX_ojD_MZabwj886prQhI2jjTXiDWjGqYPp5ZJVbGhZwdHQJkyi2WQ", "purchaseType": 0 }

ответ Google на первую подписку, вызванную в конце тестового потока (8.)

{ "kind": "androidpublisher#subscriptionPurchase", "startTimeMillis": "1526543042663", "expiryTimeMillis": "1526543336810", "autoRenewing": false, "priceCurrencyCode": "GBP", "priceAmountMicros": "11990000", "countryCode": "GB", "developerPayload": "xxx", "cancelReason": 0, "userCancellationTimeMillis": "1526543175826", "orderId": "GPA.3353-9191-0752-74136", "purchaseType": 0 }

Вывод - исходная подписка (к счастью)не клон новогое, такие поля, как expiryTimeMillis, не разделяются между этими двумя токенами.Однако это правда, что startTimeMillis одинаково для обоих

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...