Квитанция Apple In-App Purchase версии 3 (внезапно появляется вместо версии 2)

Проверка квитанции в моем приложении недавно начала ломаться. Судя по всему, за последние 2-3 недели Apple изменила номер версии квитанции In-App Purchase с 2 на 3.

При проверке структуры подписи:

struct signature_blob {
    uint8_t version;
    uint8_t signature[128];
    uint32_t cert_len;
    uint8_t certificate[];
} *signature_blob_ptr = (struct signature_blob *)signature_bytes;

…где signature_bytes — это декодированное с помощью Base64 значение строки подписи из большого двоичного объекта JSON из transactionReceipt (устарело с iOS 7) SKPaymentTransaction.

…У меня был жестко закодирован чек для version == 2. Теперь я вижу значение 3.

После пары лет в App Store, в последние 2-3 недели наше приложение начало получать пользовательские отчеты о новых покупках и покупках «Восстановление», не способных активировать контент нашего приложения. Поэтому я предполагаю, что это недавнее изменение со стороны Apple.

Кто-нибудь может подтвердить, что Apple внесла изменения? Предоставить дополнительную информацию? Может быть, указать мне документацию об этой новой версии квитанций о покупке?


person Basil Bourque    schedule 04.06.2016    source источник
comment
Эй, когда этот список верен, последние изменения были 3 месяца назад. developer.apple.com/library/ios/documentation/StoreKit/   -  person LoVo    schedule 04.06.2016


Ответы (1)


Да, Apple представила сигнатуру версии 3 где-то в начале апреля. Я не нашел никакой документации или журнала изменений, но это понятно, поскольку transactionReceipt устарел.

Разница в версии 3 заключается в длине подписи, теперь она составляет 256 бит вместо 128 и подписана последней Apple Inc. Корневой сертификат.

person Marc Greenstock    schedule 14.06.2016
comment
Вы не знаете, есть ли другие версии, кроме 2 и 3? - person eavidan; 19.12.2019