|
@@ -1041,6 +1041,18 @@ export const wxConfig = function (configInfo, userInfo, cb) {
|
|
|
})
|
|
|
}
|
|
|
|
|
|
+function isStringConvertibleToObject(str) {
|
|
|
+ try {
|
|
|
+ // 尝试将字符串解析为对象
|
|
|
+ const obj = JSON.parse(str)
|
|
|
+ // 如果解析成功,检查解析结果是否是对象或数组
|
|
|
+ return typeof obj === 'object' && obj !== null
|
|
|
+ } catch (e) {
|
|
|
+ // 如果解析失败,捕获错误并返回 false
|
|
|
+ return false
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
// 微信扫码
|
|
|
export const wxScanCode = function (scanType = ['qrCode', 'barCode']) {
|
|
|
return new Promise((resolve, reject) => {
|
|
@@ -1050,12 +1062,16 @@ export const wxScanCode = function (scanType = ['qrCode', 'barCode']) {
|
|
|
needResult: 1, // 默认为0,扫描结果由微信处理,1则直接返回扫描结果,
|
|
|
scanType: scanType,
|
|
|
success: res => {
|
|
|
- alert(res.resultStr)
|
|
|
- var result = res.resultStr // 当 needResult 为 1 时,扫码返回的结果
|
|
|
- var resultArr = result.split(',') // 扫描结果以逗号分割数组
|
|
|
- var codeVal = resultArr[resultArr.length - 1] // 获取数组最后一个元素,也就是最终的内容
|
|
|
- // var codeValStr = codeVal.split('=')
|
|
|
- resolve(codeVal)
|
|
|
+ if (typeof res.resultStr === 'object') {
|
|
|
+ resolve(res.resultStr?.scan_code?.scan_result || '')
|
|
|
+ } else if (isStringConvertibleToObject(res.resultStr)) {
|
|
|
+ resolve(JSON.parse(res.resultStr)?.scan_code?.scan_result || '')
|
|
|
+ } else {
|
|
|
+ var result = res.resultStr // 当 needResult 为 1 时,扫码返回的结果
|
|
|
+ var resultArr = result.split(',') // 扫描结果以逗号分割数组
|
|
|
+ var codeVal = resultArr[resultArr.length - 1] // 获取数组最后一个元素,也就是最终的内容
|
|
|
+ resolve(codeVal)
|
|
|
+ }
|
|
|
},
|
|
|
fail: res => {
|
|
|
reject('')
|