Во -первых, я хотел бы понять, что предложение может быть странным, потому что оно написано с использованием переводчика. Встроенный в журнал, функция обратного вызова, которую я получил, позвонив в «billingClient.launchbillingflow» содержит информацию о покупке в «списке». «QuerPurchasasasAsync» может получить информацию о покупке, которая не является «употреблением», но я не могу найти причину, по которой нет информации о покупке.
Вы знаете, как решить эту проблему? Если вы это сделаете, пожалуйста, помогите. Спасибо.
BuyListener _buyListener = null;
private void init()
{
_buyListener = new BuyListener();
...
_billingClient = BillingClient.newBuilder(_activity.getApplicationContext())
.enablePendingPurchases(PendingPurchasesParams.newBuilder().enableOneTimeProducts().build())
.setListener(_buyListener)
.build();
}
public void onProductDetailsResponse(BillingResult billingResult, List productDetailsList)
{
if(BillingClient.BillingResponseCode.OK == billingResult.getResponseCode())
{
...
BillingResult result = _billingClient.launchBillingFlow(_activity, billingFlowParams);
if(BillingClient.BillingResponseCode.OK != result.getResponseCode())
{
log('A'); // not show
}
}
}
// class BuyListener
public void onPurchasesUpdated(BillingResult billingResult, List purchases)
{
if(BillingClient.BillingResponseCode.OK != billingResult.getResponseCode())
{
log('B'); // not show
return;
}
if(null == list)
{
log('C'); // not show
return;
}
if(1 != list.size())
{
log('D : '+list.size()); // not show
return;
}
log('E:'+list.get(0).getProducts().get()); // show E : products[0]
getReceipts();
}
public void getReceipts()
{
if(null == _billingClient)
{
log('F') // not show
}
int state = _billingClient.getConnectionState();
if(BillingClient.ConnectionState.CONNECTED != state)
{
log('G') // not Show
}
QueryPurchasesParams params = QueryPurchasesParams.newBuilder()
.setProductType(BillingClient.ProductType.INAPP)
.build();
_billingClient.queryPurchaseAsync(params, new GetReceiptsListener());
}
//class GetReceiptsListener
public void onQueryPurchasesResponse(BillingResult billingResult, List purchases)
{
if(BillingClient.BillingResponseCode.OK != billingResult.getResponseCode())
{
log('H'); // not show
return;
}
if(null == list)
{
log('I'); // not show
return;
}
if(1 != list.size())
{
log('J : '+list.size()); // show J : 0
return;
}
}
Подробнее здесь: https://stackoverflow.com/questions/795 ... e-is-empty
BillingClient.QuerypurchasasasAsync's List пуст ⇐ Android
Форум для тех, кто программирует под Android
-
Anonymous
1743504851
Anonymous
Во -первых, я хотел бы понять, что предложение может быть странным, потому что оно написано с использованием переводчика. Встроенный в журнал, функция обратного вызова, которую я получил, позвонив в «billingClient.launchbillingflow» содержит информацию о покупке в «списке». «QuerPurchasasasAsync» может получить информацию о покупке, которая не является «употреблением», но я не могу найти причину, по которой нет информации о покупке.
Вы знаете, как решить эту проблему? Если вы это сделаете, пожалуйста, помогите. Спасибо.
BuyListener _buyListener = null;
private void init()
{
_buyListener = new BuyListener();
...
_billingClient = BillingClient.newBuilder(_activity.getApplicationContext())
.enablePendingPurchases(PendingPurchasesParams.newBuilder().enableOneTimeProducts().build())
.setListener(_buyListener)
.build();
}
public void onProductDetailsResponse(BillingResult billingResult, List productDetailsList)
{
if(BillingClient.BillingResponseCode.OK == billingResult.getResponseCode())
{
...
BillingResult result = _billingClient.launchBillingFlow(_activity, billingFlowParams);
if(BillingClient.BillingResponseCode.OK != result.getResponseCode())
{
log('A'); // not show
}
}
}
// class BuyListener
public void onPurchasesUpdated(BillingResult billingResult, List purchases)
{
if(BillingClient.BillingResponseCode.OK != billingResult.getResponseCode())
{
log('B'); // not show
return;
}
if(null == list)
{
log('C'); // not show
return;
}
if(1 != list.size())
{
log('D : '+list.size()); // not show
return;
}
log('E:'+list.get(0).getProducts().get()); // show E : products[0]
getReceipts();
}
public void getReceipts()
{
if(null == _billingClient)
{
log('F') // not show
}
int state = _billingClient.getConnectionState();
if(BillingClient.ConnectionState.CONNECTED != state)
{
log('G') // not Show
}
QueryPurchasesParams params = QueryPurchasesParams.newBuilder()
.setProductType(BillingClient.ProductType.INAPP)
.build();
_billingClient.queryPurchaseAsync(params, new GetReceiptsListener());
}
//class GetReceiptsListener
public void onQueryPurchasesResponse(BillingResult billingResult, List purchases)
{
if(BillingClient.BillingResponseCode.OK != billingResult.getResponseCode())
{
log('H'); // not show
return;
}
if(null == list)
{
log('I'); // not show
return;
}
if(1 != list.size())
{
log('J : '+list.size()); // show J : 0
return;
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79547619/billingclient-querypurchasesasyncs-listpurchase-is-empty[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия