Для интеграции с “Мобильным кассиром” используйте RemoteCashierSDK. Он позволяет производить оплату и возврат разными способами с помощью App-To-App взаимодействия стороннего приложения с приложением “Мобильный кассир”. Пример интеграции вы можете посмотреть по этой ссылке.
RemoteCashierSDK позволяет:
RemoteCashierSDK — универсальная библиотека для Android. Для ее корректной работы в приложении “Мобильный кассир” нужно:
Для интеграции с Мобильным кассиром нужно добавить в проект зависимость от библиотеки Эвотора и импортировать интерфейс.
Добавьте в проект зависимости от библиотеки RemoteCashierSDK
. Для этого:
build.gradle app
добавьте:
dependencies {
…
implementation 'com.github.Evotor—InnTech:RemoteCashierSDK:1.0.1'
}
build.gradle Project
добавьте:buildscript {
…
repositories {
…
maven { url "https://jitpack.io" }
}
}
Integration
ru.evotor.integration.Integration
— интерфейс;ru.evotor.integration.IntegrationImpl
— реализующий класс.Integration
:
private val integration: integration by lazy { IntegrationImpl() }
fun startPayment(receipt: Receipt_V1)
На телефоне должно быть установлено приложение «Мобильный кассир». При вызове открывается activity
приложения. Параметр функции: чек с типом Receipt_V1
, где V1
— текущая версия классов данных библиотеки.
Описание полей класса Receipt_V1
:
uuid: String
— uuid чека;positions: List<Position_V1>
— список позиций чека. Класс Position_V1
содержит поля следующие поля:
price: BigDecimal
— цена товара;name: String
— наименование товара;measureName: String
— единицы измерения товара: шт, кг, л, м, м2, м3,компл, упак, ед, дроб;quantity: BigDecimal
— количество товара;tax: String
— тип НДС. Возможные значения: null
, NO_VAT
, VAT_10
, VAT_18
, VAT_0
, VAT_18_118
, VAT_10_110
;commodityId: String
— uuid товара. Может быть null
;priceWithDiscount: BigDecimal
— цена со скидкой. Может быть null
;type: Type_V1
— тип товара. Может быть null
. Доступные объекты класса Type_V1
:
NORMAL
— обычный;ALCOHOL_MARKED
— маркированный алкоголь;ALCOHOL_NOT_MARKED
— немаркированный алкоголь;TOBACCO_MARKED
— маркированный табак;SHOES_MARKED
— маркированная обувь;MEDICINE_MARKED
— маркированные лекарства;SERVICE
— услуга;PERFUME_MARKED
— маркированные духи;LIGHT_INDUSTRY_MARKED
— маркированные одежда и белье;PHOTOS_MARKED
— маркированная фотоаппаратура;TYRES_MARKED
— маркированные шины;clientEmail: String
— email покупателя. Может быть null
;clientPhone: String
— номер телефона покупателя. Может быть null
;shouldPrintReceipt: Boolean
— напечатать чек. По умолчанию false
;paymentPlace: String
— место платежа. Может быть null
;paymentAddress: String
— адрес платежа. Может быть null
;receiptDiscount: BigDecimal
— скидка на чек. Может быть null
;tapOnPhoneRefId: String
— идентификатор транзакции Tap On Phone. Может быть null
;creationDate: Date
— дата создания чека. Может быть null
;extra: String
— дополнительная информация. Может быть null
;operationType: OperationType_V1
— тип операции. Доступные объекты класса OperationType_V1
:
SELL
— продажа;PAYBACK
— возврат.fun handlePaymentResult(registry: ActivityResultRegistry, transactionResultHandler (TransactionResult) -> Unit)
В функцию передайте параметр с типом ActivityResultRegistry
. Лямбда-выражение возвращает ответ с типом TransactionResult
.
Описание полей класса TransactionResult
:
receiptUuid: String
— uuid чека;operationResult: OperationResult
— результат операции. Класс OperationResult содержит следующие поля:
success: Boolean
— успех операции;message: String
— сообщение операции.Для проверки интеграции мы рекомендуем использовать в “Мобильном кассире” виртуальную кассу. Это позволит не использовать настоящие деньги при тестировании.