- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我有一个应用程序内购买,我想验证商店收据。我想通过使用 Apple 的 itunes API 从互联网上的随机机器验证这一点。交易完成后,收据存储在 Parse 中。我正在按照 Apple developer website 上的指南进行操作。首先,我从 Parse 获取交易:
curl -X GET \
-H "X-Parse-Application-Id: [...]" \
-H "X-Parse-REST-API-Key: [...]" \
https://api.parse.com/1/classes/Transactions/123456789
看起来像:
{
"transactionReceipt":{"__type":"Bytes","base64":"asdfqwertyASDFQWERTY="},
"transactionType":"Purchased",
"transactionIdentifier":"[...]",
"transactionDate":{"__type":"Date","iso":"2012-09-10T06:58:44.071Z"},
"createdAt":"2012-09-10T06:58:37.234Z",
"updatedAt":"2012-09-10T06:58:37.234Z",
"objectId":"HyPWJBlWzt"
}
然后我在 transactionReceipt 中获取 base64 值并将其 curl 到 Apple 端点以获取收据:
curl -H "Accept: application/json" \
-H "Content-Type: application/json" \
-X POST
-d '{"receipt-data":"asdfqwertyASDFQWERTY="}' \
https://buy.itunes.apple.com/verifyReceipt
我得到的只是一点帮助:
{"status":21002, "exception":"java.lang.IllegalStateException"}
我认为它对应于“收据数据属性中的数据格式不正确”。使用 --trace-ascii 获取 curl 以转储整个操作并没有揭示任何我认为相关的信息,我确信问题不在于连接本身。
这里有点难过。它看起来确实是在他们的末端找到了交易(调整收据数据中的几个字节会引发 java.lang.IllegalArgumentException),所以我猜它与交易本身有关。有人以前见过这个吗?
谢谢!
最佳答案
我在搜索相同的错误消息后来到这里。我最终解决了这个问题——我能给出的最好建议是仔细检查收据是否有效以及您是否将其发布到正确的 URL。当我使用无效收据(或者可能只是错误的类型 - 它是应用收据,而不是应用内购买收据)时,我得到了你的确切错误,并且在使用发布到'的有效沙盒收据时出现了类似的错误生产'验证网址。
我最初使用的示例收据数据来自 http://images.worldofapple.com/validating_051110.pdf ,在对其进行 uudecoding 并将其重新编码为 base64 之后。我尝试发布到:
两者都给出了相同的错误 {"status":21002, "exception":"java.lang.IllegalStateException"}
。我现在怀疑根本原因是这是一张应用收据,而不是应用内购买收据。
然后我从 https://gist.github.com/sauloarruda/2559455 收到了另一个示例收据
在 https://buy.itunes.apple.com/verifyReceipt我得到了同样无用的回应:{"status":21007}
最后在 https://sandbox.itunes.apple.com/verifyReceipt我得到了预期的响应:
{
"receipt":{"original_purchase_date_pst":"2012-04-30 08:05:55 America/Los_Angeles", "original_transaction_id":"1000000046178817", "original_purchase_date_ms":"1335798355868", "transaction_id":"140610807","1406108007", quantity":"1", "product_id":"com.mindmobapp.download", "bvrs":"20120427", "purchase_date_ms":"1335798355868", "purchase_date":"2012-04-30 15:05:55 Etc/GMT", "original_purchase_date":"2012-04-30 15:05:55 Etc/GMT", "purchase_date_pst":"2012-04-30 08:05:55 America/Los_Angeles", "bid":"com.mindmobapp.MindMob", "item_id":"521129812"}, "status":0}
关于iphone - 使用 Curl 验证 App Store 收据时出现 IllegalStateException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12361770/
我一直在尝试学习Grails,但是我遇到了以下问题。我已经创建了四个域类(Receipts,Items,类别和所有者),并且为每个域类(ReceiptsController,ItemsControll
我正在构建一个销售点应用程序,我想打印一张收据。问题是我使用的打印机无法打印纯文本的任何图形,我在 javafx 中只能找到使用 Print API 打印节点或使用像 jasper 这样都包含图形的报
我正在 Swift 3.0 应用程序中实现应用程序内购买,因此我需要获取应用程序收据以根据 iTunes 商店对其进行验证。这是我获得收据的方式: func getReceipt() -> Data?
我想在我的数据库中保存非消耗品的 IAP 收据。我们有一个用于 IAP 恢复的两步下载机制。 使用 StoreKit 机制检索所有交易(包括收据)。 从所有收据(即这些收据背后的产品)列表中选择稍后要
我想验证 iOS 收据。 我想我会向 App Store 验证服务器发送收据(https://sandbox.itunes.apple.com/verifyReceipt 或 https://buy.
我需要打印具有相同产品数量等的销售订单的 POS 收据 在销售订单中,我创建了一个按钮“打印 POS 收据”。使用此按钮,我想触发一种方法,该方法打印出带有销售订单行的收据。 所以我需要找到创建 PO
我们现在有一个正在生产中的应用程序,它会将 IAP 收据发送到我们的服务器,这些收据显然太短,而且我们的服务器没有经过 apple 的验证。 Apple 正确验证的长收据长度为 3192。短收据长度均
我正在构建一个 iOS 应用程序,它提供我们网站已经提供的服务。这是一项基于订阅的服务,订阅后所有功能都会启用。为了让人们在应用程序上注册定期付款,我似乎必须通过 Apple 的应用程序内购买 API
我需要一种方法来捕获笔记本中打印的所有内容。 为什么? 我有一个 PHP 系统,有时我需要打印(php_printer) 一些发票,但这会花费很多纸张。 打印在后台发送,没有任何弹出窗口供用户确认。
我对此有点困惑。所以关注this approach我得到了包含一堆解密字段的 json。其中 original_purchase_date。 我需要的是跟踪在这个新版本免费之前是否购买了应用程序,我认
首先,我说的不是调用https://buy.itunes.apple.com/verifyReceipt/ ,相反,我要问的是如何验证来 self 们的一位用户的 iTuneStore 收据。 我们的
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 5 年前。
所以我要建立一个在线商店,我想向客户发送包含收据的订单确认。我搜索了一下,但我还没有设法创建任何东西。 这是我发现并尝试使用的东西,但没有成功创建任何东西。 所以 ajax 调用会将 cartCon
所以我要建立一个在线商店,我想向客户发送包含收据的订单确认。我搜索了一下,但我还没有设法创建任何东西。 这是我发现并尝试使用的东西,但没有成功创建任何东西。 所以 ajax 调用会将 cartCon
我正在尝试实现自动续订订阅。我的应用程序可以在不同的设备(Android、Web)上使用,因此我需要实现状态轮询技术,以便在 App Store 设法续订过期订阅时确认我的服务器。收据正在我的服务器上
我正在尝试验证来自 C++ 服务器的 iphone 收据(我有使用 base64 加密的收据,我正在根据苹果文档编写一个 json 对象,然后我打开一个到沙箱的套接字并发送一个 POST请求)。 服务
首先,这个问题与 iOS7+ 收据有关,因此所有关于 latest_receipt 和 latest_receipt_info 的问题/答案都不适用(因为它们已被弃用并且正在离开)。似乎关于在 SO
谁能告诉我如何使用 Exchange Web 服务 API 获取电子邮件正文、收据、发件人、抄送信息?我只知道如何获取主题。 ExchangeService service = new Exchang
有关服务器到服务器通知的 Apple 文档没有指定 cancellation_date 字段中的数据格式。我正在尝试为我的通知处理程序设置一些单元测试,但我不确定要将哪些数据放入我的模拟响应中。 我假
我正在尝试使用 Citizen CT-S651 热敏打印机从网络浏览器打印 HTML/CSS 媒体格式的收据。我们已经能够正确格式化收据,但问题是在打印收据后,打印机继续吐纸而不是在内容的末尾切割。
我是一名优秀的程序员,十分优秀!