Несите ваши денежки, или организовываем оплату на веб сервисе. Часть 1: выбор провайдера

Разработка Logify подходит к релизу, и одна из главных задач недавнего времени была организация оплаты за пользование сервисом. В нашей компании подобных продуктов до этого не было, так что нам пришлось быть первопроходцами. При этом мы не знали, как это обычно делается, у нас было только понимание, как мы хотим, чтобы это работало у нас. Поэтому пришлось погрузиться в неизведанный мир сервисов оплаты, выбрать какой-то для себя и настроить работу с ним. Данным опытом я и хочу поделиться в этом цикле статей.

Для начала было понятно, что Яндекс Деньги и прочие наши, Российские, сервисы нам не подойдут, так как головной офис DevExpress расположен в США, и вопросами денег занимаются там. Поэтому пришлось гуглить, что же вообще используется по всему миру для взимания платы, и я нашел несколько сервисов, о которых до этого вообще ничего не слышал 🙂 Как-то больше всего для меня выделились два из них: Braintree и Stripe, их и стал изучать.

Первый сервис принадлежит PayPal, второй же является отдельной компанией. В принципе, они достаточно похожи. Для работы с ними надо установить их библиотеку в свой проект, и через ее API происходит общение с сервисом. Оба позволяют выбирать самые различные варианты оплаты, от карт до биткоинов. Оба имеют возможность как проведения единичных платежей, так и настройки работы с подписками и регулярными платежами в зависимости от плана подписки (как раз то, что нам и нужно). Оплата за пользование обоих сервисов происходит комиссией за транзакцию.

Почитав статьи про эти сервисы, я обнаружил определенный поток негатива в сторону Braintree, связанный с не совсем удобной и понятной документацией. Писали, что что-то простое настроить с ними достаточно быстро и легко, а вот при более детальном погружении в настройку, все становилось не совсем очевидно и приходилось тратить много времени. К Stripe же подобных претензий не было, и многие советовали его как более удобную альтернативу.

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