Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

iOS support, support for more apps, measures for ensuring production and experimentation modes #17

Merged
merged 6 commits into from
Jun 3, 2021

Conversation

reeteshranjan
Copy link
Collaborator

Support for several apps added including verification of end-to-end
working.

Apps found by searching for "BHIM" and "UPI" on play store and app
store and also from these links:

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

[Part of work to resolve issue #15]

Support for several apps added including verification of end-to-end
working.

Apps found by searching for "BHIM" and "UPI" on play store and app
store and also from these links:

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
@reeteshranjan
Copy link
Collaborator Author

reeteshranjan commented Sep 24, 2020

Testing done: ran the upi_pay example on an Android device and verified that all installed UPI apps got detected.

upi-pay-example-run

@drenther
Copy link
Owner

@pepsighan Should we remove support for MiPay, AirtelPay and Truecaller? And bump this into a major version.

lib/upi_pay.dart Outdated Show resolved Hide resolved
@drenther
Copy link
Owner

Hey @reeteshranjan What's you call on fixing the MiPay package Id i.e. having both the packages id added in this PR? Since, it will expanding the supported apps. It makes sense to have MiPay fiasco handled in as well.

@reeteshranjan
Copy link
Collaborator Author

Hey @reeteshranjan What's you call on fixing the MiPay package Id i.e. having both the packages id added in this PR? Since, it will expanding the supported apps. It makes sense to have MiPay fiasco handled in as well.

Yes will add a commit to include both package IDs. Have seen all discussion around the 2 MiPay packages.

iOS Support
- iOS method channel providing canLaunch and launch methods towards
  discovering UPI apps and launching them respectively.
- Added the custom schemes of the iOS apps in the example app's
  Info.plist to make iOS payment work in the example app.
- Changed the example app to show different views for Android and
  iOS. Android view is same as before. iOS view clearly shows that
  none of the apps can be picked by the user, as on iOS they are
  picked by iOS against the upi://pay? calls made to make the UPI
  transaction. The iOS view also shows that some of the apps that
  cannot be discovered as they don't implement any unique custom
  scheme may be invoked by iOS.
- Fixed the issues that were preventing the build for iOS. Example
  domain was one such aspect that was fixed in Android app for the
  example, too. Recreation of the package was used to fix some.
- Added logo images for iOS apps that implement 'upi' custom
  scheme and are launchable hence

Multiple apps support
- Play Store and App Store were searched to find an almost
  exhaustive list of apps and they were played with to figure
  out their current status of working. All the apps are added
  to the package along with their identity and status information.

Package behaviour and presentation changes
- Earlier, this package looked to assume ownership of UPI app
  functionality/working. However; with changing/evolving UPI apps
  ecosystem, this needs to be incorporated periodically.
- All the dynamics of the UPI apps' behaviour is now captured in
  the package, and though the default behaviour of the package is
  to present only the completely successfully working apps to the
  user, now the user can see all supported by the package currently
  if he/she requires to experiment for themselves. This avoids
  repetitive UPI apps verification work across the dev community.

Android Intent cleanups
- For discovering, the intent call should just resemble upi://pay?.
  There is no need for dummy parameters.
- Removed the commented out version of earlier intent preparation
  logic

Restructuring
- Existing structure changed such that upi_pay.dart serves as
  library wrapper only, exporting relevant modules, and existing
  and new code are moved into multiple unit modules, towards
  more maintainable code

Docs
- Added comments in public APIs, classes and enums and generated
  doc using dartdoc

Cleanups/Improvements
- Dependencies cleaned up in pubspec.yaml and moved to latest

UPI Applications Status README
- Contains the application status records as per the verifications
  done during April, 2021 (ended 19-Apr-2021)

Added new screen capture GIFs

Update README.md

- Changed README with more compact documentation indicating
  inclusion of iOS support and how the package can be used for both
  production and experimentation.
Removed dart:io usage for any platform failure on apps compiling
with it and trying to use any functions leading to Platform usage
crashes
Further enforcement of using universal_io
@reeteshranjan
Copy link
Collaborator Author

@drenther do you plan to merge this pull request? If not, it is OK if I submit this work as a new plugin with upi_pay duly credited and referenced? The point is that I want the work to reach in hands of more developers.

@drenther
Copy link
Owner

drenther commented Jun 3, 2021

I did not know of this PR being completed. I thought it was still WIP.

If you want I can move this package to a org and bring you in as a member in it. That way the community doesn't fragment and it comes under a platform where others can join in more easily.

Let me know what you think.

@reeteshranjan
Copy link
Collaborator Author

I did not know of this PR being completed. I thought it was still WIP.

If you want I can move this package to a org and bring you in as a member in it. That way the community doesn't fragment and it comes under a platform where others can join in more easily.

Let me know what you think.

I did not get that you need more information to know that this is not WIP; because there is no movement on any of my comments across all the relevant issues, so thought this package's development is not in your priority right now. Typically, I would expect some activity from package owners after updates in pull request and comments across relevant issues which could tell me either way - the package is looking for merges, or not.

Could you please look at all the changes and push any review comments out, so I know if this pull request is ready to merge or you expect any more changes?

@drenther
Copy link
Owner

drenther commented Jun 3, 2021

Sure will do. Overall the PR looks good to me. But the changes are quite massive and deviate a lot from what the initial package was. Since you made the massive effort of going through this effort. Would you like to be involved with maintaining the project. If you do I have already sent an invite to this repo and will add you as a publisher in pub.dev the same.

@reeteshranjan
Copy link
Collaborator Author

Sure will do. Overall the PR looks good to me. But the changes are quite massive and deviate a lot from what the initial package was. Since you made the massive effort of going through this effort. Would you like to be involved with maintaining the project. If you do I have already sent an invite to this repo and will add you as a publisher in pub.dev the same.

Sure I'll be more than happy to maintain the package and continue the work like done in this PR. I'm very close to testing UPI merchant payments next, which will be my next PR that should stabilise this package's utility and bring lot of clarity to all the users.

Accepted the invite. Thanks for inviting me!

@drenther
Copy link
Owner

drenther commented Jun 3, 2021

Glad to have you onboard. I wasn't active for personal reasons and would highly appreciate the help here. I have sent a typo filled mail on the email I found on your profile to ask for your pub.dev details to invite you as a publisher.

@reeteshranjan
Copy link
Collaborator Author

@drenther do you have any further process remaining to go before merging this PR?

@drenther
Copy link
Owner

drenther commented Jun 3, 2021

Looks good to me. May be we will do a docs revamp later. But I don't think this PR needs to remain open for that. Please go ahead and merge.

@reeteshranjan
Copy link
Collaborator Author

Looks good to me. May be we will do a docs revamp later. But I don't think this PR needs to remain open for that. Please go ahead and merge.

OK. Just in case you have not looked at the new README.md (it's completely revamped with more information about the UPI related findings etc.) and the new APPS.md with apps information, then please look at it. I did that work to get the documentation in sync with where the work on functionality in this PR has reached.

@drenther
Copy link
Owner

drenther commented Jun 3, 2021

Yea the README and it looks great and gives all the setup you need to use it in either case.

I was just referring to may be a doc site in future. Hence, I said I see no reason for the PR to stay open the README is all in sync.

@drenther drenther merged commit d278fd0 into drenther:master Jun 3, 2021
@reeteshranjan
Copy link
Collaborator Author

Yea the README and it looks great and gives all the setup you need to use it in either case.

I was just referring to may be a doc site in future. Hence, I said I see no reason for the PR to stay open the README is all in sync.

OK. Not sure how the API doc sites get built; but I did improve the dartdoc comments documentation and generated the documentation using dartdoc. It's in doc/ folder that got added with this. If that's what will create the API docs, then we have that covered, too.

@drenther
Copy link
Owner

drenther commented Jun 3, 2021

Thanks again for this behemoth of a PR and the massive effort and patience on this!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants