vue微信支付

17

vue微信支付

Vue微信支付详细描述

前言在实际的开发过程中,需要集成微信支付功能来实现在线支付。下面我们将一步步地讲解如何在Vue项目中实现微信支付。

一、监测用户是否授权首先,我们需要检查用户是否已经授权了微信公众号。可以通过以下方式进行检测:

```javascript// created() {

// 检查用户是否授权 wx.checkJsApi({

jsApiList: ['chooseWXPay'],

success: function(res) {

console.log('已授权');

},

fail: function(err) {

console.log('未授权');

}

});

// }

```

二、根据openId判断如果用户已经授权,我们需要根据openId来判断是否有支付记录。如果没有支付记录,则需要跳转到支付页面。

```javascript// created() {

// 检查用户是否授权 wx.checkJsApi({

jsApiList: ['chooseWXPay'],

success: function(res) {

console.log('已授权');

let oid = this.$route.query.oid;

if (oid) {

// 有支付记录,跳转到支付页面 this.$router.push({ path: '/payment', query: { oid } });

} else {

// 无支付记录,跳转到支付页面 this.$router.push({ path: '/payment' });

}

},

fail: function(err) {

console.log('未授权');

}

});

// }

```

三、获取openId如果用户没有支付记录,我们需要通过后台接口获取openId。

```javascript// created() {

// 检查用户是否授权 wx.checkJsApi({

jsApiList: ['chooseWXPay'],

success: function(res) {

console.log('已授权');

let oid = this.$route.query.oid;

if (!oid) {

// 无支付记录,获取openId this.getOpenId();

} else {

// 有支付记录,跳转到支付页面 this.$router.push({ path: '/payment', query: { oid } });

}

},

fail: function(err) {

console.log('未授权');

}

});

// }

// getOpenId() {

// 获取openId wx.login({

success: function(res) {

if (res.code) {

// 发送请求获取openId this.$axios.post('/api/getOpenId', { code: res.code })

.then((response) => {

let data = response.data;

console.log(data);

// 存储openId localStorage.setItem('openid', data.openid);

// 跳转到支付页面 this.$router.push({ path: '/payment' });

})

.catch((error) => {

console.error(error);

});

} else {

console.log('登录失败!');

}

},

fail: function(err) {

console.log('获取openId失败!');

}

});

// }

```

四、支付页面如果用户有支付记录或者获取了openId,我们需要跳转到支付页面。

```javascript// created() {

// 检查用户是否授权 wx.checkJsApi({

jsApiList: ['chooseWXPay'],

success: function(res) {

console.log('已授权');

let oid = this.$route.query.oid;

if (oid) {

// 有支付记录,跳转到支付页面 this.$router.push({ path: '/payment', query: { oid } });

} else {

// 无支付记录,获取openId this.getOpenId();

}

},

fail: function(err) {

console.log('未授权');

}

});

// }

// payment.vue

```

五、支付接口最后,我们需要在后台接口中实现支付功能。

```javascript// api.jsimport axios from 'axios';

const api = axios.create({

baseURL: '/api',

});

api.interceptors.push({

request(config) {

// 添加请求头 config.headers['Authorization'] = 'Bearer ' + localStorage.getItem('token');

return config;

},

});

export default api;

```

```javascript// payment.jsimport api from './api';

export function pay(oid, amount) {

return api.post('/payment', { oid, amount });

}

```

通过以上步骤,我们可以在Vue项目中实现微信支付功能。

支付vue

版权声明:除非特别标注,否则均为网络文章,侵权请联系站长删除。

上一篇 php微信充值流程图,Flutter 微信支付实现流程 、微信支付后 台 PHP 代码分析、以及在 Ios 中实现微信 支付....

下一篇 uniapp微信小程序--微信支付