Подтвердить что ты не робот

Какая вероятная максимальная длина iOS io-i приобретает квитанцию-данные?

Прежде чем приступать к тестированию покупок автозапуска iOS, мне нужно подготовить базу данных сервера. Мой вопрос прост. Я просто хочу знать, какой размер я должен внести в поле varchar в моей базе данных.

4b9b3361

Ответ 1

Я использовал varchar (4096) для хранения кодов, обработанных base64.

Но, честно говоря, я не мог найти что-либо относительно длины квитанции в официальной документации (или где-либо еще). Единственное, что я нашел в документах Apple, заключалось в том, что содержимое/формат получения может быть изменен:

Содержимое и формат квитанции магазина являются частными и могут быть изменены. Ваша заявка не должна пытаться самостоятельно анализировать данные квитанции. Используйте описанный здесь механизм, чтобы проверить получение и получить информацию, хранящуюся внутри него.

Так что, вероятно, для текста вместо varchar действительно лучший вариант.

Ответ 2

receipt-data может стать намного больше из-за того, что он содержит более раннюю информацию о подписке.

На практике типичный размер, вероятно, составляет менее 10 КБ. Но я видел, что квитанция-данные размером более 500 КБ в автоматическом тестировании из-за неоднократного создания новых подписчиков.

Лучше использовать varchar (max) или текст, где он не ограничен.

Ответ 3

В MySQL безопасно использовать MEDIUMTEXT, который имеет емкость 16 МБ.

Я использовал ТЕКСТ, но в какой-то момент не подходил.

TEXT имеет емкость всего 64 КБ, но более вероятно, что размер чека будет больше, чем после повторных транзакций. Я наблюдал это только после многих транзакций в режиме песочницы.

TINYTEXT: 255 characters - 255 B

TEXT 65,535 bytes - 64kb

MEDIUMTEXT: 16,777,215 - 16 MB

GBTEXT: 65,535 characters - 64 MB

KBLONGTEXT: 4,294,967,295 characters - 4 GB

Ответ 4

После некоторой простой математики я понял, что было безопасно использовать MEDIUMTEXT, поскольку каждый размер квитанции увеличивается с коэффициентом ~ 2 КБ/транзакция, и поэтому вам потребуется более 800 транзакций для максимального увеличения размера. Таким образом, учитывая очень безопасный период использования в 10 лет, потребуется более 80 транзакций в месяц или примерно 7-8 транзакций в месяц, что не будет иметь место в большинстве случаев использования.

Ответ 5

Может быть использовать jsonb для хранения base64. Это может держать до 1 МБ.