flutter中如何集成谷歌内购并配置相关设置
在Flutter项目中集成谷歌内购时遇到了问题,具体配置流程不太清楚。请问如何正确添加in_app_purchase插件并配置Android端的相关设置?需要哪些必要的步骤,比如密钥配置、商品ID设置和沙盒测试等?另外,如何处理订阅类商品和一次性购买的不同逻辑?希望能得到详细的实现示例和常见坑点说明。
        
          2 回复
        
      
      
        在Flutter中集成谷歌内购,需以下步骤:
- 添加in_app_purchase依赖到pubspec.yaml。
- 在AndroidManifest.xml中配置应用ID和权限。
- 初始化插件并验证购买。
- 处理商品查询和购买流程。
确保在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控制台配置
- 在Google Play Console创建应用
- 设置定价和商品(消耗型、非消耗型、订阅)
- 上传签名的APK/AAB到测试轨道
- 添加测试账号到许可测试列表
5. 测试注意事项
- 使用测试账号(不在许可测试列表中的真实账号)
- 构建签名版本进行测试
- 检查SHA-1指纹配置
6. 处理购买状态
void _listenToPurchaseUpdated(List<PurchaseDetails> purchases) {
  for (var purchase in purchases) {
    if (purchase.status == PurchaseStatus.purchased) {
      // 验证收据并发放商品
      _verifyPurchase(purchase);
    }
  }
}
完成以上步骤后,即可在Flutter应用中正常使用谷歌内购功能。记得在实际发布前充分测试各种购买场景。
 
        
       
             
             
            

