Hey,
Just in last couple of days came up with this idea, and decided to mention it here too.
I published npm package:
https://www.npmjs.com/package/stellar-qr

to simplify generation of Stellar QR codes while there is still no standard for that.

Problem:
- No standard for stellar payment links / QR codes generation
- Many Stellar services ask for private key of a user, sooner or later it may lead to disaster, practice must be eradicated.

I'm aware of 3 wallets capable of scanning QR codes (if there are more please let me know in comments):
- Centaurus expects Stellar account in QR code, which is useful in limited number of cases and not enough for generic payments with memo and asset info
- Stargazer expects JSON structure, containing account, amount, memo and asset info (it's alright, but must be extended to support more operations and not as easy to be used as payment link)
- PapayaBot implements Stargazer format

There's been a discussion previously to come up with more generic format and be able to register link handlers, etc. I'm currently experimenting with it in my other project with codename StellarKey.

So my solution to all above is for everyone to use one shared lib to show user a payment widget, where he can choose his wallet and get QR code generated for his wallet. This is temporary solution, which will allow the community to experiment with different formats and later easily update all merchants to use single format adopted by wallets.

During the next week I'll integrate it into couple of my other projects to showcase how it works and publish here some screenshots.

We are using QR codes for the ClicPay function in the eSACCO app. Like your idea, will have a look at this and give feedback.

    andre Yes, thanks, you're prime candidate to have it integrated to make it easy for users. I'll make a frontend widget and post an example here

      Great idea, there should definitely be a standard for this.

      umbrel
      Great thanks, looking forward to see the frontend widget

      16 days later
      7 months later

      Hi ?

      It would be nice to integrate stellar authenticator.

      This is straightforward to do

      https://stellar-authenticator.org/?payment&amount=...&destination=...&memo=type:value

      This format is implemented via cosmic-lib and can easily get supported by any JavaScript based wallet; meaning you could easily support those wallets as well then.

      Edit: just saw the initial post is 7 months old. Now this makes more sense to me ?

        [deleted] Yes, there is now sep-0007 to cover links, I'll try to find time to update my package.

        MisterTicot This format is implemented via cosmic-lib and can easily get supported by any JavaScript based wallet; meaning you could easily support those wallets as well then.

        Yes, I did that for interoperability while there was no standard, your cosmic-lib is another attempt to do the same thing. Now it makes sense to aim for compatibility with the standard, otherwise wallets are not gonna implement it.

          umbrel

          I'd steer clear of sep-0007. It's bad enough in itself, but suggesting to use it for QR it outright crazy.

          QR codes become more difficult to recognize and decode the larger the data they represent gets. Having unstructured, and practically unbounded data, à la sep-0007 is just a recipe for disaster.

          Me and sacarlson did test years ago, and while my phone could decode 1000 character QR codes, his couldn't.
          These were not entry level phones.

          (Edit: Just to clarify, you're fighting the limits of optical resolution here, since you have a limited amount of screen space to display these codes in. This makes it harder for a camera to get a clear picture)

            dzham I understand that, but having it as an option doesn't hurt, if not for QRs, but at least for web links. If wallets start to register themselves as handlers it's a small win for me.

            [deleted] Bitcoin QRs are just an address, sometimes amount and rarely notes. It doesn't have any signatures or tens of parameters

            [deleted] it's possible and some wallets do that, but it's not a standard, therefore it becomes a problem, because everyone implements it differently

            @umbrel

            I'm going to implement SEP0007 in cosmic-lib, but it won't do because web wallets can't be properly supported by it: registering web handler only works fine with Firefox. Some have reported that it could works with chrome desktop as well, but for me it doesn't.

            This is the reason cosmic links have been designed as universal links. Utlimately, I believe that cosmic links are going to become the de-facto standard because it have been more carefully designed, I'm listening to critics and do what I can so it match everybody's need. The project is simply bigger than only having transactions-as-links and offer a coherent vision that lead to better security at cheap price for everyone.

            a year later