引入微信jssdk模块:npm install jweixin-module --save
import request from '@/utils/request'
var wx = require('jweixin-module')
function createOrder(data) { // 获取权限配置
return request({
url: '/api/open/wx/jsapi-config',
method: 'post',
data: {
url: window.location.href.split('#')[0]
}
})
}
const wxApi = {
/**
* [wxRegister 微信Api初始化]
* @param {Function} callback [ready回调函数]
*/
wxRegister(callback) {
// 注册微信权限验证
createOrder().then(({
code,
data,
msg
}) => {
let newData = {}
if (code === 200) {
newData = data
newData.debug = false
newData.jsApiList = ['chooseWXPay']
wx.config(newData)
}
}).catch((error) => {
console.log(error)
})
wx.ready((res) => {
// 如果需要定制ready回调方法
if (callback) {
callback()
}
})
},
/**
* [ShareAppMessage 微信支付]
* @param {[type]} option [分享信息]
* @param {[type]} success [成功回调]
* @param {[type]} error [失败回调]
*/
chooseWXPay(option) {
wx.chooseWXPay({
timestamp: option.timestamp, // 支付签名时间戳,注意微信jssdk中的所有使用timestamp字段均为小写。但最新版的支付后台生成签名使用的timeStamp字段名需大写其中的S字符
nonceStr: option.nonceStr, // 支付签名随机串,不长于 32 位
package: option.packageStr, // 统一支付接口返回的prepay_id参数值,提交格式如:prepay_id=\*\*\*)
signType: option.signType, // 签名方式,默认为'SHA1',使用新版支付需传入'MD5'
paySign: option.paySign, // 支付签名
appId: option.appId,
success: function(res) {
// 支付成功后的回调函数
option.success()
},
fail(res) {
console.log(res)
alert(res)
}
})
},
/**
* [ShareAppMessage 微信关闭]
*/
closeWindow() {
wx.closeWindow()
}
}
export default wxApi