关注公众号进行中

master
Sigo 4 years ago
parent f588163560
commit 4fc1384b49

@ -0,0 +1,30 @@
import {
service
} from "../../utils/service";
import {
localPath
} from "../api.js";
// 获取微信公众号access_token
export function getAccessToken() {
return service({
url: "/weixinApi" + "/cgi-bin/token?grant_type=client_credential&appid=wx3c108aae98b1433c&secret=9ed5097e93b5a0e909dbe2b347d068ac",
method: "get",
});
}
// 根据微信公众号access_token获取ticket
export function getTicket(accessToken, data) {
return service({
url: "/weixinApi" + "/cgi-bin/qrcode/create?access_token=" + accessToken,
method: "post",
data
});
}
// 通过ticket换取二维码
export function getQrCode(data) {
return service({
url: "/weixinMp" + "/cgi-bin/showqrcode?ticket=" + data,
method: "get",
responseType: "blob"
});
}

@ -0,0 +1,37 @@
<template>
<div>
<iframe src="https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx3c108aae98b1433c&redirect_uri=www.decaisoft.com&response_type=code&scope=snsapi_userinfo&connect_redirect=1#wechat_redirect" id="mobsf" scrolling="no" frameborder="0" style="border: 1px solid #ccc"></iframe>
</div>
</template>
<script>
export default {
data() {
return {
};
},
mounted() {
/**
* iframe-宽高自适应显示
*/
function changeMobsfIframe() {
const mobsf = document.getElementById('mobsf');
const deviceWidth = document.body.clientWidth;
const deviceHeight = document.body.clientHeight;
// mobsf.style.width = (Number(deviceWidth) - 240) + 'px'; //
// mobsf.style.height = (Number(deviceHeight) - 64) + 'px'; //
mobsf.style.width = '150px'; //
mobsf.style.height = '150px'; //
}
changeMobsfIframe()
window.onresize = function () {
changeMobsfIframe()
}
},
methods: {
},
}
</script>
<style scoped>
</style>

@ -106,12 +106,14 @@
<script> <script>
import ActiveImg from './activeImg' import ActiveImg from './activeImg'
import Tencent from './Tencent'
import Store from '@/components/mulStore/index' import Store from '@/components/mulStore/index'
import Project from '@/components/mulProject/index' import Project from '@/components/mulProject/index'
import { partten } from "@/utils/partten/index.js"; import { partten } from "@/utils/partten/index.js";
import { getAccessToken, getTicket, getQrCode } from "@/api/weixin/index.js";
export default { export default {
name: 'Form', name: 'Form',
components: { ActiveImg, Store, Project }, components: { ActiveImg, Tencent, Store, Project },
data() { data() {
return { return {
form: { form: {
@ -119,6 +121,7 @@ export default {
useStoreList: [], useStoreList: [],
projectList: [], projectList: [],
}, },
qrCode: null,
rules: { rules: {
couponName: [ couponName: [
{ required: true, message: '请输入优惠券名称', trigger: 'blur' }, { required: true, message: '请输入优惠券名称', trigger: 'blur' },
@ -176,10 +179,38 @@ export default {
], ],
imageUrl: [{ required: true, message: '请上传活动图片', trigger: ['blur', 'change'] }], imageUrl: [{ required: true, message: '请上传活动图片', trigger: ['blur', 'change'] }],
guaranteeMoney: [{ required: true, message: '请输入保证金', trigger: ['blur', 'change'] }], guaranteeMoney: [{ required: true, message: '请输入保证金', trigger: ['blur', 'change'] }],
qrCode: [{ required: true, message: '请关注公众号', trigger: ['blur', 'change'] }],
}, },
} }
}, },
created() {
this.fetchAccessToken()
},
methods: { methods: {
// ============================== ============================== //
// access_token
fetchAccessToken() {
getAccessToken().then(res => {
console.log('access_token', res);
if (res.expires_in == 7200) {
this.fetchTicket(res.access_token)
}
})
},
// access_tokenticket
fetchTicket(data) {
getTicket(data, { "expire_seconds": 1800, "action_name": "QR_SCENE", "action_info": { "scene": { "scene_id": 1800 } } }).then(res => {
console.log('ticket', res);
this.fetchQrCode(res.ticket)
})
},
// ticket
fetchQrCode(data) {
getQrCode(data).then(res => {
console.log('QrCode', window.URL.createObjectURL(res));
this.qrCode = window.URL.createObjectURL(res)
})
},
// ============================== ============================== // // ============================== ============================== //
// //
handleData(row) { handleData(row) {

@ -32,20 +32,21 @@ export default {
} }
}, },
created() { created() {
if (this.$route.params.id) { // this.getAuthorize();
this.active = 1 // if (this.$route.params.id) {
this.$nextTick(function () { // this.active = 1
this.$refs.edit.handleData(this.$route.params) // this.$nextTick(function () {
}); // this.$refs.edit.handleData(this.$route.params)
} else { // });
this.$nextTick(function () { // } else {
this.$refs.edit.handleData({ // this.$nextTick(function () {
couponNumber: 1, // this.$refs.edit.handleData({
useStoreList: [], // couponNumber: 1,
projectList: [], // useStoreList: [],
}) // projectList: [],
}); // })
} // });
// }
}, },
watch: { watch: {
$route(to, from) { $route(to, from) {
@ -87,6 +88,53 @@ export default {
}); });
} }
}, },
// =================================== code =================================== //
getAuthorize() {
//
// const isWechat = () => {
// let ua = window.navigator.userAgent.toLowerCase();
// return ua.match(/MicroMessenger/i) == 'micromessenger';
// }
//
// if(isWechat){
//(code--)
var str = this.getUrlParam("code"); //使historyhashthis.getUrlParam()
console.log('获取到了 ', str);
if (str) {
// (codecodeopenID)
// console.log('str',str);
// code openid
axios.get('你的url' + "/api/code",
{
params: {
code: str,
state: '123'
},
}
).then(response => {
console.log('response', response.data);
localStorage.setItem("openid", response.data.openid);// openid
})
} else {
var appid = 'wx3c108aae98b1433c' //appid;
var redirect_uri = window.location.href //code ;
var newRedirect = encodeURIComponent(redirect_uri); // 使
window.location.href = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=" + appid + "&redirect_uri=" + newRedirect + "&response_type=code&scope=snsapi_userinfo&state=123#wechat_redirect";
}
// }
},
//url
getUrlParam(name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //
var r = window.location.search.substr(1).match(reg); //
if (r != null) {
return unescape(r[2]);
}
return null; //
},
}, },
} }
</script> </script>

@ -1,9 +1,17 @@
import axios from "axios"; import axios from "axios";
import { Message, MessageBox } from "element-ui"; import {
Message,
MessageBox
} from "element-ui";
// import { getToken, removeToken, setToken } from "@/utils/token"; // import { getToken, removeToken, setToken } from "@/utils/token";
import { getCookie, delCookie } from "./utils.js"; import {
getCookie,
delCookie
} from "./utils.js";
import router from "../router/index.js"; import router from "../router/index.js";
import { name } from "../../config/dev.env.js"; import {
name
} from "../../config/dev.env.js";
let base = "/api"; let base = "/api";
let baseURL = base; let baseURL = base;
// 根据环境变量对host进行判断 // 根据环境变量对host进行判断
@ -15,7 +23,7 @@ axios.defaults.headers.post["Content-Type"] = "application/json;charset=UTF-8";
// const rLoading = this.openLoading(); // const rLoading = this.openLoading();
// 创建axios实例 // 创建axios实例
const service = axios.create({ const service = axios.create({
baseURL: baseURL, // baseURL: baseURL,
timeout: 15000 // 请求超时时间 timeout: 15000 // 请求超时时间
}); });
// request拦截器 // request拦截器
@ -148,4 +156,6 @@ service.interceptors.response.use(
} }
); );
// export default service; // export default service;
export { service }; export {
service
};

Loading…
Cancel
Save