Інтеграція 1С-Бітрікс з платіжною системою Samsung Pay
Samsung Pay — платіжна система Samsung для мобільних пристроїв та смарт-годинників. Має одну ключову технічну особливість, що відрізняє її від Apple Pay та Google Pay: окрім NFC, підтримує технологію MST (Magnetic Secure Transmission) — емуляцію магнітної смуги картки. Це розширює сумісність з POS-терміналами. Для інтернет-магазинів на 1С-Бітрікс Samsung Pay реалізується через Samsung Pay Web API або через еквайрингових партнерів, що підтримують цей метод.
Архітектура інтеграції
Samsung Pay для веб-платежів працює через Samsung Checkout API. Два підходи:
-
Через еквайринг — якщо ваш еквайринг (Тінькофф, ЮКаса, Сбер, Stripe) підтримує Samsung Pay як метод оплати — достатньо активувати його в особистому кабінеті. Технічна інтеграція на стороні магазину мінімальна.
-
Пряма інтеграція через Samsung Pay Web API — для кастомних сценаріїв. Вимагає партнерського акаунта в Samsung.
Варіант через Тінькофф (найпоширеніший для РФ)
Тінькофф підтримує Samsung Pay через свій SDK. Кнопка Samsung Pay відображається поруч з Google Pay/Apple Pay:
// Ініціалізація через Tinkoff Acquiring SDK
const tinkoff = new TinkoffPayForm({
terminalKey: 'TERMINAL_KEY',
paymentMethods: {
tinkoffPay: false,
sbp: false,
googlePay: true,
applePay: true,
samsungPay: true, // вмикаємо Samsung Pay
},
});
// Перевіряємо доступність Samsung Pay для поточного пристрою
tinkoff.isSamsungPayAvailable().then(available => {
if (available) {
document.querySelector('.samsung-pay-btn').style.display = 'block';
}
});
Пряма інтеграція Samsung Pay Web API
Для прямої інтеграції без агрегатора:
// Завантаження Samsung Pay JS SDK
// <script src="https://img.mpay.samsung.com/gsmpi/sdk/samsungpay_web_sdk.js"></script>
const samsungPayClient = new SamsungPay.PaymentsClient({
environment: 'PRODUCTION', // 'TEST' для розробки
});
const paymentRequest = {
version: '2',
serviceId: 'YOUR_SERVICE_ID', // видається Samsung при реєстрації
orderNumber: orderId.toString(),
protocol: {
type: 'PROTOCOL_3DS',
version: '2.0',
},
merchant: {
name: 'Мій магазин',
url: 'https://myshop.ru',
countryCode: 'RU',
},
amount: {
option: 'FORMAT_TOTAL_ESTIMATED_AMOUNT',
currency: 'RUB',
total: orderTotal.toFixed(2),
},
allowedBrands: ['visa', 'mastercard', 'mir'],
merchant_gateway_parameter: {
// Параметри вашого еквайрингу
gateway: 'example_gateway',
gatewayMerchantId: 'MERCHANT_ID',
},
};
samsungPayClient.loadPaymentSheet(SamsungPay.PaymentMethod.CARD, paymentRequest)
.then(paymentResult => {
return fetch('/bitrix/tools/spay_charge.php', {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
token: paymentResult.paymentCredential.paymentData,
orderId,
}),
});
})
.then(res => res.json())
.then(data => {
if (data.success) window.location.href = data.redirect;
});
Серверна обробка
// /bitrix/tools/spay_charge.php
$input = json_decode(file_get_contents('php://input'), true);
$token = $input['token'];
$orderId = (int)$input['orderId'];
// Samsung Pay передає той самий формат токена, що й Google Pay (у більшості еквайрингів)
// Обробляємо через існуючий еквайринг
$result = processPaymentToken($token, $orderId, 'samsung_pay');
header('Content-Type: application/json');
echo json_encode(['success' => $result]);
Особливості та обмеження
- Samsung Pay Web працює лише на пристроях Samsung із встановленим додатком Samsung Pay
- На iOS — не працює взагалі (використовуйте Apple Pay)
- Частка аудиторії, здатної платити через Samsung Pay у браузері, суттєво менша, ніж у Google Pay
- Якщо еквайринг підтримує Samsung Pay — реалізація через агрегатор займає менше часу, ніж пряма інтеграція
Терміни
| Підхід | Термін |
|---|---|
| Через еквайринг (Тінькофф, ЮКаса) | 0.5–1 день |
| Пряма інтеграція Samsung Pay Web API | 3–5 днів |
| Тестування на реальному Samsung-пристрої | 1 день |







