request.js 5.0 KB

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