我搜索了很多解决方案/至少是我的问题或误解的答案。有很多关于在Objective-C中为iOS实现IAP本机的文档 - 在特定级别之前也有用,但与TiStorekit(Appcelerator Titanium)的实现相关,我现在完全被阻止了。
基本上很简单。我正在尝试为用户提供一些自动更新订阅形式的高级套餐。这些产品在iTunesConnect中定义,我可以向产品索取有关标题和描述的信息。我想了解Titanium(TiStorekit)实现中的过程如何通过具体示例(文档中完全缺少的内容)来解决。它很好地解释了你需要什么样的功能和听众,我们是你在购买产品后登陆,但从来没有产品的数据在哪里以及数据的结构如何。
这为我带来了一个黑盒子开发的整个主题。也测试这样的工作。从应用程序的角度来看,我只想知道,当订阅(用户在几秒钟前购买)到期时,我如何获取信息。 我在哪里可以找到此信息以及如何访问此信息?
在我阅读的有关字段的所有文档中似乎都存在且可用,但我根本无法读取任何过期日期。从概念的角度来看,我没有收据的服务器端验证。我想将用户的收据存储在服务器上,当他登录时,我会加载收据(如果标记为“高级”客户)并验证对苹果。如果它仍然有效,一切都很好,我知道它要么续订,要么仍在有效期内。
我现在尝试了所有这些文档和其他文章中找到的所有内容,我唯一能做的就是在恢复购买或购买东西时解析来自Storekit的收据。收据包含签名和“购买信息”,但我无法从中读取一个有用的属性。
首先要提出一个问题:
我可以在哪里以及如何(!)访问f.e.基于TiStorekit(Appcelerator)实现的自动续订订阅的到期日期?
希望救援, weblion
答案 0 :(得分:0)
要使用收据
Storekit.addEventListener('transactionState', function (evt)
case Storekit.TRANSACTION_STATE_PURCHASED:
// Receive the receipt and decode it
///**********************************************
var receiptB64String = Ti.Utils.base64encode(evt.receipt).text;
然后将其发送到您的Web服务器,并使用PHP脚本验证通过Apple服务器的收据。
你得到一个Json响应如下:
Valid Json
{ "收据":{ " original_purchase_date_pst":" 2016-10-15 07:24:27 America / Los_Angeles", " unique_identifier":" 2716364e7fe61118b5fbfa12eaf3a7506a5e1c32", " original_transaction_id":" 1000000242683498", " expires_date":" 1476826579000", " transaction_id":" 1000000243499464", "数量":" 1", " product_id":" 6MONTHS", " item_id":" 1164542704", "出价":" com.xxxxxxx.xxxxxxx", " unique_vendor_identifier":" xxxxxx-xxx-xxxxxxxxxx", " web_order_line_item_id":" 1000000033471963", " bvrs":" 1.0", " expires_date_formatted":" 2016-10-18 21:36:19 Etc / GMT", " purchase_date":" 2016-10-18 21:06:19 Etc / GMT", " purchase_date_ms":" 1476824779000", " expires_date_formatted_pst":" 2016-10-18 14:36:19 America / Los_Angeles", " purchase_date_pst":" 2016-10-18 14:06:19 America / Los_Angeles", " original_purchase_date":" 2016-10-15 14:24:27 Etc / GMT", " original_purchase_date_ms":" 1476541467000" }, " latest_expired_receipt_info":{ " original_purchase_date_pst":" 2016-10-15 07:24:27 America / Los_Angeles", " unique_identifier":" 2716364e7fe61118b5fbfa12eaf3a7506a5e1c32", " original_transaction_id":" 1000000242683498", " expires_date":" 1476826579000", " transaction_id":" 1000000243499464", "数量":" 1", " product_id":" 6MONTHS", " item_id":" 1164542704", "出价":" com.xxxxxx.xxxxxxx", " unique_vendor_identifier":" xxxxxxxx-9CB8-xxxx-B1F4-xxxxxxxxxxx", " web_order_line_item_id":" 1000000033471963", " bvrs":" 1.0", " expires_date_formatted":" 2016-10-18 21:36:19 Etc / GMT", " purchase_date":" 2016-10-18 21:06:19 Etc / GMT", " purchase_date_ms":" 1476824779000", " expires_date_formatted_pst":" 2016-10-18 14:36:19 America / Los_Angeles", " purchase_date_pst":" 2016-10-18 14:06:19 America / Los_Angeles", " original_purchase_date":" 2016-10-15 14:24:27 Etc / GMT", " original_purchase_date_ms":" 1476541467000" }, " status":21006 }
状态21006表示此收据已过期。 将信息保存到应用程序或服务器上的数据库中。