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应用中正常使用谷歌内购功能。记得在实际发布前充分测试各种购买场景。

