Flutter 在应用程序购买中我应该在 _verifyPurchase() 中包含啥
Posted
技术标签:
【中文标题】Flutter 在应用程序购买中我应该在 _verifyPurchase() 中包含啥【英文标题】:Flutter In App Purchase What Should I Include in _verifyPurchase()Flutter 在应用程序购买中我应该在 _verifyPurchase() 中包含什么 【发布时间】:2020-11-15 18:46:43 【问题描述】:您好,我目前一直在使用 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,但我不完全了解我需要在此处包含哪些验证过程来验证购买。
我需要在此处包含哪些验证流程来验证购买
我目前对这个函数中实际需要什么感到困惑。
【问题讨论】:
【参考方案1】:它们意味着与您的后端服务器进行验证。这样,您的服务器可以检查购买的确认状态,是否已被消费等,而无需在客户端上执行此操作,这不是验证任何事情的安全方法,因为客户端可能会受到损害 - 这就是为什么文档告诉通过您的后端验证购买,在客户端内部执行此操作没有任何意义。
您需要向您的服务器发送购买时提供的令牌(在您的 PurchaseDetails 中您有 .verificationData.serverVerificationData
)
使用它通过您的后端验证购买(假设您有一个后端),方法是首先将验证数据中的令牌发送到您的后端,然后从它发送到用于此类检查的 Google API。
您还需要在您的 Google Play 开发控制台中设置一个服务帐户,以允许后端访问所需的数据。它不是很复杂,但过程很长,而且还取决于您的后端语言等。最好从这里开始查看官方文档: https://developer.android.com/google/play/developer-api#subscriptions_api_overview
【讨论】:
token
中的token
也是如此androidpublisher.googleapis.com/androidpublisher/v3/…packageName/purchases/subscriptions/subscriptionId/tokens/token?以上是关于Flutter 在应用程序购买中我应该在 _verifyPurchase() 中包含啥的主要内容,如果未能解决你的问题,请参考以下文章
Flutter In-App-Purchase,每次重启应用如何查看是不是已购买?