request.js 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  1. import util, { isFunc } from './util.js'
  2. class request {
  3. //本地的
  4. static BASE_GROUP_URL = 'http://hsay.clp.com:8024/'
  5. //本地的
  6. // static BASE_URL = 'http://localhost:8014/'
  7. // pre环境的
  8. static BASE_URL = 'https://oapi.shpr.top/'
  9. // 正式的
  10. // static BASE_URL = 'https://vapi.hsayi.com/'
  11. // @todo需要修改正式的域名
  12. static HEAD = {
  13. "Content-Type": "application/json",
  14. "SIGN":'',
  15. "NONCE":'',
  16. "TIMESTAMP":'',
  17. }
  18. static constructor() {
  19. }
  20. /**
  21. * 设置统一的异常处理
  22. */
  23. static setErrorHandler(handler) {
  24. this._errorHandler = handler
  25. }
  26. /**
  27. * GET类型的网络请求
  28. */
  29. static getRequest(url, data ) {
  30. let headerSign = this.getSignHead();
  31. return this.requestAll(url, data, headerSign, 'GET')
  32. }
  33. /**
  34. * POST类型的网络请求
  35. */
  36. static postRequest(url, data, notUseLoading, catchErrorFunc) {
  37. let headerSign = this.getSignHead();
  38. return this.requestAll(url, data, headerSign, 'POST', notUseLoading, catchErrorFunc)
  39. }
  40. static upload(url, name, path, ortherData, header = this.HEAD){
  41. return new Promise((resolve, reject) => {
  42. wx.uploadFile({
  43. url: url,
  44. header: header,
  45. filePath: path,
  46. name: name,
  47. formData: ortherData,
  48. success: (res => {
  49. res.data = JSON.parse(res.data);
  50. if (res.data.code === 200) {
  51. //200: 服务端业务处理正常结束
  52. resolve(res.data)
  53. } else {
  54. wx.showToast({
  55. title: res.data.msg,
  56. })
  57. //其它错误,提示用户错误信息
  58. if (this._errorHandler != null) {
  59. //如果有统一的异常处理,就先调用统一异常处理函数对异常进行处理
  60. this._errorHandler(res)
  61. }
  62. reject(res)
  63. }
  64. }),
  65. fail: (res => {
  66. if (this._errorHandler != null) {
  67. this._errorHandler(res)
  68. }
  69. wx.showToast({
  70. title: '网络异常请,稍后再试~',
  71. })
  72. reject(res)
  73. })
  74. })
  75. })
  76. }
  77. static getSignHead(){
  78. let timestamp = parseInt(Date.now()/1000);
  79. let nonce = Math.floor(Math.random() * 1000).toString()
  80. let signStr = timestamp+nonce+""+"U6Watb875eCiX4Lq";
  81. let sign = util.sha1(signStr).toString();
  82. let signHeadInfo = {
  83. "SIGN":sign,
  84. "NONCE":nonce,
  85. "TIMESTAMP":timestamp,
  86. "Content-Type": "application/json"
  87. }
  88. return signHeadInfo;
  89. }
  90. /**
  91. * 网络请求
  92. */
  93. static requestAll(url, data, header, method, notUseLoading, catchErrorFunc) {
  94. if (!notUseLoading) {
  95. getApp().showLoading()
  96. }
  97. return new Promise((resolve, reject) => {
  98. wx.request({
  99. url: url,
  100. data: data,
  101. header: header,
  102. method: method,
  103. success: (res => {
  104. if (res?.data.code === 200) {
  105. //200: 服务端业务处理正常结束
  106. let jsondata = JSON.stringify(res.data.data)
  107. let signStr = jsondata+"menu20220422";
  108. let sign = util.sha1(signStr).toString();
  109. if(sign != res.data.sign){
  110. wx.showModal({
  111. title: "提示",
  112. content: "数据走丢了"
  113. })
  114. return
  115. }
  116. resolve(res?.data)
  117. } else {
  118. if (catchErrorFunc) {
  119. if (isFunc(catchErrorFunc)) {
  120. catchErrorFunc(res?.data)
  121. }
  122. } else {
  123. wx.showToast({
  124. title: res?.data?.msg,
  125. icon: "none"
  126. })
  127. }
  128. //其它错误,提示用户错误信息
  129. if (this._errorHandler != null) {
  130. //如果有统一的异常处理,就先调用统一异常处理函数对异常进行处理
  131. this._errorHandler(res)
  132. }
  133. reject(res)
  134. }
  135. }),
  136. fail: (res => {
  137. if (this._errorHandler != null) {
  138. this._errorHandler(res)
  139. }
  140. wx.showToast({
  141. title: '网络异常请稍后',
  142. })
  143. reject(res)
  144. }),
  145. complete: _ => {
  146. getApp().hideLoading()
  147. }
  148. })
  149. })
  150. }
  151. }
  152. export default request