Вот что я хочу сделать. В моем приложении есть два типа пользователей: покупатели и продавцы. Продавец может предоставить свой идентификатор UPI, а покупатели могут использовать любое приложение UPI, установленное на их устройстве, для оплаты продавцам с использованием предоставленного идентификатора UPI продавца.
Я создаю URL-адрес платежа UPI следующим образом:
String upiPaymentUrl = upi://pay?pa=<<Seller VPA ID>>&pn=<<Payee name>>&tn=<<Txn description>>&cu=INR
Затем я использую следующий код, чтобы показать все приложения с поддержкой UPI на телефоне:
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(Uri.parse(upiPaymentUrl));
Intent chooser = Intent.createChooser(intent, getString(R.string.payment_title));
startActivityForResult(chooser, Constant.REQUEST_CODE_UPIPAYMENT, null);
Выбранное приложение UPI запускается, и все данные, которые я указал в URI, заполняются правильно. Затем я инициирую платеж, но платеж всегда не удается. Когда я использую приложения UPI как есть (без вызова из моего приложения) и использую те же значения, которые я использую для создания URL-адреса UPI, платеж проходит без каких-либо ошибок. Есть идеи, что могло вызвать сбой платежа, когда я вызываю приложения UPI из своего приложения?
Любая помощь / предложения будут высоко оценены!
Uri
. Если в каком-либо из ваших параметров URL-адреса есть какие-то странные символы, возможно, он неправильно проанализирован. Просто предположение, хотя - person JensV   schedule 30.10.2020