Інтеграція платіжного шлюзу CloudPayments в мобільному додатку
CloudPayments — російський платіжний шлюз з нативними SDK для iOS та Android. З коробки підтримує 3DS2, SBP, оплату через QR, Apple Pay та Google Pay. Для більшості мобільних додатків інтеграція займає 1–2 дні, якщо розуміти, як влаштований потік.
SDK та базова конфігурація
// Android, build.gradle
implementation("ru.cloudpayments:sdk-android:1.x.x")
// iOS, SPM або Podfile
pod 'SDK-iOS', :git => 'https://github.com/cloudpayments/CloudPayments-SDK-iOS'
Основний потік: криптограма карти
CloudPayments не зберігає дані карти на вашому сервері. Дані карти на клієнті перетворюються на криптограму через PublicID вашого мерчанта, криптограма передається на ваш сервер, сервер передає її в CloudPayments API.
// Android
val cardCryptogram = Card.cardCryptogram(
cardNumber = "4111111111111111",
cardDate = "12/25",
cardCvv = "123",
merchantPublicId = "pk_your_public_id"
)
// Відправляємо cardCryptogram на свій бекенд
// iOS
let cryptogram = CPCryptogramPacket.makePacket(
cardNumber: "4111111111111111",
expirationDateString: "12/25",
cvv = "123",
merchantPublicID: "pk_your_public_id"
)
На бекенді викликаємо CloudPayments API:
POST https://api.cloudpayments.ru/payments/cards/charge
{
"Amount": 1500,
"Currency": "RUB",
"InvoiceId": "ORDER-1234",
"CardCryptogramPacket": "...",
"Name": "IVAN IVANOV"
}
3DS2: обробка AcsUrl
Якщо банк вимагає 3DS-підтвердження, CloudPayments API повертає статус 3ds з полями AcsUrl, PaReq, TransactionId. Показуємо 3DS WebView:
// Android — SDK надає готовий ThreeDsDialogFragment
ThreeDsDialogFragment.newInstance(
acsUrl = response.acsUrl,
transactionId = response.transactionId,
paReq = response.paReq
).show(supportFragmentManager, "3ds")
// iOS — D3DSViewController з SDK
let d3ds = D3DSViewController()
d3ds.acsUrl = response.acsUrl
d3ds.paReq = response.paReq
d3ds.transactionId = response.transactionId
d3ds.delegate = self
present(d3ds, animated: true)
Після підтвердження в 3DS WebView SDK повертає PaRes — передаємо його в CloudPayments API для завершення транзакції:
POST /payments/cards/post3ds
{ "TransactionId": "...", "PaRes": "..." }
Готовий платіжний UI від SDK
CloudPayments SDK включає готовий PaymentForm — екран введення карти з логотипами платіжних систем та вбудованою валідацією. Корисно, якщо немає ресурсів на користувацький дизайн.
val intent = PaymentActivity.getStartIntent(
context,
cpApiPublicId = "pk_your_public_id",
totalAmount = "1500",
currency = Currency.RUB,
invoiceId = "ORDER-1234",
description = "Оплата замовлення"
)
startActivityForResult(intent, REQUEST_CODE_PAYMENT)
Обсяг робіт
- Підключення CloudPayments SDK (iOS / Android / Flutter)
- Реалізація генерування криптограми та передачі на бекенд
- Обробка 3DS через SDK-компоненти
- Опціонально: Apple Pay / Google Pay через CloudPayments
- Тестування з тестовими картами CloudPayments (тестовий PublicID)
Терміни
2–3 дні. Вартість розраховується індивідуально після аналізу вимог.







