Чтобы реализовать комбинированную оплату в своём приложении для перечисленных чеков выполните:
В манифесте приложения, добавьте разрешение:
<uses-permission android:name="ru.evotor.permission.COMBINED"/>
Создайте службу, которая будет обрабатывать комбинированные платежи. Например, .CombinedPaymentService.
Служба .CombinedPaymentService наследуется от класса IntegrationService.java. Для обработки события используйте класс PaymentDelegatorEventProcessor.kt. Пример сервиса:
 class CombinedPaymentService : IntegrationService() 	{
      override fun createProcessors(): 	MutableMap<String, ActionProcessor> = 	mutableMapOf(
          Pair(
              PaymentDelegatorEvent.NAME_ACTION,
              object 	: PaymentDelegatorEventProcessor() {
                  override 	fun call(
                      action: 	String,
                      event: 	PaymentDelegatorEvent,
                      callback: 	Callback
                  ) 	{
                      callback.startActivity(
                          Intent(this@CombinedPaymentService, 	MainActivity::class.java)
                              .putExtra(MainActivity.KEY_RECEIPT_UUID, 	event.receiptUuid)
                      )
                  }
              }
          )
      )
  }
В манифесте приложения, в intent-filter службы укажите событие, которое будет её запускать:
<intent-filter>
    <action android:name="evo.v2.receipt.sell.payment.COMBINED" />
</intent-filter>
Чтобы получить данные всех приложений, которые позволяют оплачивать чек, используйте метод getAllPaymentPerformers класса PaymentPerformerApi.kt. Метод возвращает список объектов PaymentPerformer.kt.
В версии EvotorPOS 8.10.0 для перечисленных чеков добавлена возможность вызывать activity своего приложения, чтобы при комбинированной оплате управлять распределением сумм по способам оплаты. Раньше приложение EvotorPOS само распределяло суммы и не вызывало внешнее приложение.
Чтобы добавить эту функцию в своё приложение, дополните шаги, выполненные в предыдущем разделе, следующими действиями:
В манифесте приложения, в intent-filter службы добавьте событие, которое будет её запускать evo.v2.receipt.payback.payment.COMBINED:
<intent-filter>
    <action android:name="evo.v2.receipt.sell.payment.COMBINED" />
    <action android:name="evo.v2.receipt.payback.payment.COMBINED" />
</intent-filter>
evo.v2.receipt.sell.payment.COMBINED, то при выборе приложения в способах оплаты оно вызываться не будет и оплаты распределятся автоматически. При добавлении action evo.v2.receipt.payback.payment.COMBINED EvotorPOS будет вызывать приложение для комбинированной оплаты и передавать ему список доступных оплат.В созданную ранее службу добавьте новый обработчик события	PaybackPaymentDelegatorEvent. Пример сервиса:
class CombinedPaymentService: IntegrationService() {
    override fun createProcessors(): MutableMap < String, ActionProcessor > =
        mutableMapOf(Pair(PaybackPaymentDelegatorEvent.NAME_ACTION, object: PaybackPaymentDelegatorEventPrxocessor() {
            override fun call(action: String, event: PaybackPaymentDelegatorEvent, callback: Callback) {
                callback.startActivity(Intent(this @CombinedPaymentService,  MainActivity::class.java).putExtra(MainActivity.KEY_RECEIPT_UUID, event.receiptUuid).putExtra(MainActivity.KEY_AVAILABLE_PAYBACK_SUM, event.availablePaybackSum))
            }
        }))
}
Объект PaybackPaymentDelegatorEvent содержит в себе uuid чека возврата и доступные для возврата суммы в виде списка объектов PaymentDelegatorPaybackData. Каждый из них содержит paymentPerformer и максимальную доступную сумму возврата.
После обработки событий, служба .CombinedPaymentService должна вернуть один из результатов:
PaymentDelegatorSelectedEventResult.kt – выбрана платёжная система, с помощью которой будет совершён платёж. Результат содержит объект PaymentPurposePaymentDelegatorCanceledEventResult.kt – пользователь отменил выбранный способ оплаты.PaymentDelegatorCanceledAllEventResult.kt – пользователь отменил все способы оплаты. В этом случае смарт-терминал последовательно отменяет все выбранные способы оплаты.