Я следовал руководству из документа разработчика Google: https://developer.android.com/google/play/billing/integrate?hl=vi
Завершенный шаг: обработка потока покупки, обработка результата покупки и обработка ответа на подтверждение покупки. На этом этапе я могу определить успех покупки пользователя или нет.
И в настоящее время у меня нет серверной части для выполнения следующего шага руководства: https://developer.android.com/google/play/billing/backend?hl=vi
Как при повторном запуске приложения определить, что пользователь уже приобрел подписку (без повторной обработки процесса покупки)? А как определить подписку пользователя при смене устройства?
это можно сделать с помощью queryPurchasesAsync
void QueryPurchase(){
QueryPurchasesParams queryPurchasesParams = QueryPurchasesParams.newBuilder().setProductType(BillingClient.ProductType.SUBS).build();
billingClient.queryPurchasesAsync(queryPurchasesParams, new PurchasesResponseListener() {
@Override
public void onQueryPurchasesResponse(@NonNull BillingResult billingResult, @NonNull List<Purchase> list) {
if (list==null){
return;
}
Log.d(TAG, "onQueryPurchasesResponse, list.size = "+String.valueOf(list.size()));
for(Purchase purchase: list){
boolean bIsAutoRenewing = purchase.isAutoRenewing();
Log.d(TAG, "bIsAutoRenewing = "+String.valueOf(bIsAutoRenewing));
}
}
});
}
тогда это можно определить с помощью bIsAutoRenewing
это можно сделать с помощью queryPurchasesAsync