Я задаю этот вопрос, чтобы поделиться кодом решения.
Контекст: Apple представила AppReceipt в iOS 7. Он также присутствует в IAP OS X. Эта квитанция представляет собой контейнер PKCS#7 (asn.1) с полезной нагрузкой, которая также имеет структуру asn.1. В документации Apple указано, как контролировать действительность квитанции на устройстве и анализировать ее, чтобы убедиться, что она была выдана для текущего устройства. Также есть инструкции по проверке квитанции через сервер приложений, связавшись с сервером Apple. Однако в последнем случае возвращенные данные JSON от Apple не включают информацию, идентифицирующую исходное устройство. Предыдущая модель протокола IAP с transactionReceipt включала идентификатор идентификатораForVendor UID в файле json.
Вопрос. Как с помощью PHP проанализировать бинарный чек на сервере, чтобы проверить хэш UID и убедиться, что этот чек принадлежит этому устройству? Это можно сделать до или после отправки квитанции на сервер Apple.