среда, 16 марта 2016 г.

Делаем платежи iOS AppStore с проверкой на сервере

Всем привет! Много перечитал информации по платежам этой неплохой мобильной ОС. Но нормальных и понятных примеров так и не нашёл, поэтому решил написать про свой опыт. Желаете узнать подробнее — добро пожаловать под кат. И так. Я занимаюсь исключительно 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")
// Делаем проверку на наличие пользователя
// Тут на Ваше усмотрение.
// И если все проверки пройдены, начисляем валюту пользователю
Вот простейший пример обработки платежей. Всё просто и понятно. Пользуйтесь. Спасибо.

Комментариев нет:

Отправить комментарий