2016-02-11 4 views
8

Я реализовал in-app purchase для subscription продукт, он отлично работает. Я установил 1 месяц подписки на каждый продукт, и он будет обновляться через 1 месяц.подписка на обновления в эфире в андроиде

Теперь у меня вопрос, есть ли способ получить обновленный список продуктов и дату продления?

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

ответ

6

К сожалению, In-app Billing API v3 не предоставляет никаких уведомлений или способов уведомления о продлении или аннулировании подписки.

Единственное, что вы можете сделать, это вручную запросить API для получения активированной в настоящее время подписки. (Это справедливо для Android API, а также те, на основе HTTP ...)

Способ сделать это от Android клиента:

  • запрос инвентаризации, как вы обычно делаете, чтобы получить перечень товаров с IabHelper#queryInventory(boolean querySkuDetails, List<String> moreItemSkus, List<String> moreSubsSkus)

  • Если у пользователя есть активная подписка, вы сможете получить покупку об этом с помощью IabHelper#getPurchase(String sku). Покупка будет содержать информацию о состоянии и времени подписки. (Док here)

Чтобы сделать это с Google Play Developer API (от вашего Serveur), вы должны использовать get, то информация будет в ressource вернулся.

+0

Я пробовал ваше решение. используя 'billingService.getPurchases', я получаю продукт, который я купил, но inventory.hasPurchase() всегда возвращает false, хотя у меня есть этот продукт. –

1

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

С использованием billingService.getPurchases Я получил все покупки текущего пользователя.

Bundle bundle = billingService.getPurchases(3, getPackageName(), "subs", null); 

Это дает мне список подписанных товаров со следующими деталями.

INAPP_PURCHASE_ITEM_LIST 
RESPONSE_CODE 
INAPP_PURCHASE_DATA_LIST 
INAPP_DATA_SIGNATURE_LIST 

из вышеуказанных деталей я получил aurenew статус, дату покупки, OrderID, PACKAGENAME, purchaseTime, purchaseState, purchaseToken.

от всей информации по крайней мере, я могу узнать, когда был куплен продукт, автопортрет погоды включен/выключен.

Если пользователь отменит автозапуск из Google Play Store, его циклическая цепочка будет полной и получит преимущества до даты окончания подписки.

после достижения даты окончания подписки, если autoRenew является ложным, пользователь не получит никаких преимуществ, связанных с этим продуктом/покупкой/подпиской.