我已将我的应用程序更新为使用Android Play计费库的v2.1.0(来自2.0.1之前的版本),并且在待完成的购买完成后,我不再收到购买更新。
我构造了一个计费客户端,将侦听器设置为实现PurchasesUpdatedListener
的当前类:
billingClient = BillingClient.newBuilder( getActivity() )
.setListener( this )
.enablePendingPurchases()
.build();
然后我开始购买并使用“几分钟后才能通过慢速测试卡批准”
BillingFlowParams.Builder purchaseParamsBuilder = BillingFlowParams.newBuilder()
.setSkuDetails( product );
billingClient.launchBillingFlow( getActivity(), purchaseParamsBuilder.build() );
此后,我的听众被打了电话,表明购买正在等待中:
@Override
public void onPurchasesUpdated( BillingResult billingResult, List<Purchase> purchases )
{
int responseCode = billingResult.getResponseCode();
if (responseCode == BillingClient.BillingResponseCode.OK)
{
// I get to here with a Purchase.PurchaseState.PENDING
}
}
但是,购买完成后不会调用此侦听器。我将应用程序保持打开状态,并在通知栏中看到来自Play商店的通知,说购买成功。
如果我在收到此通知后手动查询购买商品,则可以获取更新的购买商品,但这似乎不是处理购买商品的有效方法。
有人知道我在做什么错吗,或者这个过程有改变吗?
答案 0 :(得分:0)
这是Play商店应用(v17.9.17)中的问题。此处的代码正确无误,并且上面的Play Billing库的使用没有错误,即,待处理的交易完成(成功或取消)后应调用onPurchasesUpdated
。
Google已隔离该问题,并将在下一次更新中解决。
有关错误报告的参考资料,请参见: