httpUtilNoLogin.js 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. const request = require('./WXHttpRequest.js');
  2. const url = require('./const.js');
  3. const util = require('./util.js');
  4. const httpRequestApi = require('./APIClient');
  5. const HOST = url.baseApi;
  6. function genAPIUrl(action) {
  7. return HOST + action;
  8. }
  9. // 登录
  10. function wxLogin(successcallback, failcallback) {
  11. wx.showToast({
  12. title: '加载中...',
  13. icon: 'loading',
  14. duration: 1500,
  15. mask: true
  16. })
  17. wx.login({
  18. success: function (res) {
  19. if (res.code) {
  20. // 获取openid
  21. console.log('登录登录登录登录code', res.code)
  22. let url = genAPIUrl('wx/user/openId')
  23. let data = {
  24. code: res.code
  25. }
  26. return request.getInstance().url(url).data(data).send().success(successcallback).fail(failcallback);
  27. } else {
  28. console.log('获取用户登录态失败!' + res.errMsg)
  29. }
  30. }
  31. })
  32. }
  33. // 获取原来的 openid 和 session_key
  34. /* 新增参数grade 需要给游客添加grade参数 */
  35. function getOpenidNoLogin(successcallback, failcallback,grade) {
  36. if (wx.getStorageSync('user')) {
  37. successcallback(
  38. wx.getStorageSync('user'),
  39. //分享小程序按钮
  40. wx.showShareMenu({
  41. withShareTicket: true
  42. })
  43. );
  44. return;
  45. }
  46. wxLogin(function (res) {
  47. console.log('wx.login',res)
  48. if (res.data.code == 200) {
  49. let sessionKey = res.data.data.session_key;
  50. let openId = res.data.data.openid;
  51. // successcallback()
  52. // wx.setStorageSync('uid', '111')
  53. let url = genAPIUrl('wx/user/register');
  54. request.getInstance().method('POST').url(url).header({
  55. 'content-type': 'application/json'
  56. }).data({
  57. openId,
  58. grade: grade? grade : 'PRIMARY_FIRST_GRADE'
  59. }).send().success((res) => {
  60. if (res.data.code === 200) {
  61. wx.setStorageSync('uid', res.data.data.uid)
  62. wx.setStorageSync('grade', res.data.data.grade)
  63. successcallback(res)
  64. }
  65. }).fail(() => {});
  66. }
  67. }, function (res) {
  68. failcallback(res);
  69. })
  70. }
  71. module.exports = {
  72. getOpenidNoLogin
  73. }