user.js 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  1. var config = require('./config.js');
  2. var http = require('./http.js');
  3. var common = require('./common.js');
  4. var storage = require('./storage.js');
  5. function login(callBack) {
  6. if (!callBack) {
  7. callBack = function () {};
  8. }
  9. var userInfo = storage.getUserInfo();
  10. if (!userInfo) {
  11. // uni.login({
  12. // success: (res) => {
  13. //const accountInfo = uni.getAccountInfoSync();
  14. // 发送 res.code 到后台换取 openId, sessionKey, unionId
  15. var postData = {
  16. appid: "wxddbcc3709026525e"
  17. };
  18. http.getRequest(config.API_USER_LOGIN, postData, function (res) {
  19. console.log(res);
  20. if (res.data.code == 200) {
  21. storage.setUserInfo(res.data.data.baseInfo);
  22. uni.setStorage({
  23. key: config.STORAGE_USER_TOKEN,
  24. data: res.data.data.baseInfo.token
  25. });
  26. callBack(res.data.data.baseInfo);
  27. } else {
  28. common.alert('登录提示', res.data.msg);
  29. callBack(null);
  30. }
  31. });
  32. // }
  33. // });
  34. }
  35. callBack(userInfo);
  36. }
  37. // 登录从本地找openid 没有的话从本地加载
  38. function getUserOpenId() {
  39. if (!uni.getStorageSync(config.STORAGE_OPEN_ID)) {
  40. uni.login({
  41. success: (res) => {
  42. // 发送 res.code 到后台换取 openId, sessionKey, unionId
  43. var postData = {
  44. wx_code: res.code
  45. };
  46. http.postApi(config.API_GET_OPEN_ID, postData, function (res) {
  47. if (res.data.code == 200) {
  48. uni.setStorageSync(config.STORAGE_OPEN_ID, res.data.data.wx_session_msg.openid);
  49. if (res.data.data.token) {
  50. uni.setStorage({
  51. key: config.STORAGE_USER_TOKEN,
  52. data: res.data.data.token
  53. });
  54. }
  55. }
  56. });
  57. }
  58. });
  59. }
  60. }
  61. function getUserInfo(callBack) {
  62. var userInfo = storage.getUserInfo();
  63. if (userInfo) {
  64. if (userInfo.is_new == 0) {
  65. if (callBack) {
  66. callBack(userInfo);
  67. }
  68. return;
  69. }
  70. uni.getUserInfo({
  71. success: function (res) {
  72. console.log(res);
  73. // 上报
  74. http.postApi(config.API_REPORT_USER_INFO, res.userInfo, function (rs2) {
  75. if (rs2.data.code == 200) {
  76. storage.setUserInfo(rs2.data.data.baseInfo);
  77. callBack(rs2.data.data.baseInfo);
  78. } else {
  79. common.alert('登录提示', rs2.data.msg);
  80. }
  81. });
  82. },
  83. fail: function (res) {
  84. console.log(res);
  85. common.alert('请授权', '商城需要获取您的用户信息', function () {
  86. uni.openSetting({
  87. success: function (rs) {}
  88. });
  89. });
  90. },
  91. complete: function (res) {}
  92. });
  93. }
  94. login(callBack);
  95. }
  96. // 支付
  97. function wxPay(order_sn, payParams, callBack) {
  98. common.loading();
  99. uni.requestPayment({
  100. timeStamp: payParams.timeStamp,
  101. nonceStr: payParams.nonceStr,
  102. package: payParams.package,
  103. signType: payParams.signType,
  104. paySign: payParams.paySign,
  105. success: function (rs) {
  106. uni.showToast({
  107. title: '支付成功',
  108. icon: 'success',
  109. duration: 1500
  110. });
  111. callBack(true);
  112. // http.postApi(config.API_USER_PAY_SUCCESS, { order_sn: order_sn }, function (rs2) {
  113. // console.log(rs2);
  114. // wx.hideLoading();
  115. // if (rs2.data.code == 200) {
  116. // // 跳转到订单页面
  117. // callBack(true);
  118. // } else {
  119. // common.alert('提示', rs2.data.msg);
  120. // }
  121. // })
  122. },
  123. fail: function (res) {
  124. console.log(res);
  125. // 支付失败 / 未完成支付
  126. // 跳转到订单页面
  127. common.simpleToast('未完成支付');
  128. callBack(false);
  129. },
  130. complete: function (res) {
  131. uni.hideLoading();
  132. }
  133. });
  134. }
  135. // 取消订单
  136. function cancelOrder(order_sn, callBack) {
  137. http.postApi(
  138. config.API_USER_CANCEL_ORDER,
  139. {
  140. order_sn: order_sn
  141. },
  142. function (res) {
  143. if (res.data.code == 200) {
  144. callBack();
  145. } else {
  146. common.alert('提示', res.data.msg);
  147. }
  148. }
  149. );
  150. }
  151. function loadCarNum() {
  152. http.postApi(config.API_USER_CART_NUM, {}, function (response) {
  153. if (response.data.code === 200) {
  154. if (response.data.data.cart_num) {
  155. uni.setTabBarBadge({
  156. index: 2,
  157. text: response.data.data.cart_num
  158. });
  159. } else {
  160. uni.removeTabBarBadge({
  161. index: 2
  162. });
  163. }
  164. }
  165. });
  166. }
  167. module.exports = {
  168. login: login,
  169. getUserInfo: getUserInfo,
  170. wxPay: wxPay,
  171. cancelOrder: cancelOrder,
  172. loadCarNum: loadCarNum,
  173. getUserOpenId: getUserOpenId
  174. };