2013-11-08 2 views
12

У кого-нибудь был успех с помощью Stripe connect с приложением iOS. У меня есть несколько вопросов:Как использовать Stripe Connect в приложении iOS

Я следующие руководства здесь: https://stripe.com/docs/connect/getting-started

регистрируя Применение: легкие, без проблем здесь

Потом немного дальше вниз:

Отправить свои пользователь Stripe: опять же, без проблем здесь, у меня просто есть кнопка, которая открывает ссылку в UIWebView. Я предполагаю, что клиент_ид в URL-адресе в порядке? Много моей неопределенность, что идентификаторы/ключей я должен жестко закодировать в приложение

Затем немного дальше:

После того, как пользователь подключается или создает учетную запись нашивки, мы перенаправить их обратно в redirect_uri, который вы установили в настройках вашего использования с параметром кода или с ошибкой.

Что я здесь делаю, использую метод webView: shouldStartLoadWithReqest: navigationType для проверки строки «code =» в URL-адресе. Если он найдет это, тогда я смогу захватить параметр «код». Поэтому на самом деле redirect_uri для меня совершенно не нужна. Это правильный способ справиться с этим? Должен ли я делать это в своем приложении или на моем сервере?

После получения кода мы должны сделать запрос POST, чтобы получить access_token. Опять же, следует ли это делать в приложении или на сервере? Это требует использования secret_key, поэтому я предполагаю сервер? И как мне отправить информацию о кредитной карте вместе с этим токеном, если токен необходимо отправить на сервер? Я знаю, как получить номер карты, дату выпуска и CVV. Но с точки зрения передачи его серверу (с маркером или без него) я не уверен.

Тогда, когда дело доходит до написания кода на PHP, Ruby или Python на сервере, у меня полная потеря.

Любая помощь была бы принята с благодарностью.

+0

Не стесняйтесь посетить мой учебник! Если у вас есть какие-либо проблемы, просто выполните одно из вопросов git. Https://github.com/jsetting32/Stripe-Connect-Parse – jsetting32

+0

Я хочу проверить авторизацию в режиме тестирования. Является ли это возможным? Или мне нужно предоставить информацию о реальном банке, поскольку она дает мне недействительный номер маршрутизации. – Niharika

ответ

22

Вы должны настроить небольшое веб-приложение для создания сборов с полосой и хранения ваших авторизационных кодов клиентов. Настройте два маршрута в своем веб-приложении для redirect_uri и webhook_uri и добавьте URL-адрес в свой Stripe Apps settings. Затраты должны быть созданы из приложения на стороне сервера, поскольку для этого требуется секретный ключ/authorization_code, который не должен храниться в приложении iPad. В противном случае они могут привести к утечке безопасности. Я пытаюсь описать ниже понятие:

  1. Обеспечить на stripe connect button в вашем приложении и установить ссылку, чтобы открыть в Safari (не в веб-просмотра). Вы должны добавить параметр state к URL-адресу с id, который является уникальным для ваших пользователей.

  2. При нажатии кнопки ваш пользователь будет перенаправлен на Stripe, где ему будет предложено авторизовать ваше приложение. После авторизации полоса попадет на ваш redirect_uri с authorization_code и state, который вы ранее предоставили. Сделайте почтовый вызов в соответствии с документацией по полосе с помощью authorization_code, чтобы получить access_token. Храните access_token, сопоставленный с state в базе данных.

  3. Определите пользовательскую схему URL в своем приложении. Вызовите пользовательский URL из своего веб-приложения.Пользователь должен открыть URL-адрес в мобильном сафари. Поэтому вызов пользовательского URL-адреса снова откроет ваше приложение. Вы можете передать дополнительный параметр для указания отказа/успеха. В приложении обновите представление, основанное на этом параметре.

  4. Теперь вы настроены на создание платы на вашем сервере от имени пользователя iPad. Используйте stripe iOS sdk для генерации card_token из информации о карте. Это потребует вашей полоски publishable_key. Затем определите api в своем веб-приложении, которое принимает 3 параметра: card_token, user_id и amount. Вызовите этот api из своего iPad-приложения, когда вы хотите создать плату. Вы также можете зашифровать эту информацию с помощью ключа, если вы беспокоитесь о безопасности, используя любой стандартный метод шифрования. Вы можете легко расшифровать информацию в своем веб-приложении, как вы знаете ключ.

  5. Когда апи вызывается из приложения IPad вы будете получать user_id (который вы сохранили, как state ранее), card_token и amount. Получите access_token, отображаемый на user_id (или состоянии). Затем вы можете внести плату от имени пользователя, используя access_token, card_token и amount.

Вы можете использовать ruby ​​/ php/python/node на сервере, поскольку Stripe предоставляет для них sdk. Я предполагаю, что могут использоваться другие языки, а также есть интерфейс REST.

Обратите внимание, что это всего лишь концепция. Он должен работать так, но я еще не реализовал его. Когда я закончу, я обновлю этот ответ с образцом кода.

+2

Я не хочу, чтобы мое приложение переключалось в браузер. Можно ли это сделать с помощью stripe SDK? – vntstudy

+0

Я не уверен, как настроить URL-адреса перенаправления ... Я имею в виду, как это делает Facebook? Когда я вхожу через Facebook с моим приложением, он автоматически перенаправляет пользователя обратно в мое приложение, как только будут предоставлены разрешения. Я делаю это в объекте iOS-c также – jsetting32

+1

Я хочу проверить авторизацию в режиме тестирования. Является ли это возможным? Или мне нужно предоставить информацию о реальном банке, поскольку она дает мне недействительный номер маршрутизации. – Niharika

1

Вы можете использовать UIWebView. Вам все равно придется использовать перенаправление URL-адресов и контролировать перенаправление с помощью делегата «webView: shouldStartLoadWithRequest: navigationType:»

Смежные вопросы