确认订阅设置已经正确配置,包括权限、商品ID、测试账号等。特别是需要保证订阅类型为自动续订。
确认代码中实现了自动续订功能。可参考如下示例:
public class BillingService extends Service implements ServiceConnection,
PurchasesUpdatedListener {
private BillingClient mBillingClient;
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
mBillingClient = BillingClient.newBuilder(this)
.setListener(this)
.enablePendingPurchases()
.build();
mBillingClient.startConnection(this);
}
@Override
public void onBillingSetupFinished(BillingResult billingResult) {
if (billingResult.getResponseCode() == BillingClient.BillingResponseCode.OK) {
List skuList = new ArrayList<>();
skuList.add("monthly_subscription");
SkuDetailsParams.Builder params = SkuDetailsParams.newBuilder();
params.setSkusList(skuList).setType(BillingClient.SkuType.SUBS);
mBillingClient.querySkuDetailsAsync(params.build(),
new SkuDetailsResponseListener() {
@Override
public void onSkuDetailsResponse(BillingResult billingResult,
List skuDetailsList) {
if (billingResult.getResponseCode() == BillingClient.BillingResponseCode.OK) {
for (SkuDetails skuDetails : skuDetailsList) {
String skuDetailsId = skuDetails.getSku();
if (skuDetailsId.equals("monthly_subscription")) {
BillingFlowParams billingFlowParams = BillingFlowParams
.newBuilder()
.setSkuDetails(skuDetails)
.build();
mBillingClient.launchBillingFlow(activity, billingFlowParams);
}
}
}
}
});
}
}
@Override
public void onPurchasesUpdated(BillingResult billingResult, @Nullable List purchases) {
int responseCode = billingResult.getResponseCode();
if (responseCode == BillingClient.BillingResponseCode.OK && purchases != null) {
for (Purchase purchase :
上一篇:AndroidBilling4.0.0的实现导致ReactNativeInAppPurchase(RNIAP)停止工作。
下一篇:AndroidBillingClient在onQueryPurchasesResponse方法中离线存储结果的时间有多长?