Я пытаюсь внедрить автоматические возобновляемые подписки. Мое приложение можно использовать на разных устройствах (Android, Web), поэтому мне нужно было реализовать метод опроса состояния, чтобы подтвердить мой сервер, когда App Store удастся продлить просроченную подписку. Квитанция проверяется на моем сервере, как указано здесь . При каждой транзакции, совершаемой на устройстве, я обновляю запись пользователя в базе данных для поля last_receipt_base64
в процессе проверки квитанции.
При каждом опросе статуса я хочу обновить поля last_receipt_base64
и expired_date
, поэтому я беру last_receipt_base64
и отправляю его по маршруту Apple /verifyReceipt
. Но каждый раз он помещает другую квитанцию (base64) под ключом 'latest_receipt'. Более того, длина возвращенной (от /verifyReceipt
) базы 64 чеков, как ни странно, намного короче, чем квитанция, отправленная с устройства (квитанция с устройства 35 000 символов, квитанция с 6000 символов, возвращенная с /verifyReceipt
). Почему это?
Я хочу обновить записи в моей базе данных на каждом полюсе состояния, если есть изменения, но данные продолжают изменяться! Также крайняя разница в длине между квитанциями с устройства и /verifyReceipt
заставляет меня беспокоиться, что квитанция может быть отклонена когда-нибудь, если пользователь не будет входить в приложение iOS в течение длительного времени. В любом случае, я немного запутался, и документы не очень хорошие ... Некоторые рекомендации будут полезны.