app.js 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. //app.js
  2. const api = require('./config.js');
  3. App({
  4. host:api.host,
  5. onLaunch: function () {
  6. let self = this;
  7. // 登录
  8. wx.login({
  9. success: res => {
  10. wx.request({
  11. url: self.host,
  12. data:{
  13. act:"login",
  14. op:"ministart",
  15. code: res.code,
  16. client_type:"mini"
  17. },
  18. success:function(res){
  19. self.globalData.userId.openid = res.data.datas.openid;
  20. self.globalData.userId.unionid = res.data.datas.unionid;
  21. // 获取用户信息
  22. wx.getSetting({
  23. success: res => {
  24. if (res.authSetting['scope.userInfo']) {
  25. wx.getUserInfo({
  26. success: res => {
  27. self.globalData.userInfo = res.userInfo;
  28. self.globalData.userInfo.nickname = res.userInfo.nickName;
  29. let userInfo = Object.assign({}, self.globalData.userId, self.globalData.userInfo);
  30. wx.request({
  31. url: self.host,
  32. method: 'GET',
  33. data: {
  34. user_info: userInfo,
  35. act: "login",
  36. op: "wxauthen",
  37. // op: "wxauthor",
  38. client_type: "mini"
  39. },
  40. success: function (res) {
  41. // console.log(res.data.datas.HPHPSESSID);
  42. wx.setStorageSync('session_id', res.data.datas.HPHPSESSID);
  43. if (res.statusCode == 200) {
  44. let current_url = "/" + getCurrentPages()[0].route;
  45. wx.reLaunch({
  46. url: current_url
  47. });
  48. }
  49. else {
  50. }
  51. }
  52. })
  53. // 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回
  54. // 所以此处加入 callback 以防止这种情况
  55. if (this.userInfoReadyCallback) {
  56. this.userInfoReadyCallback(res)
  57. }
  58. }
  59. })
  60. }
  61. else {
  62. wx.authorize({
  63. scope: 'scope.userInfo',
  64. success: function (res) {
  65. wx.getUserInfo({
  66. success: res => {
  67. // 可以将 res 发送给后台解码出 unionId
  68. self.globalData.userInfo = res.userInfo;
  69. self.globalData.userInfo.nickname = res.userInfo.nickName;
  70. let userInfo = Object.assign({}, self.globalData.userId, self.globalData.userInfo);
  71. // console.log(userInfo);
  72. wx.request({
  73. url: self.host,
  74. method: 'GET',
  75. data: {
  76. user_info: userInfo,
  77. act: "login",
  78. op: "wxauthen",
  79. // op: "wxauthor",
  80. client_type: "mini"
  81. },
  82. success: function (res) {
  83. // console.log(res.data.datas.HPHPSESSID)
  84. wx.setStorageSync('session_id', res.data.datas.HPHPSESSID);
  85. if (res.statusCode == 200) {
  86. let current_url = "/" + getCurrentPages()[0].route;
  87. wx.reLaunch({
  88. url: current_url
  89. });
  90. }
  91. else {
  92. }
  93. }
  94. })
  95. // 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回
  96. // 所以此处加入 callback 以防止这种情况
  97. if (this.userInfoReadyCallback) {
  98. this.userInfoReadyCallback(res)
  99. }
  100. }
  101. })
  102. }
  103. });
  104. }
  105. }
  106. })
  107. }
  108. })
  109. // 发送 res.code 到后台换取 openId, sessionKey, unionId
  110. }
  111. })
  112. },
  113. globalData: {
  114. userId:{
  115. openid:'',
  116. unionid:''
  117. },
  118. userInfo: null,
  119. defaultAddress: null,
  120. fcodeErr: '',
  121. backLogin:false,
  122. arrayTree: [],
  123. fromSource: ''
  124. },
  125. setFromSource(fromSource) {
  126. this.globalData.fromSource = fromSource
  127. },
  128. checkDefaultAddress(address) {
  129. this.globalData.defaultAddress = address
  130. },
  131. clearAddress() {
  132. this.globalData.defaultAddress = null
  133. },
  134. setArrayTree(tree) {
  135. this.globalData.arrayTree = tree
  136. }
  137. })