如何在 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