如何在Android App中集成BHIM app支付网关?

时间:2017-11-10 06:01:57

标签: android android-studio payment-gateway payment upi

如何通过upi id在一个Android应用程序中集成BHIM app支付网关?
我不知道支付网关,我之前没有实现支付网关。

请帮帮我如何在Android应用程序中集成支付网关?(我想通过BHIM应用程序集成支付)

5 个答案:

答案 0 :(得分:4)

您可以尝试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

答案 1 :(得分:2)

您需要在应用程序中实现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

答案 2 :(得分:1)

您可以尝试使用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获得适当的响应。

答案 3 :(得分:0)

不是问题的答案。但是很重要,值得一提。

如果您选择从中进行付款,请注意,UPI AFAIK没有检查付款是否已实际存入您的帐户的机制。这意味着服务器无法检查交易是否曾经发生或信息的真实性。您将必须向银行查询是否提供了相应的API。

AFAIK ICIC Bank和Yes Bank具有API。

那该怎么办?向PayTM注册,并验证您的应用程序。 PayTM允许您限制付款方式,因此您只能指定UPI。同样在撰写本文时,UPI是免费的,没有限制

答案 4 :(得分:0)

如果您需要基于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 ExampleEasy UPI PaymentMerchant Account Creation