flutter如何实现iOS苹果支付
在Flutter中如何实现iOS苹果支付功能?需要集成哪些插件或SDK?具体步骤是什么?是否需要在App Store Connect中配置什么?支付成功后如何验证订单?有没有完整的代码示例或最佳实践可以分享?
        
          2 回复
        
      
      
        在Flutter中如何实现iOS苹果支付功能?需要集成哪些插件或SDK?具体步骤是什么?是否需要在App Store Connect中配置什么?支付成功后如何验证订单?有没有完整的代码示例或最佳实践可以分享?
Flutter中实现苹果支付,需使用in_app_purchase插件。步骤:
注意遵守苹果审核规则。
更多关于flutter如何实现iOS苹果支付的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
在 Flutter 中实现 iOS 应用内购买(苹果支付),可以使用官方插件 in_app_purchase。以下是基本步骤:
在 pubspec.yaml 中添加:
dependencies:
  in_app_purchase: ^3.1.7
import 'package:in_app_purchase/in_app_purchase.dart';
class IAPManager {
  final InAppPurchase _iap = InAppPurchase.instance;
  // 初始化并监听购买流
  void initialize() {
    _iap.purchaseStream.listen((List<PurchaseDetails> purchases) {
      _handlePurchase(purchases);
    });
  }
  // 获取商品信息
  Future<void> loadProducts(Set<String> productIds) async {
    final ProductDetailsResponse response = 
        await _iap.queryProductDetails(productIds);
    if (response.notFoundIDs.isNotEmpty) {
      print("未找到商品: ${response.notFoundIDs}");
    }
    List<ProductDetails> products = response.productDetails;
    // 显示商品列表
  }
  // 购买商品
  Future<void> buyProduct(ProductDetails product) async {
    final PurchaseParam purchaseParam = PurchaseParam(
      productDetails: product,
    );
    await _iap.buyNonConsumable(purchaseParam: purchaseParam); // 非消耗型
    // 或使用 buyConsumable(消耗型)
  }
  // 处理购买结果
  void _handlePurchase(List<PurchaseDetails> purchases) {
    for (PurchaseDetails purchase in purchases) {
      if (purchase.status == PurchaseStatus.purchased) {
        // 验证收据并交付商品
        _verifyAndDeliverProduct(purchase);
      } else if (purchase.status == PurchaseStatus.error) {
        print("购买失败: ${purchase.error}");
      }
      if (purchase.pendingCompletePurchase) {
        _iap.completePurchase(purchase); // 完成交易
      }
    }
  }
  void _verifyAndDeliverProduct(PurchaseDetails purchase) {
    // 向服务器验证收据(建议)
    // 交付商品给用户
    print("购买成功: ${purchase.productID}");
  }
}
restorePurchases() 让用户恢复非消耗型和订阅商品。确保遵守 Apple 审核指南,正确处理网络异常和用户取消操作。