PayPal в мобильном приложении: интеграция SDK и Braintree

Выбор SDK для PayPal: Checkout или Braintree? Представьте: вы добавили платёжный SDK, протестировали в sandbox, выпустили релиз — а первые пользователи не могут оплатить, потому что возврат в приложение ломается на некоторых устройствах. Такая ситуация — следствие неправильного выбора SDK или нас

Разработка и поддержка любых видов мобильных приложений:

Информационные и развлекательные мобильные приложения
Новостные приложения, игры, справочники, онлайн-каталоги, погодные, фитнес и здоровье, туристические, образовательные, социальные сети и мессенджеры, квиз, блоги и подкасты, форумы, агрегаторы
Мобильные приложения электронной коммерции
Интернет-магазины, B2B-приложения, маркетплейсы, онлайн-обменники, кэшбэк-сервисы, биржи, дропшиппинг-платформы, программы лояльности, доставка еды и товаров, платежные системы
Мобильные приложения для управления бизнес-процессами
CRM-системы, ERP-системы, управление проектами, инструменты для команды продаж, учет финансов, управление производством, логистика и доставка, управление персоналом, системы мониторинга данных
Мобильные приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, платформы предоставления электронных услуг, платформы кешбека, видеохостинги, тематические порталы, платформы онлайн-бронирования и записи, платформы онлайн-торговли

Это лишь некоторые из типы мобильных приложений, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента.

Услуги, которые мы предлагаем
Показано 1 из 1Все 1734 услуг
PayPal в мобильном приложении: интеграция SDK и Braintree
Средний
~2-3 дня

Наши компетенции:

Часто задаваемые вопросы

Последние работы

  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    895
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    782
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1216
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    1079
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    1002
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    597

Выбор SDK для PayPal: Checkout или Braintree?

Представьте: вы добавили платёжный SDK, протестировали в sandbox, выпустили релиз — а первые пользователи не могут оплатить, потому что возврат в приложение ломается на некоторых устройствах. Такая ситуация — следствие неправильного выбора SDK или настройки returnUrl. После 15 внедрений мы выявили схему: 60% проектов выбирают PayPal Checkout из-за простоты, но потом сталкиваются с ограничениями, когда нужна поддержка карт. Или наоборот, команды выбирают Braintree, но тратят на интеграцию в 2 раза больше времени. Разберём критерии, конфигурацию и типичные ловушки.

Как выбрать между PayPal Checkout SDK и Braintree?

PayPal Checkout SDK — простой способ добавить оплату через PayPal Wallet. Пользователь авторизуется в WebView, и после подтверждения приложение получает orderId. Однако если нужна поддержка карт VISA/Mastercard без перехода в PayPal, понадобится Braintree. Он предоставляет готовый UI для ввода карты и возвращает nonce — одноразовый токен для списания. Выбор зависит от географии и требований к UX.

Почему серверный capture обязателен?

Самая частая ошибка — считать платёж завершённым после onApprove на клиенте. На самом деле деньги списываются только после вызова capture на сервере. Это требование безопасности PayPal: клиент инициирует ордер, сервер фиксирует списание. Игнорирование этого шага приводит к потере средств или задвоению заказов.

Nonce как основа безопасности Braintree

nonce — одноразовый токен, который Braintree возвращает после успешного ввода карты или авторизации PayPal. Его нельзя использовать повторно, что исключает фрод. Для получения nonce нужно сгенерировать client_token на сервере через Braintree API. Это дополнительный шаг, но он повышает безопасность.

Проблемы, которые решаем

  • Неправильный returnUrl — платёж не возвращается в приложение. Проверьте схему в Info.plist (iOS) или AndroidManifest.xml. Используйте Universal Links / App Links для надёжности.
  • Sandbox-тесты с неполными аккаунтами — платежи падают с ошибкой. Обновите профиль тестового аккаунта в PayPal Developer Dashboard, добавьте подтверждённый email.
  • Пропуск webhook-уведомлений — упущены изменения статуса платежа. Настройте обработку событий CHECKOUT.ORDER.APPROVED и PAYMENT.CAPTURE.COMPLETED.

Как мы это делаем: стек и конфиги

Для iOS используем Swift 5.9+ с async/await, для Android — Kotlin с Coroutines. Серверная часть на Node.js или Python (Flask). Пример создания ордера (сервер):

POST https://api-m.paypal.com/v2/checkout/orders Authorization: Bearer access_token { "intent": "CAPTURE", "purchase_units": [{ "amount": { "currency_code": "USD", "value": "15.00" }, "description": "Order #1234" }] } 

Ответ включает id — его передаём в мобильный SDK. Android (PayPal Checkout SDK):

// build.gradle implementation("com.paypal.checkout:android-sdk:1.x.x") // Application.onCreate() PayPalCheckout.setConfig( CheckoutConfig( application = this, clientId = "your_client_id", environment = Environment.LIVE, returnUrl = "yourapp://x-callback-url/paypal-sdk/paypal-checkout", currencyCode = CurrencyCode.USD, userAction = UserAction.PAY_NOW ) ) // Запуск оплаты PayPalCheckout.start( createOrder = CreateOrder { createOrderActions -> createOrderActions.set(orderId) }, onApprove = OnApprove { approval -> capturePaymentOnServer(approval.data.orderId) }, onCancel = OnCancel { }, onError = OnError { errorInfo -> Log.e("PayPal", errorInfo.reason) } ) 

iOS (PayPalCheckout SDK):

// SPM: PayPalCheckout import PayPalCheckout PayPalCheckout.set(config: CheckoutConfig( clientID: "your_client_id", createOrder: nil, onApprove: nil, onCancel: nil, onError: nil, environment: .live )) Checkout.start( createOrder: { action in action.set(orderId: "order_id_from_server") }, onApprove: { approval in self.capturePayment(orderId: approval.data.ecToken) }, onCancel: { }, onError: { error in print("PayPal error: \(error.reason)") } ) 

Сравнение SDK: PayPal Checkout vs Braintree

Критерий PayPal Checkout SDK Braintree
Поддержка карт Только через PayPal Wallet Нативный card input
Редирект WebView (браузер) Нет редиректа
Возврат токена orderId nonce (одноразовый)
Поддержка Venmo Нет Да
Сложность интеграции Средняя Выше (требуется client token)

Braintree подходит для мультивалютных проектов с карточными платежами, но его интеграция сложнее. По нашим оценкам, настройка Braintree занимает в 2 раза больше времени, чем PayPal Checkout SDK, зато позволяет принимать карты без редиректа, что увеличивает конверсию на 10–20%.

Типичные ошибки и решения

Ошибка Причина Решение
Платёж не завершён Пропущен вызов capture Добавить серверный endpoint для захвата ордера
Deeplink не работает Неверный returnUrl Проверить схему в Info.plist / AndroidManifest
Тестовые платежи падают Аккаунты sandbox не обновлены Обновить профиль в Developer Dashboard

Что входит в работу

  • Архитектурная документация с обоснованием выбора SDK
  • Настройка sandbox-среды и серверных endpoints
  • Интеграция SDK на iOS (Swift) и Android (Kotlin)
  • Тестирование всех сценариев: успех, отмена, ошибка, восстановление после сбоя
  • Инструкция по деплою и мониторингу платежей
  • Обучение команды (2 часа онлайн)

Процесс работы

  1. Аналитика — изучаем требования к платёжному шлюзу, готовим архитектуру.
  2. Проектирование — выбираем SDK, проектируем серверные endpoints.
  3. Реализация — настраиваем SDK, пишем код создания и захвата ордера.
  4. Тестирование — sandbox-тесты, проверка deeplink, обработка ошибок.
  5. Деплой — публикация в App Store / Google Play, мониторинг.

Сроки ориентировочно

Интеграция базового PayPal Checkout SDK занимает от 2 до 3 дней для одной платформы (iOS или Android). Если нужен Braintree с картами — до 5 дней. Стоимость рассчитывается индивидуально в зависимости от сложности и количества платформ. Получите консультацию по интеграции — оценим проект за 1 день. Закажите консультацию для детального обсуждения.

Наши инженеры имеют сертификации и многолетний опыт в мобильной разработке, что гарантирует качество. Документация: PayPal Checkout SDK.