首页 > 解决方案 > Flutter 在应用程序购买中我应该在 _verifyPurchase() 中包含什么

问题描述

嗨,我目前一直在使用 Flutter 应用支付插件示例https://github.com/flutter/plugins/tree/master/packages/in_app_purchase/example。在付款发生后的代码中,有一个名为_verifyPurchase当前的函数,该函数如下所示。

Future<bool> _verifyPurchase(PurchaseDetails purchaseDetails) {
  // IMPORTANT!! Always verify a purchase before delivering the product.
  // For the purpose of an example, we directly return true.
  return Future<bool>.value(true);
}

目前它总是返回 true 但是我不完全理解我需要在此处包含哪些验证过程来验证购买。

我需要在此处包含哪些验证流程来验证购买

我目前对这个函数中实际需要什么感到困惑。

标签: flutterdartin-app-purchase

解决方案


它们意味着与您的后端服务器进行验证。这样,您的服务器可以检查购买的确认状态,是否已被消费等,而无需在客户端上执行此操作,这不是验证任何事情的安全方法,因为客户端可能会受到损害 - 这就是为什么文档告诉通过您的后端验证购买,在客户端内部执行此操作没有任何意义。您需要向您的服务器发送购买时提供的令牌(在您拥有的 PurchaseDetails 中.verificationData.serverVerificationData

使用它通过您的后端验证购买(假设您有一个后端),首先将验证数据中的令牌发送到您的后端,然后从它发送到用于此类检查的 Google API。

您还需要在您的 Google Play 开发控制台中设置一个服务帐户,以允许后端访问所需的数据。它不是很复杂,但是一个漫长的过程,它还取决于您的后端语言等。最好从这里开始查看官方文档: https ://developer.android.com/google/play/developer-api#subscriptions_api_overview


推荐阅读