问题标签 [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 投票
0 回答
711 浏览

ios - 收据验证 iOS 7

我按照本教程进行操作,一切正常。但是 Xcode 向我展示了它transactionReceipt已被弃用。

现在看谷歌,我看到你可以用这个方法改变:

但是,如果我进行此更改,则以这种方式:

验证总是失败。相反,如果我让transactionReceipt所有工作正常。

问题是什么?

注意:在带有 iOS 7.1 的 iPhone 4 上测试。

0 投票
1 回答
757 浏览

macos - 验证 Mac App Store 收据服务器端

我已将 IAP 添加到我的 Mac Appstore 应用程序中。我无法正确验证收据服务器端。我正在使用以下代码阅读收据:

然后我将数据发送到我的服务器,该服务器反过来查询https://buy.itunes.apple.com/verifyReceipt以查看收据是否有效。无论我尝试什么,我总是以无效收据告终。我也尝试过使用gem Venice,当我将收据文件作为纯文本提供或使用base64命令行工具编码时,它也有同样的问题。但与此同时,无论我在/Applications.

有没有人在 Mac Appstore 上成功实现了收据验证?

0 投票
0 回答
303 浏览

ios - 被黑收据返回状态 0

我们正在我们的服务器上验证收据,我们收到被黑的收据,返回状态为 0!

这是我们的服务器代码:

我尝试在收据中放置虚假数据,它会返回 21002 错误(格式错误的收据)。

我检查收据状态是否为 0 并且它是否返回是假收据。

这是一个新鲜的

状态 = 0!!!这怎么可能!?

这是它附带的虚假交易ID

84091B08-4706-4810-924F-BC10CC1B

我能做什么?

这是怎么回事!?我如何从这些被盗收据中获得状态 0?!

0 投票
0 回答
223 浏览

php - 无法从 PHP 服务器上的 iOS7 收据访问“in_app”字段

我正在尝试从 iOS 收据中获取原始交易 ID,但是当我对从苹果返回的数据使用 json_decode 时,它​​的格式很奇怪。这是一个例子:

//来自苹果的对象

我在其他示例中看到 in_app 是一个数组,但我用圆括号得到它。不知道发生了什么。这是我的服务器方法:

不知道为什么我得到圆括号或该怎么做,但如果你认识到这种类型的 JSON 响应或者我做错了什么,我全神贯注。

我可以访问收据中的所有其他字段,我不能访问它在 in_app 中的唯一字段。

0 投票
5 回答
7755 浏览

ios - iOS 7 本地(设备上)收据验证和应用内购买检查

在 Apple 的 Receipt Validation Programming Guide 的帮助下,我使用 OpenSSL 和 asn1c 编译器在设备上本地实现了收据验证。我的应用程序仅支持 iOS 7 及更高版本。

根据 Apple 的建议,我打电话[[NSBundle mainBundle] appStoreReceiptURL]来获取应用商店的收据。当应用程序在显示任何 UI 之前“首次”启动时,我也会这样做。第一次启动呼叫是必要的,因为 Apple 建议在第一次尝试时刷新收据。作为这个调用 ( SKReceiptRefreshRequest) 的结果,应用程序要求用户输入他们的 iTunes 登录信息。

现在的问题是苹果一直拒绝该应用程序,说我正在调用他们的生产服务器而不是沙盒服务器。但是根据我从 Receipt Validation Programming Guide 中了解的内容,只有在您使用第二种验证方法并通过您自己的安全服务器将数据发送到 Apple 时才有效。但是,我在本地做所有事情,并且对如何区分生产环境和沙盒环境以使我的应用程序可以通过审核感到非常困惑。

任何指示或建议都会非常有帮助。

0 投票
1 回答
205 浏览

ios - iOS 收据验证 - 每次发布都有什么意义?

我已经实现了 iOS6 和 iOS7 风格的应用内购买收据验证代码。(非常感谢 Robot Media 及其在 Github 上的 RMStore 代码的指导!)每次购买或刷新时,我都会进行验证。我想知道每次应用程序运行时重复此验证是否有意义。

我可以看到这对 iOS6 样式有什么意义,因为它调用 Apple 的验证服务器,有时可能会被欺骗,有时不会。但如果我理解正确,iOS7 风格只是检查捆绑包中的应用收据以获取所购买产品的 id。如果这个文件没有改变,我看不出继续检查它有什么帮助。它会改变吗?系统会时不时调整它吗?赛迪亚有吗?

当我们这样做的时候:同时做 iOS6 和 iOS7 验证样式有什么意义吗?我认为它不会受到伤害,因为我已经实现了两者。也许换一种说法是:iOS7 的风格是否不败?iOS6 风格是否注定失败?

谢谢!

0 投票
0 回答
228 浏览

validation - 服务器和换行符上的应用内购买收据验证

我目前正在研究一种应用内购买的解决方案,该解决方案对我们的后端服务器进行验证,并且在将收据发送到我们的服务器时遇到了一些问题。当我通过做检索它时

结果是这样的(只是摘录)

有这些字符\r\n经常出现,这表示返回和换行。有没有办法转换为没有这些字符的字符串?仅使用 stringByReplacingOccurrencesOfString: 删除它们是否安全,或者我应该假设这些字符可能会随机出现在 base64 字符串上而没有“新行”的含义?如果我用这些字符验证收据,它会返回 21002,这表明收据数据格式错误,但是通过使用 stringByReplacingOccurrencesOfString 它验证正常,所以我的问题是我应该手动删除这些字符还是应该以某种方式转换收据?

0 投票
0 回答
606 浏览

ios - 如何防止在 iOS 中丢失应用收据?

Apple 的Receipt Validation Programming Guide建议在应用程序启动的最早时间测试应用程序的收据是否存在:

在调用 NSApplicationMain 函数之前,在 main 函数中执行此检查。

他们说:

如果没有收据,则验证失败。

但苹果没有说明应该如何处理这种验证失败。

这个问题,在 iphone app 中调用 exit(0),表示不应以编程方式退出 iOS 应用程序。

那么如果app没有收据怎么办?Catch-22…Apple 说要在呈现任何 UI 之前进行检查,但也说永远不要在没有 UI 的情况下退出应用程序。

为了解决投票结束……我的问题是:

  • 对于如何“不运行”我的 iOS 应用程序,我有哪些技术选择?
  • 鉴于 Apple 特别建议在生成任何 UI 之前测试丢失的收据,我的技术风险是什么?
0 投票
1 回答
322 浏览

ios - iOS 收据验证作为后端服务

是否有任何服务提供商可以进行 iOS 收据验证,而不是让您自己的服务器(Apple 推荐)或(在 iOS 7 中)进行设备验证?

我阅读了有关Beeblex的信息,但他们的网站似乎已无法使用。

0 投票
1 回答
8070 浏览

ios - iOS 7:应用内购买收据验证和验证

我是 iOS 收据验证的新手。我已成功实施应用内购买。现在我希望在这个应用内购买中包含收据验证部分。

我的应用内购买是 3 种产品。我希望在我的应用程序中购买每个产品之前,都应该执行收据验证。

为此,我点击了以下链接:official apple developer tutorial

我设法得到了收据数据,但我很困惑得到收据数据后该怎么办。如何将其发送回苹果服务器进行验证,然后开始应用内购买流程?

以下是我的代码:

我刚刚从我在这个问题中给出的苹果链接中复制粘贴了收据检索代码。

接下来我该怎么做?