wechath5.js 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183
  1. // +----------------------------------------------------------------------
  2. // | likeshop开源商城系统
  3. // +----------------------------------------------------------------------
  4. // | 欢迎阅读学习系统程序代码,建议反馈是我们前进的动力
  5. // | gitee下载:https://gitee.com/likeshop_gitee
  6. // | github下载:https://github.com/likeshop-github
  7. // | 访问官网:https://www.likeshop.cn
  8. // | 访问社区:https://home.likeshop.cn
  9. // | 访问手册:http://doc.likeshop.cn
  10. // | 微信公众号:likeshop技术社区
  11. // | likeshop系列产品在gitee、github等公开渠道开源版本可免费商用,未经许可不能去除前后端官方版权标识
  12. // | likeshop系列产品收费版本务必购买商业授权,购买去版权授权后,方可去除前后端官方版权标识
  13. // | 禁止对系统程序代码以任何目的,任何形式的再发布
  14. // | likeshop团队版权所有并拥有最终解释权
  15. // +----------------------------------------------------------------------
  16. // | author: likeshop.cn.team
  17. // +----------------------------------------------------------------------
  18. // #ifdef H5
  19. import weixin from "@/js_sdk/jweixin-module";
  20. import {
  21. isAndroid
  22. } from "./tools"
  23. import {
  24. getJsconfig,
  25. getCodeUrl,
  26. wechatLogin
  27. } from '@/api/app'
  28. import store from '../store'
  29. import Cache from './cache'
  30. class Wechath5 {
  31. //获取微信配置url
  32. signLink() {
  33. if (typeof window.entryUrl === 'undefined' || window.entryUrl === '') {
  34. window.entryUrl = location.href.split('#')[0]
  35. }
  36. console.log(location.href.split('#')[0])
  37. return isAndroid() ? location.href.split('#')[0] : window.entryUrl;
  38. }
  39. //微信sdk配置
  40. config() {
  41. return new Promise((resolve) => {
  42. getJsconfig().then(res => {
  43. if (res.code == 1) {
  44. let config = res.data.config
  45. weixin.config({
  46. debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
  47. appId: config.appId, // 必填,公众号的唯一标识
  48. timestamp: config.timestamp, // 必填,生成签名的时间戳
  49. nonceStr: config.nonceStr, // 必填,生成签名的随机串
  50. signature: config.signature, // 必填,签名
  51. jsApiList: config.jsApiList // 必填,需要使用的JS接口列表
  52. });
  53. resolve()
  54. }
  55. })
  56. })
  57. }
  58. //获取微信登录url
  59. getWxUrl() {
  60. getCodeUrl().then(res => {
  61. if (res.code == 1) {
  62. location.href = res.data.url
  63. }
  64. })
  65. }
  66. //微信授权
  67. authLogin(code) {
  68. return new Promise((resolve, reject) => {
  69. wechatLogin({
  70. code
  71. })
  72. .then(res => {
  73. if (res.code == 1) {
  74. store.commit("login", {
  75. token: res.data.token
  76. });
  77. resolve(res.data);
  78. }
  79. })
  80. });
  81. }
  82. //微信分享
  83. share(option) {
  84. weixin.ready(() => {
  85. const {
  86. shareTitle,
  87. shareLink,
  88. shareImage,
  89. shareDesc
  90. } = option
  91. weixin.updateTimelineShareData({
  92. title: shareTitle, // 分享标题
  93. link: shareLink, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
  94. imgUrl: shareImage, // 分享图标
  95. success: function(res) {
  96. // 设置成功
  97. }
  98. });
  99. // 发送给好友
  100. weixin.updateAppMessageShareData({
  101. title: shareTitle, // 分享标题
  102. link: shareLink, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
  103. imgUrl: shareImage, // 分享图标
  104. desc: shareDesc,
  105. success: function(res) {
  106. // 设置成功
  107. }
  108. });
  109. // 发送到tx微博
  110. weixin.onMenuShareWeibo({
  111. title: shareTitle, // 分享标题
  112. link: shareLink, // 分享链接,该链接域名或路径必须与当前页面对应的公众号JS安全域名一致
  113. imgUrl: shareImage, // 分享图标
  114. desc: shareDesc,
  115. success: function(res) {
  116. // 设置成功
  117. }
  118. })
  119. })
  120. }
  121. wxPay(opt) {
  122. return new Promise((reslove, reject) => {
  123. weixin.ready(() => {
  124. weixin.chooseWXPay({
  125. timestamp: opt
  126. .timeStamp, // 支付签名时间戳,注意微信jssdk中的所有使用timestamp字段均为小写。但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S字符
  127. nonceStr: opt.nonceStr, // 支付签名随机串,不长于 32 位
  128. package: opt.package, // 统一支付接口返回的prepay_id参数值,提交格式如:prepay_id=***)
  129. signType: opt.signType, // 签名方式,默认为'SHA1',使用新版支付需传入'MD5'
  130. paySign: opt.paySign, // 支付签名
  131. success: (res) => {
  132. reslove()
  133. },
  134. cancel: (res) => {
  135. reject()
  136. },
  137. fail: (res) => {
  138. reject()
  139. },
  140. });
  141. });
  142. })
  143. }
  144. getWxAddress() {
  145. return new Promise((reslove, reject) => {
  146. weixin.ready(() => {
  147. weixin.openAddress({
  148. success: (res) => {
  149. reslove(res)
  150. },
  151. })
  152. })
  153. })
  154. }
  155. getLocation() {
  156. return new Promise((reslove, reject) => {
  157. weixin.ready(() => {
  158. weixin.getLocation({
  159. type: 'gcj02',
  160. success: (res) => {
  161. reslove(res)
  162. },
  163. fail: (res) => {
  164. reject(res)
  165. }
  166. })
  167. })
  168. })
  169. }
  170. }
  171. export default new Wechath5()
  172. // #endif