Публичное пространство
SetRetail10 ◾️ Сервис оплаты WB Кошелёк (Вайлдберриз Банк)
https://crystals.atlassian.net/browse/SRTZ-4489
https://crystals.atlassian.net/browse/CR-14748
10.4.25.0
Описание
Плагин «WB Кошелёк» реализует интеграцию с платёжной системой Вайлдберриз Банк и предоставляет возможность оплаты на кассах SetRetail10 (POS, SetTouch, SCO) с помощью мобильного приложения Wildberries. Поддерживаются два способа оплаты:
Оффлайн оплата (по QR-коду): покупатель предъявляет QR-код из приложения для сканирования кассой.
Онлайн оплата (по номеру телефона): покупатель вводит номер телефона, к которому привязан профиль WB.
Доступны следующие операции:
Продажа с передачей состава чека.
Возврат (полный и частичный) с передачей состава чека.
Отмена неоплаченного заказа при выходе из оплаты.
Аннулирование чеков оплаты и возврата.
Ценность
Для ритейлеров: расширение перечня способов оплаты, повышение лояльности клиентов, увеличение среднего чека.
Для покупателей: удобство оплаты через мобильное приложение, быстрый и безопасный процесс.
Для финансовых служб: автоматизация передачи состава чека, поддержка возвратов и аннулирования.
Примеры работы
Полная оплата по QR-коду (POS-касса)
Кассир добавляет товары в чек, переходит в режим оплаты и выбирает Оплата WB кошельком.
Выбирает способ оплаты По QR-коду.
Касса отображает сообщение: “Отсканируйте QR-код с телефона покупателя”.
Покупатель в приложении Wildberries выбирает оплату по QR-коду, предъявляет QR для сканирования.
Касса регистрирует оплату, получает подтверждение и завершает транзакцию.
Полная оплата по номеру телефона (SetTouch)
Кассир добавляет товары в чек → выбирает Оплата WB кошельком.
Кассир подтверждает сумму оплаты.
Выбирает способ оплаты По номеру телефона.
На кассе отображается форма для ввода номера телефона.
Кассир вводит номер, к которому привязан профиль WB покупателя.
Касса отправляет запрос в сервис, получает ссылку для подтверждения в приложении.
Касса генерирует QR-код на основе полученной ссылки и выводит его на экран или печатает его на кассовом слипе;
Покупатель подтверждает платёж в приложении или по QR-коду.
Касса получает подтверждение и завершает транзакцию.
SetSCO v3
Покупатель добавляет товары в чек, переходит к оплате и нажимает кнопку Еще способы →.
Выбирает WB кошелёк.
Выбирает способ оплаты По QR-коду.
Касса отображает сообщение: “Отсканируйте QR-код из приложения WB”.
Покупатель в приложении Wildberries выбирает оплату по QR-коду → сканирует QR-код из приложения.
Касса регистрирует оплату, получает подтверждение и завершает транзакцию.
В случае, если покупатель выбирает По номеру телефона - отображается форма для ввода номера телефона.
Покупатель вводит номер, к которому привязан профиль WB покупателя → нажимает Подтвердить.
Касса отображает сообщение “Отсканируйте QR код для продолжения оплаты.” Покупатель подтверждает платеж в приложении.
Ограничения
Возврат возможен только по ранее завершённым оплатам WB Кошелёк. Сумма возврата не может превышать сумму исходной оплаты.
При оплате по QR-коду покупатель может отказаться от сканирования и выбрать другой способ оплаты.
При оплате по номеру телефона покупатель может отклонить платёж в приложении.
Произвольный возврат не поддерживается.
Частичная оплата и возврат поддерживаются только на POS и SetTouch.
Настройка
На сервере
1. На сервере SetRetail/SetCentrum перейдите в раздел Интеграция → Внешние процессинги → кликните .
Введите wb в поле поиска → кликните Платежные системы → введите wb в правом поле поиска → установите флажок
WB Кошелёк → кликните СОХРАНИТЬ.
Кликните по процессингу WB Кошелёк.
Введите необходимые настройки на вкладке ОБЩИЕ.
Параметр | Описание |
|---|---|
Адрес подключения * | Адрес подключения к процессингу. Пример: https://api.wbpay.ru |
Код страны (ISO 3166-1) * | Код страны сервера, откуда поступает запрос, в формате ISO 3166-1 |
Код региона (ISO 3166-2) * | Код региона сервера, откуда поступает запрос, в формате ISO 3166-2 |
Код валюты * | Код валюты совершения операции. Для оплаты в рублях - 643 |
Ключ авторизации для оффлайн оплаты (Bearer) * | Токен авторизации для оффлайн оплаты из письма |
Ключ авторизации для онлайн оплаты (Bearer) * | Токен авторизации для онлайн оплаты из письма |
Таймаут соединения (сек., по умолчанию: 3) | Время соединения с сервисом при попытке оплаты. |
Таймаут ожидания ответа (сек., по умолчанию: 10) | Время ожидания ответа от сервиса после инициализации оплаты. |
Количество попыток для запроса (по умолчанию: 5) | Количество попыток запроса. |
| Включает возможность оплаты через сканирование QR-кода. По умолчанию включена. |
| Включает возможность оплаты путём ввода номера телефона; По умолчанию выключена. Если включены оба варианта («Оффлайн оплата» и «Онлайн оплата»), на кассе появляются кнопки для выбора нужного способа оплаты. |
https://crystals.atlassian.net/browse/SRTZ-4578 https://crystals.atlassian.net/browse/CR-15412 10.4.26.0 | Включает возможность использования и передачи сформированное по маске значение Флажок установлен (настройка включена):
Флажок снят (настройка включена):
|
На вкладке ОПЛАТА WB КОШЕЛЬКОМ установите дополнительные флажки настроек, если требуется → кликните СОХРАНИТЬ.
Параметр | Описание |
|---|---|
| При возврате позиций чека, оплаченного смешанной оплатой, типы оплат будут пропорционально распределены между возвращаемыми позициями. |
| Разрешен только возврат чека полностью |
| Функциональность не поддерживается в данной версии плагина. |
| Функциональность не поддерживается в данной версии плагина. |
| Функциональность не поддерживается в данной версии плагина. |
| Функциональность не поддерживается в данной версии плагина. |
| Функциональность не поддерживается в данной версии плагина. |
| Функциональность не поддерживается в данной версии плагина. |
код оплаты для передачи в систему событий | ru.crystals.plugins.payment.wbwallet |
| При оформлении возврата чека, оплаченного WB кошельком, денежные средства могут быть возращены только выбранными типами оплат из списка. Возврат на WB кошелек недоступен. |
Дополнительные способы возврата, доступные всегда Если включена "возвращать дополнительными способами вместо плагина", то этот список используется вместо плагина. Выбранные типы оплат должны быть разрешены в настройках шаблона кассы. | Список типов оплат, всегда используемых для выполнения возврата в дополнение к WB Кошельку. |
Способы возврата, дополнительно доступные по решению плагина Если включена "возвращать дополнительными способами вместо плагина", то этот список не применяется. Выбранные типы оплат должны быть разрешены в настройках шаблона кассы. | Список типов оплат, используемых для выполнения возврата при невозможности завершить возврат плагинным типом оплаты. Функциональность не поддерживается в данной версии плагина. |
Перейдите в Кассовый модуль → Шаблоны касс → кликните требуемый шаблон.
Перейдите на вкладку ПРОЦЕСС ТОРГОВЛИ → НАСТРОЙКИ → в секции Типы оплат установите флажок
Оплата WB кошельком → кликните СОХРАНИТЬ. Перезагрузите кассовый модуль для применения настроек.
На кассе
В корень папки /home/tc/crystal_cash загрузите файл wbwallet.settings с локальными настройками в формате JSON.
Идентификатор оффлайн терминала | Идентификатор офлайн терминала из письма |
Приватный ключ для оффлайн оплаты | Приватный ключ офлайн терминала из письма (содержимое .pem) |
Идентификатор онлайн терминала | Идентификатор онлайн терминала из письма |
Приватный ключ для онлайн оплаты | Приватный ключ онлайн терминала из письма (содержимое .pem) |
Пример:
{
"offlineTerminalId": "идентификатор терминала для оплаты по QR",
"offlinePrivateKey": "приватный ключ для оплаты по QR",
"onlineTerminalId": "идентификатор терминала для оплаты по номеру телефона",
"onlinePrivateKey": "приватный ключ для оплаты по номеру телефона"
}Установите права на файл командой
sudo chmod -R 666 /home/tc/storage/crystal-cash/wbwallet.settings.Перезагрузите кассу командой
cash reboot.
Экспорт в ERP
Экспорт в ERP-системы осуществляется в соответствии с интеграционной документацией:
Экспорт чеков из SetRetail10 в ERP (веб-сервис на стороне ERP).
Экспорт чеков из SetRetail10 в ERP (веб-сервис на стороне SetRetail10)
Экспорт чека продажи
<purchase ...>
<payments>ru.crystals.plugins.payment.wbwallet- оплата WB Кошелёкcash.transaction.id- идентификатор транзакции (invoice_idиз параметров запроса на регистрацию оплаты)cash.transaction.date- дата транзакцииpayment.amount- сумма оплатыwb.payment.type- способ оплаты:QR- по QR-кодуPHONE- по номеру телефона
operation.id- идентификатор операции (order_idиз ответа на запрос регистрации оплаты)terminal.id- идентификатор терминала (terminal_idиз параметров запроса на регистрацию оплаты)
</payments>
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<purchases count="1">
<purchase tabNumber="99999" userName="Иванов Иван Иванович" operationType="true" cashOperation="INCOME" operDay="2026-04-02+03:00" shop="779" cash="2" shift="154" number="1" saletime="2026-04-02T22:42:22.736+03:00" begintime="2026-04-02T22:31:54.477+03:00" amount="1134.45" discountAmount="0.00" inn="1234567890" fiscalDocNum="318;1">
<plugin-property key="PROMO_PRINT_DISABLED" value="true"/>
<plugin-property key="FISCAL_DOC_ID" value="318"/>
<plugin-property key="FN_DOC_NUM_IN_SHIFT" value="2"/>
<plugin-property key="CASHIER_NAME" value="Иванов Иван Иванович"/>
<plugin-property key="UID_PURCHASE" value="f25c7801-587b-4910-a800-461f9cf45fd1"/>
<plugin-property key="KPP" value="987654321"/>
<plugin-property key="CASH_TIME_ZONE" value="+03:00"/>
<positions>
<position order="1" departNumber="583" goodsCode="0000220" barCode="4216420000220" count="1.000" cost="1134.45" nds="20.0" ndsSum="189.08" discountValue="0.00" costWithDiscount="1134.45" amount="1134.45" dateCommit="2026-04-02T22:31:54.539+03:00" insertType="2">
<plugin-property key="lineNumberAfterRegistration" value="1"/>
<plugin-property key="countryName" value="Россия"/>
<plugin-property key="salesTax" value="0"/>
<plugin-property key="ffdTag2108"/>
<plugin-property key="minimalPrice" value="-1"/>
</position>
</positions>
<payments>
<payment order="0" typeClass="ru.crystals.plugins.payment.wbwallet" amount="1134.45" description="Оплата WB кошельком">
<plugin-property key="cash.transaction.id" value="f25c7801-587b-4910-a800-461f9cf45fd1_1775158936272"/>
<plugin-property key="cash.transaction.date" value="1775158936"/>
<plugin-property key="payment.amount" value="113445"/>
<plugin-property key="wb.payment.type" value="PHONE"/>
<plugin-property key="operation.id" value="83ffa74f532c43209b0fb31f01b1abca_1775158937"/>
<plugin-property key="terminal.id" value="sandbox_f7b612bea1794dd2896c8ae7859a5271_3"/>
</payment>
</payments>
</purchase>
</purchases>Экспорт чека возврата
<purchase ...>
<payments>ru.crystals.plugins.payment.wbwallet- оплата WB Кошелёкcash.transaction.id- идентификатор транзакции (invoice_idиз параметров запроса на регистрацию возврата)cash.transaction.date- дата транзакцииrefund.amount- сумма возвратаwb.payment.type- способ оплаты:QR- по QR-кодуPHONE- по номеру телефона
refund.id- идентификатор операции (refund_idиз ответа на запрос регистрации возврата)terminal.id- идентификатор терминала
</payments>
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<purchases count="1">
<purchase tabNumber="99999" userName="Иванов Иван Иванович" operationType="false" cashOperation="INCOME" operDay="2026-04-02+03:00" shop="779" cash="2" shift="154" number="7" saletime="2026-04-03T16:48:15.520+03:00" begintime="2026-04-03T16:48:02.426+03:00" amount="40.00" discountAmount="0.00" inn="1234567890" fiscalDocNum="322;7">
<plugin-property key="PROMO_PRINT_DISABLED" value="true"/>
<plugin-property key="FISCAL_DOC_ID" value="322"/>
<plugin-property key="FN_DOC_NUM_IN_SHIFT" value="6"/>
<plugin-property key="CASHIER_NAME" value="Иванов Иван Иванович"/>
<plugin-property key="UID_PURCHASE" value="91cd217f-9b0a-4dfd-90ef-c15e1278331c"/>
<plugin-property key="KPP" value="987654321"/>
<plugin-property key="CASH_TIME_ZONE" value="+03:00"/>
<positions>
<position order="1" departNumber="11" goodsCode="2400004" barCode="2400004" count="2.000" cost="20.00" nds="20.0" ndsSum="6.67" discountValue="0.00" costWithDiscount="20.00" amount="40.00" dateCommit="2026-04-03T16:48:02.443+03:00" insertType="2">
<plugin-property key="lineNumberAfterRegistration" value="1"/>
<plugin-property key="returnReason" value="1"/>
<plugin-property key="salesTax" value="0"/>
<plugin-property key="ffdTag2108"/>
<plugin-property key="minimalPrice" value="-1"/>
</position>
</positions>
<payments>
<payment order="0" typeClass="ru.crystals.plugins.payment.wbwallet" amount="40.00" description="Оплата WB кошельком">
<plugin-property key="transaction.id" value="91cd217f-9b0a-4dfd-90ef-c15e1278331c_1775224091430"/>
<plugin-property key="transaction.date" value="1775224091"/>
<plugin-property key="wb.payment.type" value="PHONE"/>
<plugin-property key="refund.amount" value="4000"/>
<plugin-property key="terminal.id" value="sandbox_f7b612bea1794dd2896c8ae7859a5271_3"/>
<plugin-property key="refund.id" value="0a318c5d85864f648109445a6dc2a1b6_1775224091"/>
</payment>
</payments>
<original-purchase operDay="2026-04-02+03:00" shop="779" cash="2" shift="154" number="6" saletime="2026-04-03T16:47:34.914+03:00"/>
</purchase>
</purchases>
Статьи по теме