目前是生成我自己的接口的二维码,扫码后根据User-Agent判断扫码的客户端是微信还是支付宝,再重定向。
通过解析支付宝收款码得到的是http协议的链接,可以重定向过去。但是解析微信收款码得到的是wxp协议,重定向不过去。
求助怎么解决
目前是生成我自己的接口的二维码,扫码后根据User-Agent判断扫码的客户端是微信还是支付宝,再重定向。
通过解析支付宝收款码得到的是http协议的链接,可以重定向过去。但是解析微信收款码得到的是wxp协议,重定向不过去。
求助怎么解决
微信收款码的协议是weixin://或wxp://,这是微信自定义的协议,不是标准的HTTP或HTTPS协议。因此,直接通过重定向是无法处理微信收款码的。
解决方案如下:
在生成二维码时,同时生成一个唯一的订单号,将订单号作为参数嵌入到微信和支付宝收款码的描述信息中,例如:
微信收款码描述信息:收款人:XXX,订单号:123456。
支付宝收款码描述信息:收款人:XXX,订单号:123456。
用户扫描二维码后,将订单号通过HTTP协议的方式发送给后台服务。
后台服务根据订单号查询订单信息,获取收款人的微信或支付宝账号信息。
根据不同的客户端类型,将收款人的微信或支付宝账号信息返回给客户端,客户端再根据收款人的账号信息打开微信或支付宝进行付款。
在这个方案中,重点是将唯一的订单号嵌入到收款码的描述信息中,这样可以通过订单号来确定收款人的账号信息。同时,通过HTTP协议发送订单号,可以避免微信收款码协议无法重定向的问题。