first commit
This commit is contained in:
140
com/jssdk.js
Normal file
140
com/jssdk.js
Normal file
@@ -0,0 +1,140 @@
|
||||
import wx from 'weixin-js-sdk';
|
||||
import request from "./http.js";
|
||||
|
||||
export default {
|
||||
/* 判断是否在微信中 */
|
||||
isWechat: function() {
|
||||
var ua = window.navigator.userAgent.toLowerCase();
|
||||
|
||||
if (ua.match(/micromessenger/i) == 'micromessenger') {
|
||||
//console.log('是微信客户端')
|
||||
return true;
|
||||
} else {
|
||||
//console.log('不是微信客户端')
|
||||
//以下是我项目中所需要的操作其他,可以自定义
|
||||
uni.showModal({
|
||||
title: '提示',
|
||||
content: '请在微信浏览器中打开',
|
||||
showCancel: false,
|
||||
confirmColor: '#00875a',
|
||||
success: function(res) {
|
||||
if (res.confirm) {
|
||||
// console.log('用户点击确定');
|
||||
} else if (res.cancel) {
|
||||
// console.log('用户点击取消');
|
||||
}
|
||||
}
|
||||
});
|
||||
return false;
|
||||
}
|
||||
},
|
||||
/* 获取sdk初始化配置 */
|
||||
initJssdk: async function(callback) {
|
||||
//获取当前url然后传递给后台获取授权和签名信息
|
||||
var url = encodeURIComponent(window.location.href.split('#')[0]); //当前网页的URL,不包含#及其后面部分
|
||||
console.log(window.location.href.split('#')[0]);
|
||||
//这里调用的是后端的接口,后端去获取签名以及config里面所需的信息
|
||||
const {
|
||||
data
|
||||
} = await request.get('/com/wechat/jssdk', {
|
||||
url: ''
|
||||
})
|
||||
//返回需要的参数appId,timestamp,noncestr,signature等
|
||||
//注入config权限配置
|
||||
const {
|
||||
appId,
|
||||
timestamp,
|
||||
nonceStr,
|
||||
signature,
|
||||
debug,
|
||||
jsApiList
|
||||
} = data;
|
||||
wx.config({
|
||||
debug: debug, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
|
||||
// beta: true, // 文档没有这个参数,这个参数需设为true,才能调用那些微信还没有正式开放的新接口比如wx.invoke
|
||||
appId: appId, // 必填,公众号的唯一标识
|
||||
timestamp: timestamp, // 必填,生成签名的时间戳
|
||||
nonceStr: nonceStr, // 必填,生成签名的随机串
|
||||
signature: signature, // 必填,签名
|
||||
jsApiList: jsApiList
|
||||
});
|
||||
// 本地环境测试使用,里面信息是测试号的appid和签名
|
||||
// jWeixin.config({
|
||||
// debug: true,
|
||||
// appId: 'wx451eff21c6c0d938',
|
||||
// timestamp: 1659065946,
|
||||
// nonceStr: 'dzklsf',
|
||||
// signature: 'd2ada1c92409e14c9e720ed58056dcd3800ab0a7',
|
||||
// jsApiList: ['scanQRCode']
|
||||
// })
|
||||
// 本地环境测试结束
|
||||
|
||||
if (callback) {
|
||||
callback(data);
|
||||
}
|
||||
},
|
||||
//选择图片
|
||||
chooseImage: function(callback) {
|
||||
if (!this.isWechat()) {
|
||||
//console.log('不是微信客户端')
|
||||
return;
|
||||
}
|
||||
//console.log(data);
|
||||
this.initJssdk(function(res) {
|
||||
wx.ready(function() {
|
||||
wx.chooseImage({
|
||||
count: 1,
|
||||
sizeType: ['compressed'],
|
||||
sourceType: ['album'],
|
||||
success: function(rs) {
|
||||
callback(rs)
|
||||
}
|
||||
})
|
||||
});
|
||||
});
|
||||
},
|
||||
//微信支付
|
||||
wxpay: function(data, callback) {
|
||||
if (!this.isWechat()) {
|
||||
//console.log('不是微信客户端')
|
||||
return;
|
||||
}
|
||||
this.initJssdk(function(res) {
|
||||
WeixinJSBridge.invoke(
|
||||
'getBrandWCPayRequest', {
|
||||
appId: 'wxcf948c7b5a0863b1',
|
||||
timeStamp: data.timeStamp, // 支付签名时间戳,注意微信jssdk中的所有使用timestamp字段均为小写。但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S字符
|
||||
nonceStr: data.nonceStr, // 支付签名随机串,不长于 32 位
|
||||
package: data.package, // 统一支付接口返回的prepay_id参数值,提交格式如:prepay_id=\*\*\*)
|
||||
signType: data.signType, // 签名方式,默认为'SHA1',使用新版支付需传入'MD5'
|
||||
paySign: data.paySign, // 支付签名
|
||||
},
|
||||
function(res) {
|
||||
callback(res)
|
||||
}
|
||||
);
|
||||
|
||||
// wx.ready(function() {
|
||||
|
||||
|
||||
// wx.chooseWXPay({
|
||||
// timeStamp: data
|
||||
// .timeStamp, // 支付签名时间戳,注意微信jssdk中的所有使用timestamp字段均为小写。但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S字符
|
||||
// nonceStr: data.nonceStr, // 支付签名随机串,不长于 32 位
|
||||
// package: data
|
||||
// .package, // 统一支付接口返回的prepay_id参数值,提交格式如:prepay_id=\*\*\*)
|
||||
// signType: data.signType, // 签名方式,默认为'SHA1',使用新版支付需传入'MD5'
|
||||
// paySign: data.paySign, // 支付签名
|
||||
// success: function(res) {
|
||||
// // console.log(res);
|
||||
// callback(res)
|
||||
// },
|
||||
// fail: function(res) {
|
||||
// callback(res)
|
||||
// },
|
||||
// });
|
||||
// });
|
||||
});
|
||||
},
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user