flutter中如何集成谷歌内购并配置相关设置

在Flutter项目中集成谷歌内购时遇到了问题,具体配置流程不太清楚。请问如何正确添加in_app_purchase插件并配置Android端的相关设置?需要哪些必要的步骤,比如密钥配置、商品ID设置和沙盒测试等?另外,如何处理订阅类商品和一次性购买的不同逻辑?希望能得到详细的实现示例和常见坑点说明。

2 回复

在Flutter中集成谷歌内购,需以下步骤:

  1. 添加in_app_purchase依赖到pubspec.yaml
  2. AndroidManifest.xml中配置应用ID和权限。
  3. 初始化插件并验证购买。
  4. 处理商品查询和购买流程。

确保在Google Play Console中配置商品和测试账号。

更多关于flutter中如何集成谷歌内购并配置相关设置的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


在Flutter中集成谷歌内购,可以使用官方in_app_purchase插件。以下是具体步骤:

1. 添加依赖

pubspec.yaml 中添加:

dependencies:
  in_app_purchase: ^3.1.7

2. Android配置

android/app/build.gradle 中:

android {
    defaultConfig {
        applicationId "com.yourapp.package"
        minSdkVersion 21
        targetSdkVersion 33
    }
}

AndroidManifest.xml 中添加权限:

<uses-permission android:name="com.android.vending.BILLING" />

3. 代码实现

初始化内购:

import 'package:in_app_purchase/in_app_purchase.dart';

class InAppPurchaseService {
  static final InAppPurchase _iap = InAppPurchase.instance;
  
  static Future<void> initialize() async {
    final bool available = await _iap.isAvailable();
    if (!available) {
      // 处理内购不可用情况
      return;
    }
  }
}

查询商品:

static Future<List<ProductDetails>> getProducts(List<String> productIds) async {
  final ProductDetailsResponse response = 
      await _iap.queryProductDetails(productIds);
  return response.productDetails;
}

购买商品:

static Future<void> purchase(ProductDetails product) async {
  final PurchaseParam purchaseParam = PurchaseParam(
    productDetails: product,
  );
  
  await _iap.buyConsumable(purchaseParam: purchaseParam);
}

监听购买结果:

static Stream<List<PurchaseDetails>> get purchaseUpdates => 
    _iap.purchaseStream;

4. Google Play控制台配置

  1. 在Google Play Console创建应用
  2. 设置定价和商品(消耗型、非消耗型、订阅)
  3. 上传签名的APK/AAB到测试轨道
  4. 添加测试账号到许可测试列表

5. 测试注意事项

  • 使用测试账号(不在许可测试列表中的真实账号)
  • 构建签名版本进行测试
  • 检查SHA-1指纹配置

6. 处理购买状态

void _listenToPurchaseUpdated(List<PurchaseDetails> purchases) {
  for (var purchase in purchases) {
    if (purchase.status == PurchaseStatus.purchased) {
      // 验证收据并发放商品
      _verifyPurchase(purchase);
    }
  }
}

完成以上步骤后,即可在Flutter应用中正常使用谷歌内购功能。记得在实际发布前充分测试各种购买场景。

回到顶部