flutter_inapp_purchase如何使用

我在使用flutter_inapp_purchase插件时遇到了一些问题:

  1. 如何配置Android和iOS端的应用内购买?是否需要额外的平台配置?
  2. 初始化插件时总是报错"Connection failed",该如何排查?
  3. 如何正确获取商品列表?返回的商品信息总是为空。
  4. 用户完成支付后,如何验证支付凭据?需要在服务器端处理吗?
  5. 订阅类商品的状态如何监听?比如自动续订或取消订阅的情况。

有没有完整的代码示例可以参考?文档中的说明不够详细,希望能得到实际使用经验的分享。

2 回复

使用flutter_inapp_purchase需先初始化连接,监听购买事件。获取商品列表后调用购买方法,处理购买结果并验证收据。最后关闭连接。注意配置应用内购买权限和测试账户。

更多关于flutter_inapp_purchase如何使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


Flutter In-App Purchase(flutter_inapp_purchase)是用于在Flutter应用中实现应用内购买功能的插件。以下是基本使用步骤:

1. 安装插件

pubspec.yaml 中添加依赖:

dependencies:
  flutter_inapp_purchase: ^5.0.0

运行 flutter pub get

2. 配置平台

Android

  • 在Google Play Console中设置应用内商品。
  • android/app/src/main/AndroidManifest.xml 添加权限(通常自动添加)。

iOS

  • 在App Store Connect中创建商品。
  • 在Xcode中启用In-App Purchase功能(Signing & Capabilities)。

3. 初始化连接

import 'package:flutter_inapp_purchase/flutter_inapp_purchase.dart';

// 初始化
await FlutterInappPurchase.instance.initConnection;

// 获取商品列表
List<IAPItem> products = await FlutterInappPurchase.instance.getProducts(['product_id_1', 'product_id_2']);

4. 购买商品

try {
  PurchasedItem? purchase = await FlutterInappPurchase.instance.requestPurchase('product_id');
  if (purchase != null) {
    // 处理购买成功
    print('购买成功: ${purchase.productId}');
  }
} catch (e) {
  print('购买失败: $e');
}

5. 处理购买结果

监听购买流以验证交易:

FlutterInappPurchase.purchaseUpdated.listen((PurchasedItem purchase) {
  // 验证收据并解锁内容
  _verifyPurchase(purchase);
});

FlutterInappPurchase.purchaseError.listen((PurchaseResult error) {
  print('购买错误: ${error.message}');
});

6. 结束连接

在应用退出时关闭连接:

@override
void dispose() {
  FlutterInappPurchase.instance.endConnection;
  super.dispose();
}

注意事项:

  • 测试:在真机上用测试账户验证,不要用模拟器。
  • 安全:服务器端验证收据以确保交易真实。
  • 合规:遵循Apple和Google的审核指南。

通过以上步骤,你可以快速集成应用内购买功能。

回到顶部