URL статуса подписки IOS не получен на стороне сервера - PullRequest
0 голосов
/ 08 октября 2018

Мы пытаемся использовать URL-адрес статуса подписки Apple.

Мы настроили наш сервер для принятия URL-адреса, который мы указали на странице приложения, и убедились, что сервер совместим с требованиями ATS.Пост тест с почтальоном работает.(мы видим запрос и тест json, полученные с нашей стороны)

Однако мы все еще не получаем никаких уведомлений об обновлениях от Apple после обновления (даже не initial_buy).

Видел несколько вопросов за прошлый год, но нет действительного решенияУ кого-нибудь была эта проблема в последнее время и она решена?

Ответы [ 2 ]

0 голосов
/ 30 января 2019

Я столкнулся с той же проблемой.Я думал, что Apple будет вызывать наш webhook всякий раз, когда обрабатывается новая плата за подписку (аналогично тому, как работают Paypal, Stripe, Android и т. Д.).Но это ошибка.Согласно этому техническому примечанию:

https://developer.apple.com/library/archive/technotes/tn2413/_index.html#//apple_ref/doc/uid/DTS40016228-CH1-SUBSCRIPTIONS-MY_SERVER_PROCESS_RARELY_RECEIVES_RENEWAL_NOTICES_WHEN_THE_AUTO_RENEWING_SUBSCRIPTION_RENEWS_

App Store пытается снять средства с учетной записи пользователя за 24 часа до истечения срока действия автоматического продления подписки.Если обновление прошло успешно, уведомление с сервера на сервер отсутствует, поскольку подписка с автоматическим продлением не перешла в состояние с истекшим сроком действия.

Поэтому Apple будет уведомлять эту конечную точку только тогда, когда

  • создается новая подписка (по крайней мере, у нас так, но у нас есть пробная версия)
  • статус подписки меняется с активного на истекший или наоборот.

Таким образом, вы должны отслеживать квитанции подписки, когда клиент регистрируется.Когда срок действия подписки истекает или истек, позвоните в конечную точку проверки получения Apple, чтобы получить новую квитанцию.Если в квитанции указано, что срок действия подписки истек, ваш веб-крюк должен быть уведомлен о повторной активации пользователем.

0 голосов
/ 20 ноября 2018

Я не могу комментировать, и трудно понять, так ли это здесь, не зная, действительно ли вы получаете НИЧЕГО по вашему сценарию или просто не получаете данных в $ _POST.

Еслипоследнее, это должно работать:

$data = file_get_contents('php://input');

Тогда вы сможете работать с данными, вызывая json_decode или делая с ними все, что вы хотите.

...