苹果ios购买收据数据的最大长度是多少?

时间:2011-03-28 18:50:36

标签: iphone database cocoa-touch ios4 in-app-purchase

在开始测试iOS自动更新购买之前,我需要准备我的服务器数据库。我的问题很简单。我只想知道我应该在数据库中创建varchar字段的大小。

5 个答案:

答案 0 :(得分:13)

我使用varchar(4096)来存储我的base64编码收据。

但说实话,我在官方文件(或其他任何地方)上找不到关于收据长度的任何内容。我找到on Apple's docs的唯一方法是收据内容/格式可能会发生变化:

商店收据的内容和格式是私密的,可能会有变化。您的应用程序不应尝试直接解析收据数据。使用此处描述的机制验证收据并检索其中存储的信息。

所以可能去文本而不是varchar真的是最好的选择。

答案 1 :(得分:6)

receipt-data可能会因为包含较旧的订阅信息而变得更大。

实际上,典型的大小可能不到10KB。但由于反复创建新订阅,我在自动化测试中看到了大于500KB的收据数据。

最好使用varchar(max)或不受限制的文本。

答案 2 :(得分:1)

在MySQL中,使用容量为16 MB的 MEDIUMTEXT 是安全的。

我当时使用的是TEXT,但在某一点上不合适。

TEXT仅具有64kb的容量,但是在重复交易后,收据大小更有可能超过此大小。我只是在沙盒模式下进行许多事务后才观察到这一点。

  

TINYTEXT:255个字符-255个B

     

文本65,535字节-64kb

     

MEDIUMTEXT:16,777,215-16 MB

     

GBTEXT:65,535个字符-64 MB

     

KBLONGTEXT:4,294,967,295个字符-4 GB

答案 3 :(得分:0)

做完一些简单的数学运算后,我发现使用 MEDIUMTEXT 是安全的,因为每个收据大小每笔交易都会增加〜2KB,因此您需要进行800多次交易才能最大程度地利用尺寸。 因此,考虑到10年的非常安全的使用期限,它每月需要进行80笔以上的交易,或者每月大约需要7-8笔交易,而在大多数用例中并不是这种情况。

答案 4 :(得分:0)

可以使用jsonb存储base64。它最多可以容纳1MB。