Стендап Сьогодні 📢 Канал в Telegram @stendap_sogodni

🤖🚫 AI-free content. This post is 100% written by a human, as is everything on my blog. Enjoy!

06.02.2023

Як працюють платежі в додатках з Apple App Store

Епловська система платежів працює зовсім не так, як я звик. А до чого я звик? Практично всі платіжні системи, з якими я стикався, працюють за принципом вебхука на довірену адресу нашого сервера. Тобто, спочатку покупець виконує платіж, а потім нам приходить квитанція, яку треба обробити, та надати сплачену послугу. Якщо йдеться про підписку, то потім платіжна система надсилатимете квитанцію регулярно. Таким чином, від нас залишається тільки оновляти статус підписки при отриманні вебхука.

Але в Apple ніякого вебхуку немає. Напевно, це повʼязано з тим, що серверна частина не обовʼязкова для мобільного додатка. Замість того, це ми маємо питати у сервісу покупок, чи не змінився статус підписки. Для цього під час покупки отримуємо довжелезну квитанцію з підписом. Її маємо зберегти в базу, а потім періодично перевіряти. Як часто — вирішувати нам. Ясно, що статус зміниться тільки якщо черговий платіж не пройшов, або якщо користувач скасував підписку. Але щоб не помилитись, просто перевіряємо статус щодня — поки квитанцій кілька десятків, це підходить.

Власне, зачепив цю тему тому, що епловський сервіс перевірки платежів регулярно та ганебно повертає помилку 502. Поки спробую вирішити повторними спробами. Взагалі це не єдина проблема з In-App Purchases. Головна проблема — що IAP це єдиний дозволений спосіб брати гроші з додатка на iOS. Але навіть якщо головний сервіс ми надаємо з сайту (я про Сінтру, до речі), а додаток сам по собі не працює повноцінно, то все одно примусово мали додати підтримку IAP. Причому спочатку коли додали підписки з сайту, то Епл нічого не сказав. Але через кілька місяців, при випуску чергової версії додатка, раптом відмовили через відсутність IAP. Та після цього в нас не залишилось вибору — тільки додати підписку через Епл, або ніколи не випускати оновлення. Так і вийшло, що в нашому мінімальному додатку до вебсервісу все одно є можливість підписки.

До речі, технічних проблем з тим, щоб платити за вебсервіс підпискою з мобільного додатку, немає; під час оформлення підписка привʼязується до вашого рахунку, та рахунок отримує один та той самий статус активної підписки, незалежно від способу оплати.