request.js 7.7 KB

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