Closed reeteshranjan closed 3 years ago
Submitting summary of my experiments of trying to extend the library for various UPI apps on Android.
Working Apps (19)
Apps that properly integrate to the point of sending back usable transaction data.
Amazon Pay, Axis Pay, BHIM Baroda Pay, BHIM, BHIM Cent UPI (Central Bank of India), Cointab, BHIM DCB UPI, Google Pay, iMobile, IndusPay, MahaUPI (Maharashtra Bank), Mobikwik, BHIM Oriental Pay, PayTM, Paywiz, Phone Pe, BHIM PSB, BHIM SBI Pay, Yes Pay
Did not work for me apps (10)
Apps that either do not understand the calls, or do not seem to support intents, or have unstable functionality, or do not send back usable transaction data post debit, or do not respond at all post debit.
Airtel Pay, IDFC UPI, IndianBank UPI, KBL UPI, KVB Pay, LVB Upaay, Mi Pay, RBL UPI, SyndUPI, UCO UPI
Heading towards rejected/Under trial (8):
These seemed to exhibit what one would think as temporary issues and would be tested further again. Issues range from not getting the SMS authentication going to payment not getting through.
Bandhan Bank, BOI UPI, CORP UPI, CSB Pay, Freecharge, Truecaller, UltraCash, Vijaya UPI
I completed the above study to end up with this:
Working Apps (21)
Amazon Pay, Axis Pay, BHIM Baroda Pay, BHIM, BHIM Cent UPI (Central Bank of India), Cointab, BHIM CORP UPI, BHIM DCB UPI, Freecharge, Google Pay, iMobile, IndusPay, MahaUPI (Maharashtra Bank), Mobikwik, BHIM Oriental Pay, PayTM, Paywiz, Phone Pe, BHIM PSB, BHIM SBI Pay, Yes Pay
Did not work for me apps (16)
Airtel Pay (#16 ), Bandhan Bank, BOI UPI (Bank of India), CSB Pay, IDFC UPI, IndianBank UPI, KBL UPI, KVB Pay, LVB Upaay, Mi Pay (#14 ), RBL UPI, SyndUPI, Truecaller (it's been persistently failing to do the SMS verification for me), UCO UPI, UltraCash, Vijaya UPI
There may be more apps on Play Store; but these are the ones that showed up when searching for BHIM/UPI.
Hey, thanks for the extensive details in the issue. And apologies for replying late. I would say let's take it one step at a time and maybe go for the 21 working apps initially only. What do you guys think? @reeteshranjan @pepsighan
The problem with that is removal of Airtel Pay app, which is a breaking change.
The problem with that is removal of Airtel Pay app, which is a breaking change.
Please do verify for yourself. More devices we could test and keep the supported list current, it would be something worthy of eyes-closed integration.
Just adding some official sorta list of who are supposed to be recognised apps/partners:
https://www.upichalega.com/upi-partners.php https://www.npci.org.in/upi-PSP&3rdpartyApps https://www.npci.org.in/upi-live-members https://www.sebi.gov.in/sebiweb/other/OtherAction.do?doRecognisedFpi=yes&intmId=43
@drenther Yeah, we can go incrementally with what is working best and any breaking change can be postponed for a major version when things settle down.
In the following comments I am documenting the detailed report on testing of all apps that will help reviewing the pull request I'm going to create
The code that detects these apps' package names is retained for avoiding repetitive work around recognising these apps and allowing further testing on other devices before ruling them out.
These are commented out while being retained in the list of valid apps in the commit for the upcoming pull request, so it's straightforward to enable them back and test further.
java.lang.SecurityException: Permission Denial
exceptionThe code that detects these apps' package names is retained for avoiding repetitive work around recognising these apps and allowing further testing on other devices before ruling them out.
These are commented out while being retained in the list of valid apps in the commit for the upcoming pull request, so it's straightforward to enable them back and test further.
These apps are mentioned in the various lists in the links shared earlier. However; they are not included in code for various reasons listed below, and are captured here so anyone else can see if they have a workaround/solution for the reasons mentioned and test them towards integrating.
Please wait for another commit tomorrow before reviewing this pull request. @drenther @pepsighan
I have completed my commits on this one. @drenther @pepsighan
In their latest release, Jio has added support for UPI payment. Did not test it out yet on Android. Adding here for tracking.
Please see and review https://github.com/drenther/upi_pay/pull/17.
See https://github.com/reeteshranjan/upi_pay/blob/master/APPS.md for latest verification status of a number of apps across android and ios.
For my project, I have been working on supporting several other apps available on at least Android today. For several apps it has been straight forward to support them after discovering their package names as returned by OS. I've 20+ apps (beyond those currently supported by upi_pay) supported in my version (not yet committed to my fork as I am continuing testing).
One major fundamental change that came out of this experimentation is that some apps do not like the URL encoding of
pa
. For example, for a givenpa
with valueabc@upi
, it gets encoded asabc%40upi
and some of the apps extracted it asabc 40upi
(space comes in for %) resulting in a failed transaction workflow. I changed the URI building to not use encoding for at least thepa
parameter. It's a decision that works for me as I can handle my own client code and maintaining it is possible.The question I have for the main developers is: is this project looking to integrate such work? If so, I'll create pull requests.