js_sdk_utils.js 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160
  1. import wxjssdk from "weixin-js-sdk";
  2. // import request from '../request.js'
  3. import request from "../common/request";
  4. import {
  5. baseUrl,
  6. appId
  7. } from "../common/config";
  8. // import {AesDecrypt} from '../utils/aes_util.js';
  9. // import CryptoJS from '../utils/aes_util.js';
  10. import CryptoJS from "./aes_util.js";
  11. // AesEncrypt
  12. // AesDecrypt
  13. // import { Decrypt, Encrypt } from './utils'
  14. //引用全局的变量
  15. // var appId = "wx43ca40dd2be85dd6";
  16. // var appId = "wx43ca40dd2be85dd6";
  17. // var appId = "wx658b72887c56f6b4";
  18. const requestJSSDK = () => {
  19. return new Promise((resolve, reject) => {
  20. let currenturl = encodeURIComponent(window.location.href);
  21. let options = {
  22. header: {
  23. Authorization: "",
  24. },
  25. };
  26. options.header["Authorization"] = `Bearer ${uni.getStorageSync("token")}`;
  27. uni.request({
  28. url: `${baseUrl}mp/api/signature2?url=${currenturl}`,
  29. method: "GET",
  30. header: options.header,
  31. success: (response) => {
  32. resolve(response?.data);
  33. },
  34. fail: (res) => {
  35. reject(res);
  36. },
  37. complete: (res) => {},
  38. });
  39. });
  40. };
  41. //访问得到参数
  42. export const wxconfig = async () => {
  43. //当前路径
  44. let response = await requestJSSDK();
  45. wxjssdk.config({
  46. // debug: true,
  47. appId: appId,
  48. timestamp: response.data.timestamp,
  49. nonceStr: response.data.nonceStr,
  50. signature: response.data.signature,
  51. jsApiList: [
  52. // 'checkJsApi', //判断当前客户端版本是否支持指定JS接口
  53. "chooseImage",
  54. 'updateAppMessageShareData', //分享接口
  55. // // 'chooseImageApi', //扫一扫接口
  56. "chooseWXPay", //微信支付
  57. ],
  58. });
  59. };
  60. // 选择图片方法
  61. export const chooseImageApi = () => {
  62. return new Promise((resolve, reject) => {
  63. wxconfig();
  64. wxjssdk.ready(() => {
  65. wxjssdk.chooseImage({
  66. count: 1, // 默认9
  67. sizeType: ["original", "compressed"], // 可以指定是原图还是压缩图,默认二者都有
  68. sourceType: ["album", "camera"], // 可以指定来源是相册还是相机,默认二者都有
  69. success: function(res) {
  70. console.log(res);
  71. resolve(res);
  72. // var localIds = res.localIds; // 返回选定照片的本地ID列表,localId可以作为img标签的src属性显示图片
  73. },
  74. cancel: function() {
  75. console.log("用户取消了");
  76. // throw new Error('Function not implemented.')
  77. // throw new Error('Function not implemented.')
  78. },
  79. });
  80. }),
  81. wxjssdk.error((res) => {
  82. console.log("config fail:", res);
  83. //config fail,抛出失败原因
  84. console.log("-------------失败------------");
  85. reject(res);
  86. });
  87. });
  88. };
  89. // 设置分享
  90. export const updateAppMessageShareData = (shareParam) => {
  91. return new Promise((resolve, reject) => {
  92. wxconfig();
  93. wxjssdk.ready(() => {
  94. // console.log("微信验证");
  95. wxjssdk.updateAppMessageShareData({
  96. title: shareParam.title, // 分享标题
  97. desc: shareParam.desc, // 分享描述
  98. link: shareParam.link, // 分享链接
  99. imgUrl: shareParam.imgUrl, // 分享图标
  100. success: function() {
  101. // 设置成功
  102. console.log('分享内容设置成功');
  103. },
  104. fail: function(res) {
  105. // 设置失败
  106. console.log('分享内容设置失败', res);
  107. }
  108. });
  109. }),
  110. wxjssdk.error((res) => {
  111. console.log("config fail:", res);
  112. //config fail,抛出失败原因
  113. console.log("-------------失败------------");
  114. reject(res);
  115. });
  116. });
  117. };
  118. // 支付的方法
  119. export const chooseWXPayApi = (payJson) => {
  120. return new Promise((resolve, reject) => {
  121. wxconfig();
  122. wxjssdk.ready(() => {
  123. // console.log("微信验证");
  124. wxjssdk.chooseWXPay({
  125. // appId: appId,
  126. timestamp: payJson.timeStamp,
  127. nonceStr: payJson.nonceStr,
  128. package: payJson.package,
  129. signType: payJson.signType,
  130. paySign: payJson.paySign,
  131. success: function(res) {
  132. resolve(res);
  133. },
  134. cancel: function(res) {
  135. resolve("已取消支付");
  136. },
  137. fail: function(res) {
  138. resolve("支付失败了");
  139. },
  140. });
  141. }),
  142. wxjssdk.error((res) => {
  143. console.log("config fail:", res);
  144. //config fail,抛出失败原因
  145. console.log("-------------失败------------");
  146. reject(res);
  147. });
  148. });
  149. };