2015-01-15 3 views
0

Приобретение приложения уже работает в моем приложении.В приложении Биллинг без сетевого подключения

Перезагружаем телефон: Запуск моего приложения: отлично работает (я получаю «лакомства» моей покупки)

Это LogCat, что показывает, что он работал:

01-15 21:54:42.039 29574-29616/mypackage D/IabHelper﹕ Got sku details: SkuDetails:{"title":"MySKU","price":"X USD","type":"inapp","description":"My description.","price_amount_micros":x,"price_currency_code":"USD","productId":"myID"} 
01-15 21:54:42.039 29574-29616/mypackage D/IabHelper﹕ Querying owned items, item type: subs 
01-15 21:54:42.039 29574-29616/mypackage D/IabHelper﹕ Package name: mypackage 
01-15 21:54:42.039 29574-29616/mypackage D/IabHelper﹕ Calling getPurchases with continuation token: null 
01-15 21:54:42.059 29574-29616/mypackage D/IabHelper﹕ Owned items response: 0 
01-15 21:54:42.059 29574-29616/mypackage D/IabHelper﹕ Continuation token: null 
01-15 21:54:42.069 29574-29616/mypackage D/IabHelper﹕ Querying SKU details. 
01-15 21:54:43.209 29574-29616/mypackage D/IabHelper﹕ Ending async operation: refresh inventory 
01-15 21:54:43.219 29574-29574/mypackage D/InAppPurchaseManager﹕ Query inventory finished. 
01-15 21:54:43.219 29574-29574/mypackage D/InAppPurchaseManager﹕ Query inventory was successful. 

После этого мой если утверждение верно:

if (inventory.hasPurchase(MY_SKU) 

Но без интернета он не работает:

LogCat:

01-15 21:36:55.169 27961-27961/mypackage D/IabHelper﹕ In-app billing version 3 supported for mypackage 
01-15 21:36:55.179 27961-27961/mypackage D/IabHelper﹕ Subscriptions AVAILABLE. 
01-15 21:38:10.289 27961-27961/mypackage D/IabHelper﹕ Starting async operation: refresh inventory 
01-15 21:38:11.809 27961-28082/mypackage D/IabHelper﹕ Querying owned items, item type: inapp 
01-15 21:38:11.809 27961-28082/mypackage D/IabHelper﹕ Package name: mypackage 
01-15 21:38:11.809 27961-28082/mypackage D/IabHelper﹕ Calling getPurchases with continuation token: null 
01-15 21:38:11.829 27961-28082/mypackage D/IabHelper﹕ Owned items response: 0 
01-15 21:38:11.869 27961-28082/mypackage D/IabHelper﹕ Sku is owned: my_SKU 
01-15 21:38:11.899 27961-28082/mypackage D/IabHelper﹕ Continuation token: null 
01-15 21:38:11.899 27961-28082/mypackage D/IabHelper﹕ Querying SKU details. 

Это та часть, где, если заявление было правдой, так что не продолжил

public void onQueryInventoryFinished(IabResult result, Inventory inventory) { 
     Log.d(TAG, "Query inventory finished."); 

     // Have we been disposed of in the meantime? If so, quit. 
     if (mHelper == null) return; 

     // Is it a failure? 
     if (result.isFailure()) { 
      return; 
     } 

Вы можете видеть, что в обоих случаях:

Он знает Sku владеет: my_SKU

Но g без возможности подключения к Интернету.

Мой вопрос:

Это нормальный рабочий? Должен ли я сохранять некоторые данные на телефоне, которые пользователь уже купил? Или есть способ, которым этот Iab API скажет мне, что пользователь уже купил его. (Я думаю, что это более безопасный способ)

ответ

2

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

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

+0

И где я должен сохранить это время? в SQLITE или sharedpreferences? Это безопасно? –

Смежные вопросы