Flutter应用内购买验证插件flutter_app_store_server_receipt_utility的使用

简介

flutter_app_store_server_receipt_utility 是一个用于处理 Apple App Store 服务器 API 的工具库。它可以帮助开发者验证应用内的购买收据。


开始使用

首先,确保你已经在项目中添加了该插件。在 pubspec.yaml 文件中添加以下依赖:

dependencies:
  flutter_app_store_server_receipt_utility: ^1.0.0

然后运行以下命令以安装依赖:

flutter pub get

示例代码

以下是一个完整的示例,展示如何使用 flutter_app_store_server_receipt_utility 来提取交易 ID 并打印到控制台。

import 'package:flutter/material.dart';
import 'package:flutter_app_store_server_receipt_utility/flutter_app_store_server_receipt_utility.dart';

void main() {
  // 模拟的应用内购买收据
  const appReceipt =
      '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';

  // 提取交易 ID
  final transactionId =
      ReceiptUtility.extractTransactionIdFromAppReceipt(appReceipt);

  // 打印交易 ID 到控制台
  debugPrint('提取的交易 ID: $transactionId');
}

运行结果

运行上述代码后,你会在控制台看到类似如下的输出:

I/flutter ( 7776): 提取的交易 ID: 1000000000000000

更多关于Flutter应用内购买验证插件flutter_app_store_server_receipt_utility的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter应用内购买验证插件flutter_app_store_server_receipt_utility的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


flutter_app_store_server_receipt_utility 是一个用于在 Flutter 应用中验证应用内购买(In-App Purchase, IAP)收据的插件。它主要用于与 Apple App Store 和 Google Play Store 的服务器进行通信,以验证购买收据的有效性。

以下是如何使用 flutter_app_store_server_receipt_utility 插件的基本步骤:

1. 添加依赖

首先,在你的 pubspec.yaml 文件中添加 flutter_app_store_server_receipt_utility 插件的依赖:

dependencies:
  flutter:
    sdk: flutter
  flutter_app_store_server_receipt_utility: ^1.0.0  # 请使用最新的版本号

然后运行 flutter pub get 来获取依赖。

2. 初始化插件

在你的 Dart 代码中,导入插件并初始化它:

import 'package:flutter_app_store_server_receipt_utility/flutter_app_store_server_receipt_utility.dart';

void initializePlugin() {
  final receiptUtility = FlutterAppStoreServerReceiptUtility();
}

3. 验证 App Store 收据

对于 Apple App Store,你可以使用 verifyAppStoreReceipt 方法来验证收据:

Future<void> verifyAppStoreReceipt() async {
  final receiptUtility = FlutterAppStoreServerReceiptUtility();
  
  // 获取收据数据
  final receiptData = await receiptUtility.getAppStoreReceiptData();
  
  // 验证收据
  final verificationResult = await receiptUtility.verifyAppStoreReceipt(
    receiptData: receiptData,
    sharedSecret: 'YOUR_SHARED_SECRET',  // 你的 App Store Connect 中的共享密钥
  );

  if (verificationResult.status == ReceiptStatus.valid) {
    print('收据验证成功');
  } else {
    print('收据验证失败: ${verificationResult.status}');
  }
}

4. 验证 Google Play 收据

对于 Google Play Store,你可以使用 verifyGooglePlayReceipt 方法来验证收据:

Future<void> verifyGooglePlayReceipt() async {
  final receiptUtility = FlutterAppStoreServerReceiptUtility();
  
  // 获取收据数据
  final purchaseData = await receiptUtility.getGooglePlayPurchaseData();
  final dataSignature = await receiptUtility.getGooglePlayDataSignature();
  
  // 验证收据
  final verificationResult = await receiptUtility.verifyGooglePlayReceipt(
    purchaseData: purchaseData,
    dataSignature: dataSignature,
    packageName: 'YOUR_PACKAGE_NAME',  // 你的应用包名
    productId: 'YOUR_PRODUCT_ID',      // 你的产品ID
  );

  if (verificationResult.status == ReceiptStatus.valid) {
    print('收据验证成功');
  } else {
    print('收据验证失败: ${verificationResult.status}');
  }
}
回到顶部