UPI Deeplinking from IONIC to BHIM – Ionic1 (WebIntent)

All we need is an easy explanation of the problem, so here it is.

Currently I am working on a Project which is implemented in Ionic 1 and AngularJs.

Now we are working to integrate it with BHIM UPI to perform In-App payment. I think we need to install IONIC Native Web Intent plugin in order to make web intent call to BHIM.

But I am fairly new to angularJs and Ionic. I have seen some of the questions related to this but those are implemented in Ionic3 and latest versions.

  1. UPI Deeplinking from IONIC to GooglePay does not work as expected
  2. DEEPLINK_HOST in ionic deeplink
  3. Deeplinking – Opening an Ionic App through another Ionic App

I have tried to achieve this by making Web Intent calls with help of this https://www.npmjs.com/package/@ionic-native/web-intent?activeTab=readme but with no luck. It’s giving Error message like below

ionic.bundle.min.js:150 Error: [$injector:unpr] http://errors.angularjs.org/1.5.3/$injector/unpr?p0=webIntentProvider%20%3C-%20webIntent%20%3C-%20PaymentComponent%20%3C-%20PaymentComponent
    at http://localhost:8100/js/ionic.bundle.min.js:40:416
    at http://localhost:8100/js/ionic.bundle.min.js:77:7
    at Object.d [as get] (http://localhost:8100/js/ionic.bundle.min.js:74:270)

EDIT :

I want to open BHIM UPI app from my Ionic App and able return success or failure status of transaction.

Any help or directions to achieve this will be highly appreciated.

How to solve :

I know you bored from this bug, So we are here to help you! Take a deep breath and look at the explanation of your problem. We have many solutions to this problem, But we recommend you to use the first method because it is tested & true method that will 100% work for you.

Method 1

There is no ‘webIntentProvider’ exists in ionic providers.

You’ve to remove ‘webIntent’ from your controllers injections. And use below code to open existing UPIs available in your mobile.

window.plugins.intentShim.startActivity(
                    {
                        action: window.plugins.intentShim.ACTION_VIEW,
                        url: urlIntent
                    },
                    function () { },
                    function () {
                        alert('Failed to open URL via Android Intent')
                    }
                );

It’ll show all available UPI providers which are installed in your mobile. Please go through documentation Deeplinking UPI for more details.

Cross check your package.json & confilg.xml, whether you installed above plugin in your app or not.

Note: Use and implement method 1 because this method fully tested our system.
Thank you 🙂

All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

Leave a Reply