request.js 9.5 KB

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