Loosly couple deep-linking between two apps

I am trying to deep link between a merchant app and a bank app. The consumer from merchant app will complete product selection and opt for check-out. The merchant app should give option to the consumer to continue the payment through a list of bank apps, which support a particular payment network. This list of bank apps should not be hard-coded in the merchant app. But somehow the bank apps should put the info, that it supports the particular payment network,
in its Info.plist file. The merchant app should open the consumer-selected bank app passing the transaction amount, merchant code and merchant address. Once the bank app completes the payment processing, it should return back the transaction id, reference number back to the merchant app. Considering the
sandbox implementations in iOS, it appears to me that this is not possible in iOS.

Can a round-about solution be followed as below?


Using the CFBundleDocumentTypes, I mention a particular file extension type, e.g. “network1” in the bank apps’ Info.plist file as CFBundleTypeExtensions.
From the merchant app if I implicitly try to open a file of this type, it shows me the list of installed bank apps (with .“network1” in the bank apps’ Info.plist file).


Question:

  1. Can I pass the parameters to the destination bank app, by keeping these parameters in the file(getting opened)?
  2. Will the destination app be able to read these parameters( merchant code, merchant address, transaction amount) and continue processing the payments, following its own application flow?
  3. Will the bank app be able to return the results (transaction id, reference number etc. ) back to the merchant app?
  4. Will this approach be approved by Apple?

Replies

You have posted this question in the In App Purchase forum. But it does not relate to In App Purchases. I'm not sure what forum would be more suitable. Good luck!

follow this question, We have the same problom, and want to know the resolution.


the deep-back-link can cause a unstopable loop, and we want to disable it.