Как вернуться из платежного приложения обратно в мое приложение?Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Как вернуться из платежного приложения обратно в мое приложение?

Сообщение Anonymous »

У меня возникла проблема с терминалом SUNMI P2, который использует протокол NEXO и Besteron для оплаты: после считывания карты перенаправление обратно в мое приложение не работает.
Android версии 11
Я отправляю HTTP-запрос на протокол NEXO, и когда я получаю ответ, срабатывает метод оплатыResult.collect. Сначала я попытался использовать намерение для перенаправления обратно в мое приложение здесь, внутри блока сбора, но это не сработало. Теперь я вызываю doTransactionTickets, который вызывает мой API, который затем запускает транзакциюResult.collect. Внутри этого места я пытаюсь перенаправить на другой фрагмент, чтобы вернуть приложение на передний план, но это не работает.

Код: Выделить всё


viewLifecycleOwner.lifecycleScope.launch {
viewLifecycleOwner.repeatOnLifecycle(Lifecycle.State.CREATED) {
viewModel.paymentResult.collect {
Log.d("paymentTest", "The payment response has been received: $it")
lifecycleScope.launch {
viewModel.doTransactionTickets(
binding.noteText.editText?.text.toString(),
args.itemType,
args.itemId,
args.selectedTickets!!.tickets,
totalPrice.formatWithDecimalPlaces(),
args.date,
args.packItems?.result,
args.itemSeats,
client
)
}
}
}
}

viewLifecycleOwner.lifecycleScope.launch {
viewLifecycleOwner.repeatOnLifecycle(Lifecycle.State.CREATED) {
viewModel.transactionResult.collect { item ->
val receipt = viewModel.receiptPdf.value?.let { PdfDocument(it) }
val ticket = viewModel.ticketPdf.value?.let { PdfDocument(it) }
Log.d("paymentTest", "Transaction done")
requireActivity().runOnUiThread {
findNavController().navigate(
R.id.action_checkoutFragment_to_confirmationFragment,
Bundle().apply {
putString("name", args.name)
putFloat("totalPrice", totalPrice.toFloat())
putString(
"ticketsDescription",
binding.summaryTicketBreakdown.text.toString()
)
putString("eventDateTime", args.date)
putString("orderNumber", item.toString())
putInt("itemType", args.itemType)
putBoolean("hasTimetable", args.hasTimetable)
putSerializable("receipt", receipt)
putSerializable("ticket", ticket)
})
}
}
}
}

Что еще я могу здесь сделать, я открыт для идей.

Подробнее здесь: https://stackoverflow.com/questions/799 ... -to-my-app
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»