wxAuthorized.js 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. import {
  2. wechatConfig,
  3. share
  4. } from '@/api/wx';
  5. import store from '../store';
  6. // 保存wx对象
  7. let weixinObj = require('jweixin-module');
  8. // 保存分享数据
  9. let shareData = '';
  10. // 保存注册返回appId数据
  11. let appId = '';
  12. //微信登录
  13. /**
  14. * @param {string} 当前页面地址信息
  15. */
  16. export function loginWinxin() {
  17. console.log("222")
  18. let pages, page, path;
  19. try {
  20. pages = getCurrentPages();
  21. // 获取跳转前页面
  22. page = pages[pages.length - 1];
  23. // 获取跳转前路由地址
  24. path = page.route;
  25. } catch (e) {
  26. console.log(e);
  27. //TODO handle the exception
  28. }
  29. // 判断是否在登录页
  30. if (path != 'pages/redirect/redirect') {
  31. weixinObj.ready(() => {
  32. console.log('2');
  33. // 调用
  34. try {
  35. console.log(shareData);
  36. weixinSq(shareData, path);
  37. } catch (e) {
  38. console.log(e);
  39. //TODO handle the exception
  40. }
  41. });
  42. }
  43. };
  44. // 微信授权登录
  45. function weixinSq(data, path) {
  46. // 微信授权后跳转页面
  47. try {
  48. let ul = encodeURIComponent(store.state.baseURL + store.state.urlFile + '/#/pages/redirect/redirect');
  49. // 打开微信授权页面
  50. let url =
  51. 'https://open.weixin.qq.com/connect/oauth2/authorize?appid=' +
  52. appId +
  53. '&redirect_uri=' +
  54. ul +
  55. '&response_type=code&scope=snsapi_userinfo&state=' +
  56. new Date().getTime() +
  57. '#wechat_redirect';
  58. window.location.href = url;
  59. } catch (e) {
  60. console.log(e);
  61. //TODO handle the exception
  62. }
  63. };
  64. // 微信注册
  65. export function weixindata(config) {
  66. //注册微信信息
  67. wechatConfig({
  68. url: window.location.href
  69. })
  70. .then(({
  71. data
  72. }) => {
  73. // 保存appId
  74. appId = data.appId
  75. // 微信信息配置
  76. weixinObj.config({
  77. debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
  78. appId: data.appId, // 必填,企业号的唯一标识,此处填写企业号corpid
  79. timestamp: data.timestamp, // 必填,生成签名的时间戳
  80. nonceStr: data.nonceStr, // 必填,生成签名的随机串
  81. signature: data.signature, // 必填,签名,见附录1
  82. jsApiList: data.jsApiList // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
  83. });
  84. weixinObj.ready((e) => {
  85. // 判断是否需要使用默认数据
  86. if (shareData == ''&&!config) {
  87. share({}).then(({
  88. data
  89. }) => {
  90. shareData = data.data
  91. shareLoad(config)
  92. });
  93. } else {
  94. //加载分享
  95. shareLoad(config)
  96. }
  97. })
  98. })
  99. .catch(e => {
  100. console.log(e);
  101. });
  102. }
  103. // 加载分享数据
  104. function shareLoad(config) {
  105. let mess;
  106. if (config) {
  107. mess = {
  108. link: config.link, // 分享链接
  109. imgUrl: config.imgUrl,
  110. desc: config.desc,
  111. title: config.title,
  112. success: config.success,
  113. fail: config.fail
  114. }
  115. } else {
  116. mess = {
  117. title: shareData.title,
  118. // link: ('http://www.99chanyelian.com/ccjy/#/pages/product/product?id=' + obj.goodsid + '&spread_uid=' + obj.uid).replace('?from=singlemessage', ''), // 分享链接
  119. imgUrl: shareData.img, // 分享图标
  120. desc: shareData.synopsis,
  121. success: function() {
  122. // uni.showModal({
  123. // title: '分享',
  124. // content: '分享成功',
  125. // showCancel: false,
  126. // success: res => {
  127. // console.log('分享成功回调接口');
  128. // },
  129. // fail: () => {},
  130. // complete: () => {}
  131. // });
  132. }
  133. }
  134. }
  135. // 获取仓库数据
  136. // 分享好友
  137. weixinObj.updateAppMessageShareData(mess);
  138. // 分享朋友圈
  139. weixinObj.updateTimelineShareData(mess)
  140. }
  141. export default {
  142. weixinObj,
  143. shareData,
  144. appId
  145. }