123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 |
- import settings from '../settings'
- import { getAuthen } from '../assets/util'
- import moment from 'moment'
- const noncestr = Math.random().toString(36).substring(2);
- const timestamp = +moment.utc();
- // 带Origin后缀的通过getter获取
- export const state = () => ({
- openIdOrigin: "oJR5R6gWNpGre5hfPXkFvcdBhIrE",
- accessTokenOrigin: "",
- unionIdOrigin: "",
- userInfo: {},
- stationId: settings.stationId,
- noncestr,
- timestamp,
- signature:"",
- })
- export const getters = {
- openId: (state) => {
- if (!state.openIdOrigin) {
- getAuthen()
- }
- return state.openIdOrigin
- },
- accessToken: (state) => {
- if (!state.accessTokenOrigin) {
- getAuthen()
- }
- return state.accessToken
- },
- unionId: (state) => {
- if (!state.unionIdOrigin) {
- getAuthen()
- }
- return state.unionIdOrigin
- },
- userInfo: (state) => state.userInfo,
- stationId: (state) => state.stationId,
- }
- export const mutations = {
- setOpenId(state, openId) {
- state.openIdOrigin = openId
- },
- setAccessToken(state, accessToken) {
- state.accessTokenOrigin = accessToken
- },
- setUnionId(state, unionId) {
- state.unionIdOrigin = unionId
- },
- setUserInfo(state, userInfo) {
- state.userInfo = userInfo
- },
- setSignature(state, signature) {
- state.state = signature
- }
- }
- export const actions = {
- async login({ commit, state, getters }, code) {
- const gzhAuthenRes = await this.$axios.$get("/getGzhAuthorizeInfo", {
- params: {
- code,
- stationId: getters.stationId,
- },
- })
- if (gzhAuthenRes.retCode !== 0) { return Promise.reject("拉取基础id失败") }
- const openId = gzhAuthenRes.data.openid;
- const accessToken = gzhAuthenRes.data.access_token;
- const unionId = gzhAuthenRes.data.unionid;
- commit("setOpenId", openId)
- commit("setAccessToken", accessToken)
- commit("setUnionId", unionId)
- const getUserInfoRes = await this.$axios.$get("/getGzhUserInfo", {
- params: {
- openId: openId,
- stationId: getters.stationId
- }
- })
- if (getUserInfoRes.retCode !== 0) { return Promise.reject("拉取用户信息失败") }
- commit("setUserInfo", getUserInfoRes.data)
- const saveUserInfoRes = await this.$axios.$post("/addAppUserInfo", {
- userType: "1",
- openId: openId,
- unionId: unionId,
- stationId: getters.stationId, //油站Id
- blogNickName: getUserInfoRes.data.nickname,
- sexFlag: getUserInfoRes.data.sex === 1 ? 'M' : 'F',
- blogProfilePhoto: getUserInfoRes.data.headimgurl
- })
- if (saveUserInfoRes.retCode !== 0) { return Promise.reject("存取用户信息失败") }
- return Promise.resolve("用户登录成功")
- },
- async getSdkConfig({commit,state, getters},jsApiList){
- const sdkSignRes = await this.$axios.$get("/getSignature",{
- params:{
- noncestr:state.noncestr,
- timestamp:state.timestamp,
- url:window.location.href.replace(/#(\w|\W){0,}/g, ''),
- stationId:state.stationId
- }
- })
- if(sdkSignRes.retCode !== 0){Promise.reject("获取Sdk签名错误")}
- commit("setSignature", sdkSignRes.data)
- return Promise.resolve({
- debug: settings.debug, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
- appId: settings.appId, // 必填,公众号的唯一标识
- timestamp: state.timestamp, // 必填,生成签名的时间戳
- nonceStr: state.noncestr, // 必填,生成签名的随机串
- signature:sdkSignRes.data,
- jsApiList // 必填,需要使用的JS接口列表
- })
- }
- }
|