应用内购买示例
演示如何使用应用内购买(IAP)插件。
入门
准备工作
要成功测试应用内购买,需要进行大量的设置,包括在 Play Developer Console 和 App Store Connect 中注册用于测试的新应用 ID 和商店条目。Google Play 和 App Store 都要求开发者配置一个带有应用内购买项目的应用才能调用其应用内购买 API。两个商店都提供了关于如何执行此操作的详细文档,我们也将在下面提供一个高级指南。
Android
-
在 Play Developer Console (PDC) 中创建新应用。
-
在 PDC 中注册商户账户。
-
在 PDC 中创建可在应用中购买的 IAP。该示例假定以下 SKU ID 存在:
consumable:一个托管产品。upgrade:一个托管产品。subscription_silver:一个低级别订阅。subscription_gold:一个更高级别的订阅。
确保所有产品都设置为
ACTIVE。 -
在
example/android/app/build.gradle中更新APP_ID以匹配您在 PDC 中的软件包 ID。 -
创建一个
example/android/keystore.properties文件,其中包含您的所有签名信息。keystore.example.properties文件作为示例提供。无法从未签名的 APK 使用任何BillingClientAPI。有关更多信息,请参阅 此处 和 此处。 -
构建一个已签名的 apk。
flutter build apk可以完成此操作,此项目中的 Gradle 文件已配置为对调试构建进行签名。 -
将第 6 步生成的已签名 APK 上传到 PDC,并发布到 Alpha 测试渠道。将您的测试账户添加为已批准的测试人员。
BillingClientAPI 在应用完全发布到 Alpha 渠道并由授权的测试账户使用之前将无法工作。有关更多信息,请参阅 此处。 -
在测试设备上登录测试账户(第 7 步)。然后使用
flutter run将应用安装到设备上并正常进行测试。
iOS
当使用 Xcode 12 和 iOS 14 或更高版本时,您可以在模拟器或设备上运行示例,而无需在 App Store Connect 中配置应用。示例应用已设置为使用在 example/ios/Runner/Configuration.storekit 文件中配置的 StoreKit 测试(如文章 在 Xcode 中设置 StoreKit 测试中所述)。要运行该应用程序,请执行以下步骤(请注意,这仅在从 Xcode 运行时有效):
-
使用 Xcode 打开示例应用,
File > Open Fileexample/ios/Runner.xcworkspace; -
在 Xcode 中编辑当前方案,
Product > Scheme > Edit Scheme...(或按Command + Shift + ,); -
启用 StoreKit 测试:a. 选择
Run操作;b. 在操作设置中单击Options;c. 为 StoreKit Configuration 选项选择Configuration.storekit。 -
单击
Close按钮关闭方案编辑器; -
选择您要在其上运行示例应用的设备;
-
使用
Product > Run运行应用程序(或单击运行按钮)。
当在 iOS 14 之前的版本上进行测试时,您无法在模拟器上运行示例应用,并且需要配置 App Store Connect 中的一个应用。您可以按照以下步骤进行操作:
-
请参阅 “配置应用内购买的工作流程”,这是一份关于启用应用内购买所需的所有步骤的详细指南。完成第 1 步(“签署付费应用程序协议”)和第 2 步(“配置应用内购买”)。
对于第 2 步,“在 App Store Connect 中配置应用内购买”,您需要创建以下产品:
- 一个可消耗产品,产品 ID 为
consumable - 一个升级产品,产品 ID 为
upgrade - 一个自动续订订阅产品,产品 ID 为
subscription_silver - 一个非续订订阅产品,产品 ID 为
subscription_gold
- 一个可消耗产品,产品 ID 为
-
在 Xcode 中,
File > Open Fileexample/ios/Runner.xcworkspace。将 Bundle ID 更新为与第 1 步中创建的应用的 Bundle ID 匹配。 -
创建沙盒测试账户 以便测试应用内购买。
-
使用
flutter run安装并测试该应用。请注意,您需要真机进行测试,而不是模拟器。接下来,点击示例应用中的一个产品,这将在 iOS 设置中启用“SANDBOX ACCOUNT”部分。此时系统会要求您使用沙盒测试账户登录以完成购买(不用担心,您不会被收费)。如果系统未要求您登录或列出了错误的用户名,请进入 iOS 设置(“设置” -> “App Store” -> “SANDBOX ACCOUNT”)并从那里更新您的沙盒账户。此过程在 使用沙盒测试应用内购买 文章中有详细说明。
重要提示: 使用沙盒测试账户登录任何生产环境(包括 iTunes!)将永久使其失效。