Как отличить потребительские товары от продуктов, которые не потребляются? - PullRequest
0 голосов
/ 23 сентября 2019

Я использовал 'com.android.billingclient: billing: 2.0.3'.

Как различить расходуемые продукты и продукты, которые не потребляются?

Расходные материалыодобрен для покупки с consumeAsync(), а не расходуемые продукты одобрены для покупки с acknowledgePurchase().

Похоже, что расходуемые и нерасходуемые продукты классифицируются по тому, вызывается ли функция receiveAsync () илине.

1.Существуют ли другие методы классификации?

(https://developer.android.com/google/play/billing/billing_library_overview#acknowledge/)

2 .cknowledgePurchase () направлен на API для непотребляемых продуктов. Не следует ли его использоватьдля расходных материалов?

Я могу добавить paylaod для разработчика следующим образом:

Для расходуемых продуктов takeAsync () принимает объект ConsumeParams, который включает поле полезной нагрузки разработчика, как показано вВ следующем примере:

BillingClient client = ...
ConsumeResponseListener listener = ...

ConsumeParams consumeParams =
    ConsumeParams.newBuilder()
        .setPurchaseToken(/* token */)
        .setDeveloperPayload(/* payload */)
        .build();

client.consumeAsync(consumeParams, listener);

Для продуктов, которые не потребляются, acceptledgePurchase () принимает объект AcknowledgePurchaseParams, который включает поле полезной нагрузки разработчика, как показано в следующем примере:

BillingClient client = ...
AcknowledgePurchaseResponseListener listener = ...

AcknowledgePurchaseParams acknowledgePurchaseParams =
    AcknowledgePurchaseParams.newBuilder()
        .setPurchaseToken(/* token */)
        .setDeveloperPayload(/* payload */)
        .build();

client.acknowledgePurchase(acknowledgePurchaseParams, listener);

(https://developer.android.com/google/play/billing/billing_library_overview#attach_a_developer_payload)

3. Планируете ли вы добавить тип управления для расходных и не расходуемых продуктов в будущем?

4. Может ли звонокбыть ограниченным для опечаток?

1 Ответ

0 голосов
/ 27 сентября 2019

Насколько я понимаю,

не расходуемый продукт вызывает функцию acceptledgePurchase () для установки записи покупки на стороне Google, поэтому при попытке вызвать queryPurchase () он покажетпродукт приобретен с подтвержденным (для просмотра данных проанализируйте данные json)

расходный продукт вызовите функцию receiveAsync () для удаления данных на стороне Google.Поэтому, когда триггер queryPurchase () не должен быть записан для этого.

Почему расходный продукт можно приобрести снова?Потому что запись ады удалена из записи.Когда триггерная покупка снова не вернет код ошибки 7 (BILLING_RESPONSE_RESULT_ITEM_ALREADY_OWNED)

и receiveAsync (), и acceptledgePurchase () также установят платеж как выполненный.Если ни один из них не активирован, он будет автоматически возвращен через 3 дня.Оба действия также работают как подтверждение оплаты.

Так что на ваш вопрос

1.Существуют ли другие методы классификации?

Те, кто признал, что они должны быть непотребляемым продуктом, так как запись о потребляемом продукте должна быть удалена после успешной записи на нашу сторону.Или, если хотите классифицировать, может быть, может установить полезную нагрузку разработчика для подтверждения (не может быть изменено после установки)

2.Подтверждение покупки () направлено на API для непотребляемых продуктов.Разве его нельзя использовать для расходных материалов?

нет, используйте его отдельно, исходя из ваших требований

Ответ может быть неправильным.Просто поделиться этим.

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

На стороне сервера может быть сделано что-то похожее на мобильную сторону comsumeAsync () в Google Billing Library?

...