Доброго времени суток, Хабровчане!
Много перечитал информации по платежам этой неплохой мобильной ОС. Но нормальных и понятных примеров так и не нашёл, поэтому решил написать про свой опыт.
Желаете узнать подробнее — добро пожаловать под кат.
И так.
Я занимаюсь исключительно back-end'ом, поэтому про front-end разработку писать не буду.
На нашем сервере делаем самый обычный обработчик http-запросов.
От клиента нам понадобятся следующие данные:
1 — ID пользователя для проведения внутренней транзакции
2 — Receipt — данные от Apple.
В обработке принимаем эти данные и делаем запрос к Apple для проверки валидности данных.
Привожу пример обработчика на Python.
Вот простейший пример обработки платежей.
Всё просто и понятно.
Пользуйтесь. Спасибо.
Много перечитал информации по платежам этой неплохой мобильной ОС. Но нормальных и понятных примеров так и не нашёл, поэтому решил написать про свой опыт.
Желаете узнать подробнее — добро пожаловать под кат.
И так.
Я занимаюсь исключительно back-end'ом, поэтому про front-end разработку писать не буду.
На нашем сервере делаем самый обычный обработчик http-запросов.
От клиента нам понадобятся следующие данные:
1 — ID пользователя для проведения внутренней транзакции
2 — Receipt — данные от Apple.
В обработке принимаем эти данные и делаем запрос к Apple для проверки валидности данных.
Привожу пример обработчика на Python.
import requests // Имя приложения bundle_id = "com.MyCompany.MyApp" // URL для проверки влажности данных (для приложений в песочнице). // Для опубликованных приложений используется другой адрес: "https://buy.itunes.apple.com/verifyReceipt" url = "https://sandbox.itunes.apple.com/verifyReceipt" // получаем данные от клиента receipt = GetRequestParam("receipt") // Делаем запрос к Apple resp = requests.post(url,receipt) response = resp.json() // Проверяем статус ответа if response["status"] != 0: return "Error" response = response["receipt"] // Проверяем принадлежность принятых данных к нашему приложению if response["bundle_id"] != bundle_id: return "Error" // Получаем данные покупки package = response["in_app"][0] productId = package["product_id"] transaction_id = package["transaction_id"] UserID = GetRequestParams("UserID") // Делаем проверку на наличие пользователя // Тут на Ваше усмотрение. // И если все проверки пройдены, начисляем валюту пользователю
Вот простейший пример обработки платежей.
Всё просто и понятно.
Пользуйтесь. Спасибо.
