Ответ 1
Вы должны настроить небольшое веб-приложение для создания сборов за полосу и сохранения кода авторизации клиентов. Настройте два маршрута в своем веб-приложении для redirect_uri
и webhook_uri
и добавьте URL-адрес в настройках настроек Stripe Apps. Затраты должны быть созданы из приложения на стороне сервера, поскольку для этого требуется секретный ключ /authorization_code, который не должен храниться в приложении iPad. В противном случае они могут привести к утечке безопасности. Я пытаюсь описать концепцию ниже:
-
Предоставьте
stripe connect button
в приложении и установите ссылку для открытия в Safari (не в веб-представлении). Вы должны добавить параметрstate
в URL сid
который уникален для ваших пользователей. -
При нажатии кнопки ваш пользователь будет перенаправлен на Stripe, где ему будет предложено авторизовать ваше приложение. После авторизации полоса попадет на ваш
redirect_uri
с помощьюauthorization_code
иstate
вы ранее предоставили. Сделайте почтовый вызов в соответствии с документацией Stripe с помощьюauthorization_code
чтобы получитьaccess_token
. Хранитеaccess_token
сопоставленный сstate
в базе данных. -
Определите пользовательскую схему URL-адресов в своем приложении. Вызовите пользовательский URL из своего веб-приложения. Пользователь должен открыть URL-адрес в мобильном сафари. Поэтому вызов пользовательского URL-адреса снова откроет ваше приложение. Вы можете передать дополнительный параметр для указания отказа/успеха. В приложении обновите представление, основанное на этом параметре.
-
Теперь вы настроены на создание платы на вашем сервере от имени пользователя iPad. Используйте stripe iOS sdk для создания
card_token
из информации о карте. Для этого потребуется ваша полосаpublishable_key
. Затем определите api в своем веб-приложении, которое принимает 3 параметра:card_token
,user_id
иamount
. Вызовите этот api из своего iPad-приложения, когда вы хотите создать плату. Вы также можете зашифровать эту информацию с помощью ключа, если вы беспокоитесь о безопасности, используя любой стандартный метод шифрования. Вы можете легко расшифровать информацию в своем веб-приложении, как вы знаете ключ. -
Когда этот апи вызывается из приложения iPad, вы получите
user_id
(который вы сохранили какstate
ранее),card_token
иamount
. Получитеaccess_token
сопоставленный сuser_id
(или состоянием). Затем вы можете взимать плату от имени пользователя, используяaccess_token
,card_token
иamount
.
Вы можете использовать ruby /php/python/node на сервере, поскольку Stripe предоставляет sdk для них. Я предполагаю, что могут использоваться другие языки, а также есть интерфейс REST.
Обратите внимание, что это всего лишь концепция. Он должен работать так, но я еще не реализовал его. Когда я закончу, я обновлю этот ответ с образцом кода.