检查用户是不是真的为应用内购买付费 [iOS, Swift]

     2023-03-08     38

关键词:

【中文标题】检查用户是不是真的为应用内购买付费 [iOS, Swift]【英文标题】:Check to see if user actually payed for in-app purchase [iOS, Swift]检查用户是否真的为应用内购买付费 [iOS, Swift] 【发布时间】:2021-01-20 07:13:58 【问题描述】:

这对你来说很奇怪:)

我有一个 iOS 应用,其中包含非消耗性产品作为用户可以购买的应用内购买。如果您愿意,这是一种终身订阅。

问题是我的代码中有一个错误,它允许用户通过点击恢复购买按钮来“订阅”我的应用程序。

我现在修复了这个错误,但我有一个问题。现在大约有 50 名用户订阅了这项服务,但从未为此服务付费。

有没有办法查看用户是否真的为此付费?如果他们不付款,我想退订。

系统是这样工作的:

用户点击购买,Apple 会为我处理购买,在处理支付队列时,如果购买成功,我会通过将用户的 iCloud ID 添加到我的数据库来订阅用户。因此,我拥有的唯一数据是他们的 iCloud id,仅此而已。我不知道哪个 iCloud ID 是“付费”的,哪个是“作弊”:)

【问题讨论】:

【参考方案1】:

您可以从用户的设备上获取收据,并通过 Apple 的端点检查用户是否进行了有效购买。理想情况下,您应该从应用程序中获取收据并将其发送到您的服务器,以便在您的后端执行验证。

查看此文档以获取设备的收据 - https://developer.apple.com/documentation/storekit/in-app_purchase/validating_receipts_with_the_app_store

查看此文档以调用使用 Apple 端点验证收据 - https://developer.apple.com/documentation/appstorereceipts/verifyreceipt

【讨论】:

非常感谢您的回复!我实际上在沙盒环境中尝试过这个,结果很奇怪。我用我的帐户(沙盒上的付费用户)尝试了它,并且在手机上获取收据的代码没有找到收据。然后我试图从苹果的服务器上获取收据,它得到了收据。但是当尝试与一个不付费的新创建用户时,它也为他找到了一张收据。你能解释一下这是如何工作的吗?我在网上找不到任何东西。 尝试在应用程序上进行购买,然后检查收据是否存在。我从来没有遇到过这种情况,确实听起来很奇怪。关于非付费用户的收据 - 根据我的经验,所有用户都有一个 base64 编码的收据。但是,如果您将该收据传递给verifyReceipt API,它将返回所有购买。这就是为什么我提到您应该使用 base64 收据检查 Apple 的端点。您无法仅通过检查用户手机上是否有 base64 编码收据来确定用户是否进行了购买。 好了,就是这样!我没有与 Apple 核对,我假设如果有收据,那么就有购买。 Apple 文档确实效率低下。谢谢你好先生!

如何确认应用内购买是不是真的对测试 iTunes Connect 用户有效?

】如何确认应用内购买是不是真的对测试iTunesConnect用户有效?【英文标题】:HowcanIconfirmwhetherthein-apppurchaseactuallyworkedonaTestiTunesConnectuser?如何确认应用内购买是否真的对测试iTunesConnect用户有效?【发布时间】:2013-10-2702:58:20【... 查看详情

如何从付费应用转换为应用内购买? iOS 和 Android + Flutter

】如何从付费应用转换为应用内购买?iOS和Android+Flutter【英文标题】:Howtoconvertfromapaidapptoinapppurchase?iOSandAndroid+Flutter【发布时间】:2020-04-2918:31:16【问题描述】:我有一个应用程序,作为iOS和Android的付费应用程序存在的第一年... 查看详情

通过应用内购买付费应用到免费应用

...程序,并通过应用程序内购买。我想为购买了我的1.0版的用户免费提供数据。在这一点上,我面临一个问题。如果用户购买了我的付费应用程序,并且在我发布更新之前的某个时间后删除了该应用程序,在这种情况 查看详情

将免费应用升级为通过应用内购买付费?

...目并为免费/精简版创建一个新目标。对于安装免费版的用户,我将有一个购买按钮让他们购买该应用程序。我假设当他们点击购买按钮时,我会提示他们输入密码,然后新的应用程序ID会被识别为允许付费版本? 查看详情

如何确定购买该应用(不是应用内购买)的原始版本或日期

...用程序转换为具有IAP和祖父(为所有为该应用程序付费的用户)免费提供IAP功能的免费应用程序。我想我可以使用收据验证来(1)确 查看详情

iOS:我如何确定用户是不是仍有资格免费试用应用内购买订阅?

】iOS:我如何确定用户是不是仍有资格免费试用应用内购买订阅?【英文标题】:iOS:HowdoIfindout,ifauserisstilleligibleforafreetrialofanin-apppurchasesubscription?iOS:我如何确定用户是否仍有资格免费试用应用内购买订阅?【发布时间】:2017-0... 查看详情

是否可以为付费的 Mac App 提供促销代码(无应用内购买)

...0-1008:53:50【问题描述】:我有一个付费的app,我想让一些用户免费访问。我没有应用内购买,并且AppStoreConnect中的功能选项卡显示“只能为批准的版本生成促销代码”。如何生成促销代码?【问题讨论】: 查看详情

iOS 应用内购买。如何查看购买是不是已经购买?

】iOS应用内购买。如何查看购买是不是已经购买?【英文标题】:iOSinapppurchase.Howtocheckifpurchasealreadybought?iOS应用内购买。如何查看购买是否已经购买?【发布时间】:2015-02-0814:32:43【问题描述】:我正在尝试将购买添加到我的应... 查看详情

在 ios 付费应用程序中包含应用内购买

】在ios付费应用程序中包含应用内购买【英文标题】:includein-app-purchasesinaiospaidaplication【发布时间】:2014-01-3112:19:14【问题描述】:我想发布一款iOS付费应用,其中包含应用内购买模块。是否可以在iOS应用程序中包含应用内购... 查看详情

在应用程序内购买

】在应用程序内购买【英文标题】:In-App-Purchase【发布时间】:2011-04-2705:37:04【问题描述】:是否必须让IOS付费应用程序合同生效(已完成)才能在沙盒环境中测试应用内购买?【问题讨论】:【参考方案1】:是的。因为你不... 查看详情

Android:应用内:检查是不是已购买商品

】Android:应用内:检查是不是已购买商品【英文标题】:Android:in-app:checkifanitemhasbeenpurchasedAndroid:应用内:检查是否已购买商品【发布时间】:2012-08-2717:15:50【问题描述】:我按照本教程在我的应用程序中实现应用内:http://blog... 查看详情

在显示按钮之前检查是不是可以进行应用内购买

】在显示按钮之前检查是不是可以进行应用内购买【英文标题】:CheckifIn-AppPurchasecanbemadebeforedisplayingthebutton在显示按钮之前检查是否可以进行应用内购买【发布时间】:2017-08-2522:46:20【问题描述】:我正在一个XCode项目中实现应... 查看详情

如何在我的 ios 应用程序中将免费功能转换为付费功能?

...购买)的访问收费。理想情况下,已经下载该应用程序的用户无需付费即可继续使用这些功能。但是,任何新用户在不购买 查看详情

为测试用户从 iOS 应用内购买沙箱清除购买

】为测试用户从iOS应用内购买沙箱清除购买【英文标题】:ClearingpurchasesfromiOSin-apppurchasesandboxforatestuser【发布时间】:2011-12-0613:00:39【问题描述】:有人对如何重置和/或清除iOS应用内购买沙箱有任何想法吗?我有一个正在使用... 查看详情

购买付费应用时是不是可以发送账户信息?

】购买付费应用时是不是可以发送账户信息?【英文标题】:Isitpossibletosendaccountinformationwhenthepaidapplicationispurchased?购买付费应用时是否可以发送账户信息?【发布时间】:2020-08-1308:05:52【问题描述】:我有一个移动应用程序。... 查看详情

免费应用内购买

...运行时免费提供一个非消耗品(但不是特定的,他们希望用户从这4个中选择一个),因为他们已经为应用程序付费。有没有办法解决这个问题?据我所知,我们无法在iTu 查看详情

我可以在 iOS 中为用户生成的优惠进行应用内购买计费吗?

】我可以在iOS中为用户生成的优惠进行应用内购买计费吗?【英文标题】:CanIbillin-apppurchasesforuser-generatedoffersiniOS?【发布时间】:2011-07-1310:41:54【问题描述】:我正在构建一种移动市场,用户可以在该市场上提供和购买仅在短... 查看详情

在应用内购买 ios 的音乐内容

...出到ipod音乐库,只能在应用程序中播放。我可以通过为用户提供一个URL来解决这个问题,然后他们可以使用该U 查看详情