// import WindVane from '@ali/lib-windvane' import WindVane from '../../../../lib/windvane.common.js' // import Mtop from '@ali/lib-mtop' import Mtop from '../../../../lib/mtop.common.js' import { qsParse } from '../../security' import { get } from 'jsonuri' const location = window.location const query = qsParse() const lib = window['lib'] const mtopEnv = query.mtopEnv if (lib && /^pre/.test(mtopEnv)) { lib.mtop.config.subDomain = 'wapa' lib.mtop.config.mainDomain = 'taobao.com' lib.mtop.config.prefix = 'h5api' } interface MtopOptions { api: string v?: string data: any } function mtop (option: MtopOptions) { if (WindVane.isAvailable) { return mtopNativeRequest(option) } return mtopH5Request(option) } function mtopH5Request (option) { option = Object.assign({ // 通用参数 // api: '', // 必须 v: '1.0', // 必须 // data: {}, // 必须(注意1) // appKey: '12574478', // 非必须,默认不需要传 ecode: 0, // 必须(注意2) type: 'GET', // 非必须。请求类型(GET/POST),默认是GET dataType: 'jsonp', // 非必须。数据类型(jsonp/originaljsonp/json),默认jsonp timeout: 20000 // 非必须。接口超时设置,默认为20000ms }, option) if (mtopEnv === 'pre1') option.api += '.pre1' return Mtop.request(option).then(d => d.data).catch(d => { if (d.retType === 2) { // 统一处理未登录 location.href = `https://login.m.taobao.com/login.htm?redirectURL=${encodeURIComponent(location.href)}` } let [msgCode, msgInfo] = (get(d, 'ret/0') || '').split('::') return { msgCode, msgInfo } }) } function mtopNativeRequest (option = {}) { let params = Object.assign({ version: '1.0', method: 'get', bizParams: option['data'] }, option) return new Promise((resolve, reject) => { WindVane.call('Mtop', 'request', params, resolve, reject) }) } export default mtop