Подписки с автоматическим продлением для iOS veirfyReceipt возвращает разные квитанции base64, чем устройство - PullRequest
0 голосов
/ 17 октября 2019

Я пытаюсь внедрить автоматические возобновляемые подписки. Мое приложение можно использовать на разных устройствах (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 в течение длительного времени. В любом случае, я немного запутался, и документы не очень хорошие ... Некоторые рекомендации будут полезны.

1 Ответ

1 голос
/ 17 октября 2019

Гал Шахар! Мы также используем серверные уведомления Apple для обновления статуса подписки в нашей платформе управления подписками.

Получение уведомлений об опросе не является тем, что вы ищете. Вы должны хранить квитанции, отправленные непосредственно с устройства.

Вам следует полагаться только на original_transaction_id и найти своего клиента по этому идентификатору.

И, кстати, обновлять не нужноВаша квитанция base64, так как она всегда будет сообщать вам последние транзакции.

Я бы порекомендовал вам прочитать эту статью в нашем блоге: https://blog.apphud.com/subscriptions-notifications/

Сообщите нам, если вам нужна помощь. Спасибо!

...