问题标签 [receipt-validation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
46 浏览

html - 在使用 fxpay 进行应用内购买后识别 FirefoxOS 托管应用中的用户

这是我的问题。

我在 Firefox MarketPlace 中设置了一个应用程序。我的申请获得批准并公开。我可以在商店中找到它,下载并使用它。

这是一个免费的应用程序,一些额外的内容可以通过 fxpay 应用程序内购买来解锁。这也有效。

我使用 javascript fxpay() 库。

当用户退出应用程序并返回时,fxpay() 调用'onrestore' 方法并在返回时,服务器知道用户是否购买了应用程序内。但我不知道“谁”买了它。例如,如果我想让一些东西在 2 周内可用,我需要识别我的用户并将他保存在我的数据库中。

所以这是我从文档中尝试过的:

这可行,并相对于我的应用程序管理面板返回正确的 ID

这也有效

这将返回“未定义”

所有这些都没有返回任何东西

我做错了吗?我在文档中找不到任何关于正确解析收据的内容!

我看过这个链接,但我认为它只指旧图书馆而不是 fxPay

我也看过这个,但它也无济于事!

0 投票
1 回答
1910 浏览

ios - iOS 收据验证 - 自动续订订阅

我在验证自动续订 IAP 的收据时遇到问题。以下是我用于验证订阅的代码的摘要。我正在使用 Parse 作为后端,并且还包含一些代码。在开发模式下,一切正常,没有问题。它存在于 App Store 中,我所有的 TestFlight 测试人员以及一些真实用户在应用程序尝试验证时都会遇到崩溃。当我尝试将数据保存回 Parse 时,我看到崩溃来自函数的最后,它告诉我我要保存的键为空。( base64, info, expirationDate)

在我的设备上,我有一个沙盒购买收据,我收到了21007Apple 的回复,试图验证实时 URL。当我切换到沙盒 url 时,它每次都会验证并工作。

另外,我知道以这种确切的方式验证购买是不安全的,我通过我的服务器执行验证,所以那里没有问题。

我想弄清楚我是否错过了一个步骤,是否有什么我应该做的不同的事情?

伪代码:

这是一段实际代码:

0 投票
1 回答
673 浏览

ios - 如何在 iOS 中使用测试帐户购买后获取应用收据

我正在与 IAP 合作,我想获得收据以便验证它。

我试过这个

我希望我做得对,因为这是文档中提到的。但是我得到“空响应。所以我错过了一些东西。

0 投票
0 回答
280 浏览

ios - 编写自己的 iTunes IAP 收据验证服务器,收据中的唯一数据?

我正在尝试验证我自己的 IAP 收据。我在寻找可以检查唯一性的恒定数据点方面遇到了一些问题。

第一个问题是我的大量收据还status: 0 没有,该in_app字段是一个空数组。意思是没有transaction_id, original_transaction_id

我在这里和 Apple 支持论坛上看到过这个问题,但没有看到关于这些类型收据的任何决定性或官方答案——它们是否有效等。

第二个问题是找到一个唯一的数据点。如果我们忽略空in_app字段的情况,只处理带有 的收据transaction_id

有没有transaction_id出现两次的合法场景?还是那张经过验证的假收据?

0 投票
0 回答
445 浏览

in-app-purchase - 恢复应用内购买交易,获取相同的交易ID

我目前正在沙盒模式下测试应用购买,每次我恢复以前的交易时,我的收据都会在 transaction_id 字段和 original_transaction_id 字段中包含原始交易 ID。

通过阅读 Apple 文档,我了解到恢复是一个全新的交易(意味着我假设的新交易 ID)。出于这个原因,添加了 original_transaction_id 以添加信息。

恢复时我得到的是等于 original_transaction_id 和 transaction_id ,是因为在沙箱中吗?还是我理解错了?

0 投票
0 回答
103 浏览

ios - 如何通过 CargoBay 向我的服务器验证 IAP 收据?

我在我的应用程序中设置了一些非消耗性 IAP。

我通过 SKProductsRequestDelegate 方法返回了我的 IAP SKProducts 列表-productsRequest:didReceiveResponse

我还通过 SKPaymentQueue 和 SKPaymentTransactionObserver 委托方法购买了 IAP(在沙盒中)-paymentQueue:updatedTransactions

现在我想做的是对我的服务器实施收据验证。

我注意到 CargoBay 自述文件,有以下代码......

当您想在您的服务器上进行验证时,可以使用 CargoBay 吗?

这个过程是如何工作的?我想要做的是......从我的应用程序将购买收据发送到我的服务器,然后将其从我的服务器发送到 Apple 进行验证。如果通过验证,我的服务器将提供购买的内容,最后将任何必要的信息返回给我的应用程序,例如成功/失败和可能的内容对象。

我如何实现这一目标?

我想我是从内部开始的-paymentQueue:updatedTransactions?那正确吗?我要去哪里,从那里做什么?我从哪里获得收据,一旦发送到我的服务器,我如何通过 Apple 验证它?

0 投票
1 回答
9276 浏览

swift - 如何将 openssl 添加到 swift 项目中

我正在学习如何将应用内购买收据验证添加到我的 iOS/OSX 项目中。

这里有一个很好的概述,WWDC14 有关于这个主题的好视频。

大量的示例代码,但每个人都跳过了一步。如何导入 openSSL 标头。快速编译器抱怨没有这样的模块。

在写一行代码之前我已经卡住了。openssl 框架隐藏在哪里?

0 投票
1 回答
138 浏览

swift - iap收据验证:安全

StackOverflow 上有一篇很棒的文章,介绍了使用收据验证实现应用内购买。但是,出于安全原因,它警告不要按原样使用该代码。在许多教程甚至Apple 文档中都可以找到一种情绪。例如,它提到不要这样做:

这很好,但是你应该怎么做这样的事情呢?在此示例中,将验证收据是有效还是无效,并在无效时退出。

我看到了很多应该做和不应该做的事情的清单,但没有太多关于应该做什么的例子或想法。例如使用一个不透明的谓词,但维基百科没有提到一个具体的例子。

我知道我们不应该都使用相同的代码,但是一些指针(或关于这个主题的一种思维方式)会很有用。我希望有人能很好地指导像我这样的初学者通过这方面的最佳实践。谢谢!

0 投票
1 回答
109 浏览

ios - IOS 应用内购买沙盒测试 - 不解锁内容

在沙盒帐户中测试我们的应用程序以进行应用内购买时,它会验证交易已完成,但不会解锁已购买的内容。

例如:

  1. 店铺

  2. 购买关卡包

    结果:交易成功,但包未解锁。

采取的步骤:

  • 创建了多个测试用户帐户。
  • 仅在完全退出所有内容时构建到设备
  • 仅在应用内购买提示时登录。
  • 使用每个测试帐户删除并重新安装应用程序

为了在成功的应用内购买后真正解锁内容,我们是否缺少或必须做些什么?

相当新的开发,谢谢

0 投票
1 回答
399 浏览

macos - 提交到 Mac 应用商店时出现收据验证错误

在 Mac App Store 提交时,我的应用程序被拒绝,解释如下:-

“安装有效收据后,应用程序在启动时退出。控制台报告应用程序“ Exited with exit code: 173”并且操作系统声明应用程序“ is damaged and can't be opened”。这通常表明应用程序未正确验证其收据。

我根本没有在我的代码中进行任何收据验证,所以我能做些什么来解决这个问题?它只发生在审查中,而不是在我身边。这是用于逻辑 OS X 应用程序的简单 swift ui + Objective-C+ 一些 C++。使用其他应用程序,(Objective-C + CPP)一切都很好。