首先感谢强大的知乎,参考文章:
https://www.zhihu.com/question/41709402
使用过友宝或者某些自动售货的无人售货机的同鞋们知道,友宝的二维码是一个二维码支持多种支付方式支付的。那么实现的思路是什么呢?
应该注意到,那个二维码不是普通的收款码,而是一个商品网页。
其实很简单,二维码的内容无非是字符串而已。但是一旦此字符串以http://开始,那么微信、支付宝等app就会使用内置的浏览器打开这个网址(它们认为它是网址了)。
然后,就简单了,只需要判断手机发送的http请求报文头的User-Agent字段的值包含MicroMessenger(微信)还是Alipay(支付宝)就好了,注意是包含不是等于,使用java的String的indexof()判断结果不是-1的话就包含了。
最后,只要返回的集成了对应支付方式的网页就可以了。