Flutter如何集成苹果支付
我在Flutter项目中需要集成苹果支付功能,但不太清楚具体实现步骤。请问应该使用哪个插件或SDK?是否需要额外配置App Store Connect?支付流程该如何与Flutter代码对接?测试时需要注意哪些事项?有没有完整的代码示例可以参考?
2 回复
Flutter集成苹果支付可使用in_app_purchase插件。步骤如下:
- 在Xcode中启用应用内购买功能。
- 配置App Store Connect中的商品。
- 在Flutter项目中添加插件并初始化。
- 实现购买流程和交易监听。
注意遵守苹果审核规则。
更多关于Flutter如何集成苹果支付的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
在 Flutter 中集成苹果支付(Apple Pay),可以通过 in_app_purchase 插件实现,该插件由 Flutter 团队维护,支持 iOS 和 Android 平台。以下是基本步骤:
1. 添加依赖
在 pubspec.yaml 文件中添加依赖:
dependencies:
in_app_purchase: ^3.1.7
运行 flutter pub get 安装。
2. 配置 iOS 项目
- 启用 Apple Pay:在 Xcode 中,选择项目 Target → Signing & Capabilities → 点击 “+ Capability” → 添加
Apple Pay。 - 配置 Merchant ID:在 Apple 开发者中心创建 Merchant ID,并在 Xcode 的 Apple Pay 配置中勾选该 ID。
3. 初始化支付
在 Flutter 代码中导入包并初始化:
import 'package:in_app_purchase/in_app_purchase.dart';
void initPurchase() {
final bool available = await InAppPurchase.instance.isAvailable();
if (!available) {
// 处理设备不支持支付的情况
}
}
4. 获取商品列表
从 App Store Connect 配置商品后,通过以下代码获取:
const Set<String> _productIds = {'com.example.product1'};
ProductDetailsResponse response = await InAppPurchase.instance.queryProductDetails(_productIds);
if (response.notFoundIDs.isNotEmpty) {
// 处理未找到的商品
}
List<ProductDetails> products = response.productDetails;
5. 发起购买
final PurchaseParam purchaseParam = PurchaseParam(
productDetails: products[0],
applicationUserName: null, // 可选用户标识
);
InAppPurchase.instance.buyConsumable(purchaseParam: purchaseParam);
6. 监听购买状态
final Stream<List<PurchaseDetails>> purchaseUpdates = InAppPurchase.instance.purchaseStream;
StreamSubscription<List<PurchaseDetails>> _subscription = purchaseUpdates.listen((purchases) {
for (var purchase in purchases) {
if (purchase.status == PurchaseStatus.purchased) {
// 验证收据并交付商品
_verifyPurchase(purchase);
}
}
});
7. 验证交易
建议在服务器端验证收据,确保交易安全。可参考 Apple 验证文档。
注意事项:
- 沙盒测试:使用 Apple 沙盒环境测试,无需真实付款。
- 商品配置:确保在 App Store Connect 中正确配置商品。
- 权限处理:根据应用需求处理权限和错误状态。
通过以上步骤,即可在 Flutter 应用中集成 Apple Pay。详细内容可查阅 in_app_purchase 文档。

