微信公众号在调用扫一扫功能时,一维码(条形码)在直接返回结果时会在结果前带上EAN_8, EAN_13, CODE_25, CODE_39, CODE_128, UPC_A, UPC_E
之前公司公众号功能只有扫二维码,有一天突然要加扫一维码功能。
因为当时感觉没什么,在scanType里加个barCode就好了呀,
然后就发现事情永远不会有你想象的那么简单。大概二十天之后bug才来,
找了好一阵才发现是微信的问题
微信的扫一维码直接返回结果的话会在结果前加上CODE_128,
比如这个一维码上的信息是20180528,扫出来的就是CODE_128,20180528
解决起来还是异常简单的
wx.scanQRCode({ needResult : 1, // 默认为0,扫描结果由微信处理,1则直接返回扫描结果, scanType : [ "qrCode","barCode"], // 可以指定扫二维码还是一维码,默认二者都有 success : function(res) { var result = res.resultStr; if(result.includes('CODE_128')){ result = result.split(',')[1]; } });
被公司空调吹的感冒了,巨难受
——————————————————————————————20180529更新
在微信扫条形码时 返回不止有结果前加“CODE_128,”情况,在查询api,询问客服无果之后,
试验了一些条形码 发现微信会在直接返回的结果前加EAN_8, EAN_13, CODE_25, CODE_39, CODE_128, UPC_A, UPC_E,之一,目前如果不能明确一维码的类型,只能根据逗号进行判断并取后边的值 代码如下
wx.scanQRCode({ needResult : 1, // 默认为0,扫描结果由微信处理,1则直接返回扫描结果, scanType : [ "qrCode","barCode"], // 可以指定扫二维码还是一维码,默认二者都有 success : function(res) { var result = res.resultStr; if(result.includes(',')){ result = result.split(',')[1]; } });
另外说几句没有用的 支付宝就不会出现这种状况,扫到什么返回什么 开发者要的是就是直接返回结果,他丫的直接返回结果还给我改了结果值 神xx直接返回结果呦.............
有种微信很自大的感觉