我刚刚在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
行为发生变化的地方。
-
iOS
verificationData
-
iOS IAP验证如何工作
-
安卓
verificationData
-
安卓IAP验证如何工作
参考文献1 - 参考文献2
不需要过多的参考文献(我认为它们很不言自明(:
-
在iOS的情况下,
localVerificationData
=serverVerificationData
,可以通过点击verifyReceipt
端点(可以在服务器端或客户端上完成(验证购买,也可以在客户端/服务器端解密数据并手动解析解密的数据。 -
在Android的情况下,
localVerificationData
携带ProductPurchase
数据,否则通过使用serverVerificationData
提供的令牌来请求上述REST端点来返回该数据。如果采购状态为PURCHASED
,则视为"已验证"采购。
根据您的用例,您可能还需要处理其他情况。
希望以上链接的参考资料是有用的。