request.js 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. import util, { isFunc } from './util.js'
  2. class request {
  3. //本地的
  4. // static BASE_URL = 'http://localhost:8014/'
  5. // pre环境的
  6. // 正式的
  7. static BASE_URL = 'https://menu-coupon-api.overseasdragon.com.cn/'
  8. // @todo需要修改正式的域名
  9. static HEAD = {
  10. "Content-Type": "application/json",
  11. "SIGN":'',
  12. "NONCE":'',
  13. "TIMESTAMP":'',
  14. "tenantId":1001
  15. }
  16. static constructor() {
  17. }
  18. /**
  19. * 设置统一的异常处理
  20. */
  21. static setErrorHandler(handler) {
  22. this._errorHandler = handler
  23. }
  24. /**
  25. * GET类型的网络请求
  26. */
  27. static getRequest(url, data ) {
  28. let headerSign = this.getSignHead();
  29. return this.requestAll(url, data, headerSign, 'GET')
  30. }
  31. /**
  32. * POST类型的网络请求
  33. */
  34. static postRequest(url, data, notUseLoading, catchErrorFunc) {
  35. let headerSign = this.getSignHead();
  36. return this.requestAll(url, data, headerSign, 'POST', notUseLoading, catchErrorFunc)
  37. }
  38. static upload(url, name, path, ortherData, header = this.HEAD){
  39. return new Promise((resolve, reject) => {
  40. wx.uploadFile({
  41. url: url,
  42. header: header,
  43. filePath: path,
  44. name: name,
  45. formData: ortherData,
  46. success: (res => {
  47. res.data = JSON.parse(res.data);
  48. if (res.data.code === 200) {
  49. //200: 服务端业务处理正常结束
  50. resolve(res.data)
  51. } else {
  52. wx.showToast({
  53. title: res.data.msg,
  54. })
  55. //其它错误,提示用户错误信息
  56. if (this._errorHandler != null) {
  57. //如果有统一的异常处理,就先调用统一异常处理函数对异常进行处理
  58. this._errorHandler(res)
  59. }
  60. reject(res)
  61. }
  62. }),
  63. fail: (res => {
  64. if (this._errorHandler != null) {
  65. this._errorHandler(res)
  66. }
  67. wx.showToast({
  68. title: '网络异常请,稍后再试~',
  69. })
  70. reject(res)
  71. })
  72. })
  73. })
  74. }
  75. static getSignHead(){
  76. let timestamp = parseInt(Date.now()/1000);
  77. let nonce = Math.floor(Math.random() * 1000).toString()
  78. let signStr = timestamp+nonce+""+"U6Watb875eCiX4Lq";
  79. let sign = util.sha1(signStr).toString();
  80. let signHeadInfo = {
  81. "SIGN":sign,
  82. "NONCE":nonce,
  83. "TIMESTAMP":timestamp,
  84. "Content-Type": "application/json",
  85. "tenantId":1001
  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