Как интегрировать платежный шлюз приложения BHIM в приложение для Android?

Как интегрировать платежный шлюз приложения BHIM в приложение для Android через идентификатор upi?
Я понятия не имею о платежном шлюзе, я раньше не реализовывал платежный шлюз.

Пожалуйста, помогите мне, как интегрировать платежный шлюз в приложение для Android? (Я хочу интегрировать оплату через приложение BHIM)


person Sam    schedule 10.11.2017    source источник
comment
Внимательно прочитайте это blog.deazzle.in/   -  person Hemant Parmar    schedule 10.11.2017
comment
Вы можете найти этот QnA простым в использовании stackoverflow.com/questions/45995341/   -  person Suresh Kumar Shukla    schedule 21.12.2017
comment
Этот ответ полезен stackoverflow.com/questions/45995341/   -  person Suresh Kumar Shukla    schedule 21.12.2017


Ответы (5)


Вы можете попробовать приложение, поддерживаемое DeepLinking UPI. Таким образом, вы можете совершить платеж через любое приложение, поддерживаемое UPI (BHIM, Phonepe, Paytm и все банковские приложения UPI).

Код для диплинкинга выглядит следующим образом:

Uri uri = Uri.parse("upi://pay?pa=8866616231@upi&pn=Aayushi%20Shah&tn=Test%20for%20Deeplinking&am=1&cu=INR&url=https://mystar.co"); // missing 'http://' will cause crashed
Log.d(TAG, "onClick: uri: "+uri);
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivityForResult(intent,1);

Почти все приложения UPI успешно могут произвести платеж. Проблема в том, что не все приложения возвращаются независимо от того, была транзакция успешной или нет.

Я нахожу решение, в котором я могу принудительно открыть только BHIM, а не какое-либо другое приложение, поскольку BHIM дает правильный ответ.

Если вы хотите увидеть полную реализацию: https://github.com/ShahMalavS/UPI-DeepLinked

person Malav Shah    schedule 30.12.2017
comment
Что делать, если у меня нет сайта? - person Hemil; 14.06.2019
comment
Обновление от 29.10.2020. Эта конкретная вещь перестала работать. я постараюсь решить эту проблему - person Malav Shah; 29.10.2020

Вам необходимо внедрить UPI SDK в свое приложение. Некоторым банкам с поддержкой UPI разрешено действовать как PSP (поставщик платежных услуг), например Yes Bank, RBL, ICICI Bank, Axis Bank.

Вы должны сотрудничать с этим банком, и они предоставят вам SDK. Как только вы получите SDK, это будет легко, как подключи и играй.

Вы также можете прочитать о upi из

https://digidhan.mygov.in/pages/pdf/sbi/NPCI%20Unified%20Payment%20Interface.pdf

person Lalit Jadav    schedule 10.11.2017
comment
спасибо лалит..но как я могу стать партнером любого банка..можете ли вы дать мне какую-нибудь ссылку - person Sam; 10.11.2017
comment
Вам необходимо связаться с банком лично или по электронной почте - person Lalit Jadav; 10.11.2017
comment
После получения UPI SDK, как реализовать его в моем приложении для Android... можете ли вы предоставить мне код - person Sam; 14.11.2017
comment
SDK также предоставит вам руководство - person Lalit Jadav; 14.11.2017
comment
ссылка выше изменена на mygov.in/digidhan /страницы/pdf/sbi/ - person ked; 22.11.2019

Вы можете попробовать DeepLinking UPI, чтобы запустить BHIM из своего приложения.

Код для диплинкинга выглядит следующим образом:

Uri uri = Uri.parse("upi://pay?pa=payee_address&pn=payee_name&tn=transaction_name&am=1&cu=INR&url=url");//url with http or https
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
//Now magic starts here
intent.setClassName("in.org.npci.upiapp","in.org.npci.upiapp.HomeActivity");
startActivityForResult(intent,1);

Вы можете открыть любое конкретное приложение, используя его packageName и ClassName.

Теперь вы можете получать платежи, используя только BHIM. Вы можете получить правильный ответ, используя BHIM.

person Pratig    schedule 14.06.2018

Не ответ на вопрос. Но достаточно важный, чтобы его упомянуть.

Если вы решите принять платеж, обратите внимание, что UPI AFAIK не имеет механизма для проверки того, действительно ли платеж был зачислен на ваш счет. Это означает, что сервер не может проверить, была ли когда-либо транзакция или подлинность информации. Вам нужно будет уточнить в своем банке, предоставляют ли они для этого API.

AFAIK ICIC Bank и Yes Bank имеют API.

Что делать тогда? Зарегистрируйтесь в PayTM и проверьте свое приложение. PayTM позволяет вам ограничивать способы оплаты, поэтому вы можете указать только UPI. Также на момент написания UPI бесплатен без ограничений.

person Hemil    schedule 30.10.2020

Если вам нужна интеграция платежей на основе UPI, то проще всего использовать Intent

См. следующее намерение оплаты UPI

private fun onPayClick() {
    val uri: Uri = Uri.Builder().scheme("upi").authority("pay")
        .appendQueryParameter("pa", "your-merchant-vpa@xxx")
        .appendQueryParameter("pn", "your-merchant-name")
        .appendQueryParameter("mc", "your-merchant-code")
        .appendQueryParameter("tr", "your-transaction-ref-id")
        .appendQueryParameter("tn", "your-transaction-note")
        .appendQueryParameter("am", "your-order-amount")
        .appendQueryParameter("cu", "INR")
        .build()

    val intent = Intent(Intent.ACTION_VIEW)
    intent.data = uri
    if (intent.resolveActivity(packageManager) == null) {
        showMessage("No any payment app found to handle UPI payment")
    } else {
        startActivityForResult(intent, PAY_REQUEST_CODE)
    }
}

Теперь в onActivityResult получите детали транзакции

onActivityResult(requestCode: Int, resultCode: Int, intent: Intent?) {
    if (requestCode == PAY_REQUEST_CODE) {
        if (data != null) {
            // Get Response from activity intent
            val response = intent.getStringExtra("response")
        }
    }
}

Примечание. У вас должен быть аккаунт продавца, чтобы интегрировать это

Справочник по IMP: Пример Google Pay, Простой платеж UPI, Создание аккаунта продавца

person Sumit Jain    schedule 21.11.2020