request.js 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340
  1. // 正式
  2. // const apiHost = 'https://rabbitapi.d5c360.com/'
  3. // 测试
  4. // const apiHost = 'https://tapi.d5c360.com/'
  5. // // 新正式(未审批)
  6. //const apiHost = 'https://fohowapi.hiwavo.com/'
  7. // 新测试
  8. const apiHost = 'https://rapi.hiwavo.com/'
  9. function $get (url, params, success, fail) {
  10. wx.showNavigationBarLoading()
  11. var session = wx.getStorageSync('lbt_session_key')
  12. wx.request({
  13. url: apiHost + url,
  14. data: params,
  15. method: 'GET',
  16. header: {
  17. "content-type": "application/json",
  18. "terminal": 'mini-program',
  19. "Cookie": 'fohow_sid=' + session
  20. },
  21. success: function (res) {
  22. callBack(res, success, fail)
  23. },
  24. fail: function (res) {
  25. },
  26. complete: function (res) {
  27. wx.hideNavigationBarLoading()
  28. }
  29. })
  30. }
  31. function $post (url, params, success, fail) {
  32. wx.showNavigationBarLoading()
  33. var session = wx.getStorageSync('lbt_session_key')
  34. wx.request({
  35. url: apiHost + url,
  36. data: params,
  37. method: 'POST',
  38. header: {
  39. "content-type": "application/x-www-form-urlencoded",
  40. "terminal": 'mini-program',
  41. "Cookie": 'fohow_sid=' + session
  42. },
  43. success: function (res) {
  44. callBack(res, success, fail)
  45. },
  46. fail: function (res) {
  47. },
  48. complete: function (res) {
  49. wx.hideNavigationBarLoading()
  50. }
  51. })
  52. }
  53. function $put (url, params, success, fail) {
  54. wx.showNavigationBarLoading()
  55. var session = wx.getStorageSync('lbt_session_key')
  56. wx.request({
  57. url: apiHost + url,
  58. data: params,
  59. method: 'PUT',
  60. header: {
  61. "content-type": "application/x-www-form-urlencoded",
  62. "terminal": 'mini-program',
  63. "Cookie": 'fohow_sid=' + session
  64. },
  65. success: function (res) {
  66. callBack(res, success, fail)
  67. },
  68. fail: function (res) {
  69. },
  70. complete: function (res) {
  71. wx.hideNavigationBarLoading()
  72. }
  73. })
  74. }
  75. function $del (url, params, success, fail) {
  76. wx.showNavigationBarLoading()
  77. var session = wx.getStorageSync('lbt_session_key')
  78. wx.request({
  79. url: apiHost + url,
  80. data: params,
  81. method: 'DELETE',
  82. header: {
  83. "content-type": "application/x-www-form-urlencoded",
  84. "terminal": 'mini-program',
  85. "Cookie": 'fohow_sid=' + session
  86. },
  87. success: function (res) {
  88. callBack(res, success, fail)
  89. },
  90. fail: function (res) {
  91. },
  92. complete: function (res) {
  93. wx.hideNavigationBarLoading()
  94. }
  95. })
  96. }
  97. function callBack (res, success, fail) {
  98. if (res.statusCode === 200) {
  99. success(res)
  100. } else {
  101. if (fail) {
  102. fail()
  103. }
  104. switch (res.data.err_code) {
  105. case 'userNeedLogin':
  106. var pages = getCurrentPages()
  107. console.log(pages)
  108. var currentPage = pages[pages.length-1]
  109. var url = currentPage.route
  110. var options = currentPage.options
  111. var params = ''
  112. console.log(url)
  113. for (let a in options) {
  114. params += a + '=' +options[a] + '&'
  115. }
  116. if (params) {
  117. url = '/' + url + '?' + params
  118. } else {
  119. url = '/' + url
  120. }
  121. console.log(url)
  122. // wx.showToast({
  123. // title: 'getApp().globalData.try_login'+getApp().globalData.try_login,
  124. // icon: 'none',
  125. // duration: 2000
  126. // })
  127. // return false;
  128. if (getApp().globalData.try_login) {
  129. getApp().globalData.try_login = false
  130. wx.showToast({
  131. title: '尝试登陆失败,请到个人中心进行授权登陆',
  132. icon: 'none',
  133. duration: 2000
  134. })
  135. setTimeout(function(){
  136. wx.switchTab({
  137. url: '/pages/user/all/all'
  138. })
  139. },1000)
  140. } else {
  141. wx.login({
  142. success: res => {
  143. getApp().globalData.try_login = true;
  144. pageLogin(res, url)
  145. }
  146. })
  147. }
  148. break
  149. default:
  150. wx.showToast({
  151. title: res.data.err_msg,
  152. icon: 'none',
  153. duration: 2000
  154. })
  155. }
  156. }
  157. }
  158. // 登陆接口
  159. function login (res) {
  160. var url = 'xcx/login'
  161. var params = {
  162. code: res.code
  163. }
  164. var success = function (res) {
  165. wx.setStorageSync('lbt_session_key', res.data.session_key)
  166. wx.setStorageSync('lbt_session_time', Date.now())
  167. check()
  168. }
  169. $get(url, params, success)
  170. }
  171. // 获取授权信息
  172. function check () {
  173. var url = 'v1/user/check'
  174. var params = {
  175. }
  176. var success = function (res) {
  177. console.log('login:id=' + res.data.wx_user_id)
  178. getApp().globalData.wx_id = res.data.wx_user_id
  179. }
  180. $get(url, params, success)
  181. }
  182. function getAuthorize () {
  183. wx.getSetting({
  184. success: res => {
  185. var auth = res.authSetting
  186. if (!auth['scope.userInfo']) {
  187. setAuthorize()
  188. }
  189. }
  190. })
  191. }
  192. // 主动请求授权
  193. function setAuthorize () {
  194. wx.authorize({
  195. scope: 'scope.userInfo',
  196. success: res => {
  197. sendInfo()
  198. },
  199. fail: res => {
  200. getAuthorizePopup()
  201. }
  202. })
  203. }
  204. // 发送个人信息给后端
  205. function sendInfo (a, channel, invite, that) {
  206. var userInfo = a.detail
  207. var str = JSON.stringify(userInfo)
  208. updateWxUserInfo(str, channel, invite, that)
  209. }
  210. // 显示未授权提示弹框
  211. function getAuthorizePopup () {
  212. wx.showModal({
  213. title: '用户未授权',
  214. content: '如需正常使用FOHOW玖玖,请按确定并在授权管理中选中“用户信息”,然后点按确定。最后再重新进入小程序即可正常使用。',
  215. showCancel: false,
  216. success: function (res) {
  217. if (res.confirm) {
  218. openAuthorize()
  219. }
  220. }
  221. })
  222. }
  223. // 进入授权界面
  224. function openAuthorize () {
  225. wx.openSetting({
  226. success: function (res) {
  227. var auth = res.authSetting
  228. if (!auth['scope.userInfo']) {
  229. // getAuthorizePopup()
  230. } else {
  231. sendInfo()
  232. }
  233. }
  234. })
  235. }
  236. // 更新个人信息
  237. function updateWxUserInfo (val, channel, invite, that) {
  238. var url = 'xcx/authorize'
  239. var params = {
  240. userinfo: val,
  241. channel: channel,
  242. invite_id: invite
  243. }
  244. var success = function (res) {
  245. wx.hideLoading()
  246. that.setData({
  247. popup: false
  248. })
  249. that.getVersion(500)
  250. }
  251. $post(url, params, success)
  252. }
  253. function pageLogin (res, str) {
  254. var url = 'xcx/login'
  255. var params = {
  256. code: res.code
  257. }
  258. var success = function (res) {
  259. console.log('pageLogin',res);
  260. if(res.wx_user){
  261. wx.setStorageSync('lbt_session_key', res.data.session_key)
  262. wx.setStorageSync('lbt_session_time', Date.now())
  263. wx.redirectTo({
  264. url: str
  265. })
  266. }else{
  267. wx.showToast({
  268. title: '尝试登陆失败,请到个人中心进行授权登陆',
  269. icon: 'none',
  270. duration: 2000
  271. })
  272. }
  273. }
  274. $get(url, params, success)
  275. }
  276. function share (val) {
  277. var url = ''
  278. var image = ''
  279. var title = val.title || '欢迎来到FOHOW玖玖'
  280. if (val.path) {
  281. if (val.path.indexOf('?') > -1) {
  282. url = val.path + '&invite=' + getApp().globalData.wx_id
  283. } else {
  284. url = val.path + '?invite=' + getApp().globalData.wx_id
  285. }
  286. } else {
  287. url = '/pages/start/start?invite=' + getApp().globalData.wx_id
  288. }
  289. if (getApp().globalData.wx_id === 0) {
  290. title = '·' + title
  291. }
  292. if (val.imageUrl === undefined) {
  293. image = 'http://fohow.oss-cn-shenzhen.aliyuncs.com/xcx/share/sharemain.jpg'
  294. } else {
  295. image = val.imageUrl
  296. }
  297. console.log(title)
  298. return {
  299. title: title,
  300. path: url,
  301. imageUrl: image,
  302. success: function (res) {
  303. shareInfo(val)
  304. }
  305. }
  306. }
  307. function shareInfo (val) {
  308. var url = 'v1/share/info'
  309. var params = {
  310. sc: val.sc || 'xcx',
  311. ri: val.ri || 0,
  312. rp: val.rp || 0,
  313. to: 'group'
  314. }
  315. var success = function (val) {
  316. }
  317. $post(url, params, success)
  318. }
  319. module.exports = {
  320. $post: $post,
  321. $put: $put,
  322. $get: $get,
  323. $del: $del,
  324. login: login,
  325. getAuthorize: getAuthorize,
  326. updateWxUserInfo: updateWxUserInfo,
  327. sendInfo: sendInfo,
  328. share: share
  329. }