如何使用Flutter验证应用内购买?

wgmfuz8q  于 2022-12-24  发布在  Flutter
关注(0)|答案(3)|浏览(365)

在Flutter应用程序中使用IAP的in_app_purchase 0.6.0插件时,我找不到如何验证购买的方法。在软件包示例中,验证购买的部分显示:

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

我发现您可以从购买详情获得验证数据&有3个参数可用

purchaseDetails.verificationData.serverVerificationData
purchaseDetails.verificationData.localVerificationData
purchaseDetails.verificationData.source

当我测试的时候,服务器和本地的值是一样的,比较它们是否被认为是验证?代码中注解的措辞方式让人觉得你应该把其中一个值和源代码(ios或android)传递给其他验证方法。如果是这样的话,应该使用什么方法来验证?

l7mqbcuq

l7mqbcuq1#

NOTE: If you are making a subscription purchase/upgrade/downgrade, we recommend you to
 verify the latest status of you your subscription by using server side receipt validation
 and update the UI accordingly. The subscription purchase status shown

这是从in_app_purchase 0.6.0验证过程的一个例子拷贝过来的,应该是在服务器上purchaseDetails.verificationData.serverVerificationData是一个回执,用base64编码,需要把它发送到服务器上,服务器端就可以用它来验证App/Play商店了。

nbnkbykc

nbnkbykc2#

坏消息是IAP包没有提供直接的方法来验证从各个应用商店购买的产品;这必须通过使用相应的商店API来完成,建议您将购买数据存储在自己的服务器中,因为您需要存储purchaseToken以便调用API并返回相应购买的正确数据,并且如果用户删除应用程序/获得新手机或清除数据,从用户体验的观点来看(或者为了处理过期/退款的预订),没有办法检索该信息。
我建议阅读谷歌flutter IAP教程:https://codelabs.developers.google.com/codelabs/flutter-in-app-purchases#9
特别是关于购买处理程序的部分,它展示了如何连接到Google Play商店和Apple storeKit API来验证您的购买;诀窍是本教程只为购买时验证而编写,但是您可以重新使用这些函数以根据需要进行验证。
您需要熟悉(或愿意学习)REST API调用和TS,才能跟随本教程沿着。

5lhxktic

5lhxktic3#

这里是detailed instruction验证Flutter应用内购买使用netcore 6 Web API的iOS和Android。

相关问题