net.js 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. import CryptoJS from 'crypto-js'
  2. const TopDomain = 'hoolihome.com'
  3. export const commonParams = (language, userToken) => {
  4. language = language || 'cn'
  5. userToken = userToken || ''
  6. let params = {
  7. language, // 语言参数
  8. deviceType: 'web', // 接口调用来源参数
  9. deviceId: 'node', // 设备唯一标识码
  10. apiVersion: '1.4.3', // api版本号
  11. systemVersion: 'v10.8.0' // 操作系统及版本号
  12. }
  13. if (typeof window !== 'undefined') {
  14. // browser
  15. let { navigator } = window
  16. let systemInfo = {
  17. appCodeName: navigator.appCodeName || '',
  18. appName: navigator.appName || '',
  19. appVersion: navigator.appVersion || ''
  20. }
  21. params.deviceId = systemInfo.appCodeName + '_' + systemInfo.appName
  22. params.systemVersion = systemInfo.appVersion
  23. }
  24. if (userToken) {
  25. params.token = userToken
  26. }
  27. return params
  28. }
  29. export const paramsSign = (params, url) => {
  30. /* 参数签名 */
  31. const commonReg = new RegExp(TopDomain + '(:\\d+)?/common/')
  32. let key = '1ecb91284fffeec4686220a450596af4'
  33. if (commonReg.test(url)) {
  34. key = 'b15681f74461af9642ab5356fba7962b'
  35. }
  36. let allKeys = []
  37. let paramsLower = {}
  38. let sArr = []
  39. let res = ''
  40. for (let k in params) {
  41. let kLower = k
  42. allKeys.push(kLower)
  43. paramsLower[kLower] = ''
  44. if (params[k] && params[k] !== 'undefined') {
  45. paramsLower[kLower] = params[k]
  46. }
  47. }
  48. allKeys.sort()
  49. allKeys.forEach((v, i, a) => {
  50. sArr.push(`${v}=${paramsLower[v]}`)
  51. })
  52. sArr.push(`key=${key}`)
  53. res = sArr.join('&')
  54. res = CryptoJS.MD5(res).toString()
  55. return res.toLowerCase()
  56. }