如何执行应用内购买的验证



我刚刚在Flutter应用程序上实现了应用内购买。我在各种文件上看到,我们应该在提供福利之前核实购买情况,但我不知道这到底意味着什么。

PurchaseDetails 对象提供以下属性:

  • 采购ID
  • productID
  • 验证数据
  • 交易日期
  • 状态

我们应该如何使用它们进行验证?

谢谢你的帮助,Benjamin

但我不明白这到底意味着什么。

这只是意味着,作为服务提供商,我们应该与支付处理机构(分别为Android/iOS IAP的谷歌/苹果(仔细检查成功的交易,以防止任何形式的欺诈。

我们应该如何使用它们进行验证?

https://pub.dev/documentation/in_app_purchase_platform_interface/latest/in_app_purchase_platform_interface/PurchaseVerificationData-class.html

PurchaseDetails.verificationData公开了两种数据(按照命名方式使用(:

  • localVerificationData
  • 服务器验证数据

购买收据验证可以在本地(即在客户端应用程序上(或在(您的(服务器端进行。出于安全考虑,建议在服务器端实现。

现在,这就是iOS和Android的verificationData行为发生变化的地方。

  • iOSverificationData

  • iOS IAP验证如何工作

  • 安卓verificationData

  • 安卓IAP验证如何工作

    参考文献1
  • 参考文献2

不需要过多的参考文献(我认为它们很不言自明(:

  • 在iOS的情况下,localVerificationData=serverVerificationData,可以通过点击verifyReceipt端点(可以在服务器端或客户端上完成(验证购买,也可以在客户端/服务器端解密数据并手动解析解密的数据。

  • 在Android的情况下,localVerificationData携带ProductPurchase数据,否则通过使用serverVerificationData提供的令牌来请求上述REST端点来返回该数据。如果采购状态为PURCHASED,则视为"已验证"采购。

根据您的用例,您可能还需要处理其他情况。

希望以上链接的参考资料是有用的。

相关内容

最新更新