flutter - 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 但是我不完全理解我需要在此处包含哪些验证过程来验证购买。
我需要在此处包含哪些验证流程来验证购买
我目前对这个函数中实际需要什么感到困惑。
解决方案
它们意味着与您的后端服务器进行验证。这样,您的服务器可以检查购买的确认状态,是否已被消费等,而无需在客户端上执行此操作,这不是验证任何事情的安全方法,因为客户端可能会受到损害 - 这就是为什么文档告诉通过您的后端验证购买,在客户端内部执行此操作没有任何意义。您需要向您的服务器发送购买时提供的令牌(在您拥有的 PurchaseDetails 中.verificationData.serverVerificationData
)
使用它通过您的后端验证购买(假设您有一个后端),首先将验证数据中的令牌发送到您的后端,然后从它发送到用于此类检查的 Google API。
您还需要在您的 Google Play 开发控制台中设置一个服务帐户,以允许后端访问所需的数据。它不是很复杂,但是一个漫长的过程,它还取决于您的后端语言等。最好从这里开始查看官方文档: https ://developer.android.com/google/play/developer-api#subscriptions_api_overview
推荐阅读
- python - python中对二维列表元素的内存引用是否连续?
- while-loop - 如何在从文件 B 读取值时剪切文件 A 的每第 n 行?
- go - 缩短 || 或者 Golang 中的 if 语句
- mongodb - 猫鼬放松
- javascript - 如何在更改屏幕尺寸等时让我的 Web 应用程序响应更快?
- optimization - 确定为什么visual studio优化了一个功能?
- javascript - 打字时的 DOM 操作在 iPad 上不起作用但在 iPhone 上起作用
- google-cloud-platform - 安全的 Cloud Run 服务仅接受来自浏览器中域的请求(而不是 Postman / shell 脚本)
- python - 必须为多个窗口重复按下 Tkinter 的“退出”按钮
- apache-flink - flink作业将数据写入hdfs文件时是否可以每小时执行一次分区添加?