我使用intent深度链接了我的Android原生应用程序中的UPI应用程序.我用各种UPI应用程序测试了这个,如BHIM,PhonePe,AXIS,UnionBank,Pockets等.
我创建了推送支付URI.我能够启动各种UPI应用程序.但是行为非常不一致.
“UPI://支付PA = XXXXX @ UPI和放大器; PN =收款人放大器; AM = 5.00安培; TN = Test_Transaction?”
>大多数应用在响应意图时都会响应.他们上台了.
>很少有应用程序正确显示付款页面的金额. Rest应用程序根本不显示页面.
PhonePe,Axis显示. BHIM没有显示付款页面
>付款仅通过PhonePay和Axis成功完成
> UPI付款成功完成后,UPI应用程序关闭,控制权返回到我的应用程序.但是响应数据始终为NulL.付款成功后,该应用程序的任何人都无法提供响应数据
>如果付款失败或我在UPI应用程序中取消付款或我没有输入正确的PIN并关闭UPI应用程序,大多数应用程序都不会返回响应数据.
>只有AXISPay返回了响应数据:
意图{(有额外的)}
任何人 – 任何评论?为什么这种不一致的行为?
令人惊讶的是,与BHIM app无法合作.
如果有人想要尝试,我可以分享AndroID代码.
解决方法:
它也适用于BHIM应用程序.使用此代码,它就像每个支持PSP的应用程序的魅力一样.
Note: Instead of using the “%” better to use “+” to replace the white space from the URL. That works better.
private String getUPIString(String payeeAddress, String payeename, String payeeMCC, String trxnID, String trxnRefID, String trxnNote, String payeeAmount, String currencyCode, String refUrl) { String UPI = "upi://pay?pa=" + payeeAddress + "&pn=" + payeename + "&mc=" + payeeMCC + "&tID=" + trxnID + "&tr=" + trxnRefID + "&tn=" + trxnNote + "&am=" + payeeAmount + "&cu=" + currencyCode + "&refUrl=" + refUrl; return UPI.replace(" ", "+");}
然后传递方法中的参数并以这种方式将字符串传递给Intent:
Intent intent = new Intent(); intent.setAction(Intent.ACTION_VIEW); intent.setData(Uri.parse(UPI)); Intent chooser = Intent.createChooser(intent, "Pay with..."); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) { startActivityForResult(chooser, 1, null); }
总结 以上是内存溢出为你收集整理的android – UPI App深度链接使用Intent – 不一致和错误的行为全部内容,希望文章能够帮你解决android – UPI App深度链接使用Intent – 不一致和错误的行为所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)