如何在 Android 应用程序中集成 BHIM 应用程序支付网关?

Posted

技术标签:

【中文标题】如何在 Android 应用程序中集成 BHIM 应用程序支付网关?【英文标题】:How to integrate BHIM app payment gateway in an Android App? 【发布时间】:2018-04-23 07:32:52 【问题描述】:

如何通过upi id将BHIM应用支付网关集成到android应用中?我不知道支付网关,我以前没有实现过支付网关。请帮助我如何集成android 应用中的支付网关?(我想通过 BHIM 应用集成支付)

【问题讨论】:

仔细阅读blog.deazzle.in/… 你会发现这个QnA易于使用***.com/questions/45995341/… 这个答案很有用***.com/questions/45995341/… 【参考方案1】:

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

【讨论】:

感谢 lalit..但是我将如何成为任何银行的合作伙伴..你能给我任何链接 您需要与银行联系,无论是个人还是通过电子邮件 获得UPI SDK后如何在我的android应用程序中实现它..你能给我代码 SDK 也会为您提供指导 以上链接已更改为mygov.in/digidhan/pages/pdf/sbi/…【参考方案2】:

您可以尝试 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 应用程序都能成功付款。 这样做的问题是,并非所有应用程序都返回事务是否成功。

我正在寻找一个解决方案,我可以强制打开 Only BHIM 而不是任何其他应用程序,因为 BHIM 正在给予适当的回应。

如果您想查看完整的实现:https://github.com/ShahMalavS/UPI-DeepLinked

【讨论】:

没有网站怎么办? 2020 年 10 月 29 日更新。这个特殊的东西已经停止工作。我会努力解决这个问题【参考方案3】:

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

【讨论】:

【参考方案4】:

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

如果您选择收款,请注意,UPI AFAIK 没有检查付款是否已实际存入您的帐户的机制。这意味着服务器无法检查交易是否发生或信息的真实性。您必须与您的银行核实他们是否提供 API 来执行此操作。

AFAIK ICIC Bank 和 Yes Bank 有一个 API。

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

【讨论】:

【参考方案5】:

如果您需要基于 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 Example、Easy UPI Payment、Merchant Account Creation

【讨论】:

以上是关于如何在 Android 应用程序中集成 BHIM 应用程序支付网关?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Android 应用程序中集成 Google Analytics

如何在我的 Android 应用程序中集成 Quick Blox 视频聊天服务?

如何通过android java发送google pay“请求”,如amazon bhim pay在线支付

如何在 Android App 中集成 OpenCV Manager

如何在 Android 中集成 PayU 货币网关? [关闭]

如何在我的 Android 应用程序中集成 google+ 登录?