pull/15/head
parent
1596959583
commit
97547afc4d
@ -0,0 +1,9 @@ |
||||
import request from '../request/index.js'; |
||||
|
||||
export function prePay(data) { |
||||
return request({ |
||||
url: 'driver-api/applet/pay/prepay', |
||||
method: 'POST', |
||||
data, |
||||
}); |
||||
} |
@ -0,0 +1,261 @@ |
||||
/** |
||||
* Wechat v1.1.0 |
||||
* @Class Wechat |
||||
* @description jtools-wechat 1.1.0 wehcat第三方登录组件 |
||||
* @Author lidongtony |
||||
* @Date 2020-05-20 |
||||
* @Email lidongtony@qq.com |
||||
*/ |
||||
import api from "@/jtools/request/index"; |
||||
import $platform from "@/jtools/platform"; |
||||
import store from "@/jtools/store"; |
||||
import { |
||||
API_URL |
||||
} from "@/env"; |
||||
|
||||
export default { |
||||
eventMap(event) { |
||||
let map = ""; |
||||
switch (event) { |
||||
case "login": |
||||
map = "登录中..."; |
||||
break; |
||||
case "refresh": |
||||
map = "更新中..."; |
||||
break; |
||||
case "bind": |
||||
map = "绑定中..."; |
||||
break; |
||||
} |
||||
return map; |
||||
}, |
||||
|
||||
async login() { |
||||
let token = ""; |
||||
// #ifdef MP-WEIXIN
|
||||
token = await this.wxMiniProgramOauth("login"); |
||||
return token; |
||||
// #endif
|
||||
// #ifdef H5
|
||||
this.wxOfficialAccountOauth("login"); |
||||
// #endif
|
||||
// #ifdef APP-PLUS
|
||||
token = await this.wxOpenPlatformOauth("login"); |
||||
return token; |
||||
// #endif
|
||||
}, |
||||
async refresh() { |
||||
let token = ""; |
||||
// #ifdef MP-WEIXIN
|
||||
token = await this.wxMiniProgramOauth("refresh"); |
||||
return token; |
||||
// #endif
|
||||
// #ifdef H5
|
||||
this.wxOfficialAccountOauth("refresh"); |
||||
// #endif
|
||||
// #ifdef APP-PLUS
|
||||
token = await this.wxOpenPlatformOauth("refresh"); |
||||
return token; |
||||
// #endif
|
||||
}, |
||||
async bind() { |
||||
let token = ""; |
||||
// #ifdef MP-WEIXIN
|
||||
token = await this.wxMiniProgramOauth("bind"); |
||||
return token; |
||||
// #endif
|
||||
// #ifdef H5
|
||||
this.wxOfficialAccountOauth("bind"); |
||||
// #endif
|
||||
// #ifdef APP-PLUS
|
||||
token = await this.wxOpenPlatformOauth("bind"); |
||||
return token; |
||||
// #endif
|
||||
}, |
||||
|
||||
// #ifdef H5
|
||||
// 微信公众号网页登录&刷新头像昵称&绑定
|
||||
wxOfficialAccountOauth(event = "login") { |
||||
if ($platform.get() !== "wxOfficialAccount") { |
||||
uni.showToast({ |
||||
title: "请在微信浏览器中打开", |
||||
icon: "none" |
||||
}); |
||||
throw false; |
||||
} |
||||
let host = $platform.host(); |
||||
let payloadObject = { |
||||
host: host, |
||||
event, |
||||
token: (event !== "login" && store.getters.isLogin) ? uni.getStorageSync("token") : "" |
||||
}; |
||||
let payload = encodeURIComponent(JSON.stringify(payloadObject)); |
||||
let redirect_uri = encodeURIComponent(`${API_URL}user/wxOfficialAccountOauth?payload=${payload}`); |
||||
let oauthUrl = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=" + store.getters.initWechat.appid + |
||||
`&redirect_uri=${redirect_uri}&response_type=code&scope=snsapi_userinfo&state=1`; |
||||
uni.setStorageSync("lastPage", window.location.href); |
||||
window.location = oauthUrl; |
||||
}, |
||||
|
||||
// 微信公众号网页静默登录:临时登录获取OpenId 不入库不绑定用户
|
||||
wxOfficialAccountBaseLogin() { |
||||
let state = encodeURIComponent(window.location.href); |
||||
window.location = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=" + store.getters.initWechat.appid + |
||||
`&redirect_uri=${API_URL}user/wxOfficialAccountBaseLogin&response_type=code&scope=snsapi_base&state=${state}`; |
||||
throw "stop"; |
||||
}, |
||||
// #endif
|
||||
|
||||
// #ifdef APP-PLUS
|
||||
// 微信开放平台登录
|
||||
wxOpenPlatformOauth(event = "login") { |
||||
let that = this; |
||||
return new Promise((resolve, reject) => { |
||||
uni.login({ |
||||
provider: "weixin", |
||||
success: function(loginRes) { |
||||
if (loginRes.errMsg === "login:ok") { |
||||
let authResult = loginRes.authResult; |
||||
api("user.wxOpenPlatformOauth", { |
||||
authResult, |
||||
event |
||||
}, that.eventMap(event)).then(res => { |
||||
if (res.code === 1) { |
||||
resolve(res.data.token); |
||||
} else { |
||||
resolve(false); |
||||
} |
||||
}); |
||||
} |
||||
}, |
||||
fail: function(res) { |
||||
uni.showToast({ |
||||
title: "登录失败,请稍后再试" |
||||
}); |
||||
resolve(false); |
||||
api("common.debug", { |
||||
info: res |
||||
}); |
||||
}, |
||||
complete: function(res) {} |
||||
}); |
||||
}); |
||||
}, |
||||
// #endif
|
||||
|
||||
// #ifdef MP-WEIXIN
|
||||
// 微信小程序静默登录
|
||||
async getWxMiniProgramSessionKey(autoLogin = true) { |
||||
let sessionStatus = false; |
||||
let session_key = ""; |
||||
return new Promise((resolve, reject) => { |
||||
uni.checkSession({ |
||||
success(res) { |
||||
if (res.errMsg === "checkSession:ok") sessionStatus = true; |
||||
}, |
||||
complete() { |
||||
if (uni.getStorageSync("session_key") && sessionStatus && !autoLogin) { |
||||
resolve(uni.getStorageSync("session_key")); |
||||
} else { |
||||
uni.login({ |
||||
success: function(info) { |
||||
let code = info.code; |
||||
api("user.getWxMiniProgramSessionKey", { |
||||
code: code, |
||||
autoLogin: autoLogin |
||||
}).then(res => { |
||||
if (res.code === 1) { |
||||
uni.setStorageSync("session_key", res |
||||
.data.session_key); |
||||
if (autoLogin) { |
||||
if (res.data.token) { |
||||
resolve(res.data.token); |
||||
} else { |
||||
resolve(false); |
||||
} |
||||
} |
||||
resolve(res.data.session_key); |
||||
} else { |
||||
reject(res.msg); |
||||
} |
||||
}); |
||||
} |
||||
}); |
||||
} |
||||
} |
||||
}); |
||||
}); |
||||
}, |
||||
|
||||
// 微信小程序获取用户信息登录
|
||||
wxMiniProgramOauth(event = "login") { |
||||
let that = this; |
||||
let session_key = uni.getStorageSync("session_key"); |
||||
uni.showLoading({ |
||||
title: that.eventMap(event) |
||||
}); |
||||
return new Promise((resolve, reject) => { |
||||
uni.getUserProfile({ // 必须手动确认触发
|
||||
desc: "完善会员资料", // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写
|
||||
success: res => { |
||||
if (res.errMsg === "getUserProfile:ok") { |
||||
api("user.wxMiniProgramOauth", { |
||||
event, |
||||
session_key, |
||||
encryptedData: res.encryptedData, |
||||
iv: res.iv, |
||||
signature: res.signature, |
||||
}).then(res => { |
||||
console.log(res) |
||||
if (res.code === 1) { |
||||
resolve(res.data.token); |
||||
} else { |
||||
uni.removeStorageSync("session_key"); |
||||
that.getWxMiniProgramSessionKey(false); |
||||
resolve(false); |
||||
} |
||||
}); |
||||
} |
||||
}, |
||||
complete: res => { |
||||
uni.hideLoading(); |
||||
} |
||||
}); |
||||
}); |
||||
|
||||
}, |
||||
|
||||
// 小程序更新
|
||||
checkMiniProgramUpdate() { |
||||
if (uni.canIUse("getUpdateManager")) { |
||||
const updateManager = uni.getUpdateManager(); |
||||
updateManager.onCheckForUpdate(function(res) { |
||||
// 请求完新版本信息的回调
|
||||
if (res.hasUpdate) { |
||||
updateManager.onUpdateReady(function() { |
||||
uni.showModal({ |
||||
title: "更新提示", |
||||
content: "新版本已经准备好,是否重启应用?", |
||||
success: function(res) { |
||||
if (res.confirm) { |
||||
// 新的版本已经下载好,调用 applyUpdate 应用新版本并重启
|
||||
updateManager.applyUpdate(); |
||||
} |
||||
} |
||||
}); |
||||
}); |
||||
updateManager.onUpdateFailed(function() { |
||||
// 新的版本下载失败
|
||||
uni.showModal({ |
||||
title: "已经有新版本了哟~", |
||||
content: "新版本已经上线啦~,请您删除当前小程序,重新搜索打开哟~" |
||||
}); |
||||
}); |
||||
} |
||||
}); |
||||
} |
||||
}, |
||||
// #endif
|
||||
|
||||
|
||||
}; |
@ -0,0 +1,43 @@ |
||||
<template> |
||||
<view class="wp100 flex jc-c bc-fff " style="height: 100vh;"> |
||||
<view class="mt50 text-center flex ai-c" style="flex-direction: column;"> |
||||
<view style="width: 211rpx;" class="text-center"> |
||||
<image style="width: 211rpx;height: 222rpx;;" src="../../static/image/index/paysucess.jpg"></image> |
||||
</view> |
||||
<view style="width: 385rpx;" class="text-center"> |
||||
<view class="fw600 fs16 cor-000 mb10">支付成功</view> |
||||
<tetx class="fs14 cor-666">恭喜您,您已成功购买VIP课程,赶紧去学习吧!</tetx> |
||||
</view> |
||||
<button class="btn mt10" @click="goBack">去学习</button> |
||||
</view> |
||||
</view> |
||||
</template> |
||||
|
||||
<script> |
||||
export default{ |
||||
data(){ |
||||
return{ |
||||
|
||||
} |
||||
}, |
||||
methods:{ |
||||
goBack(){ |
||||
uni.switchTab({ |
||||
url:"/pages/index/index" |
||||
}) |
||||
} |
||||
} |
||||
} |
||||
</script> |
||||
|
||||
<style scoped> |
||||
.btn{ |
||||
width: 260rpx; |
||||
height: 80rpx; |
||||
line-height: 80rpx; |
||||
text-align: center; |
||||
color:#00B74F; |
||||
border: 2px solid #00B74F; |
||||
border-radius: 40rpx; |
||||
} |
||||
</style> |
After Width: | Height: | Size: 60 KiB |
After Width: | Height: | Size: 774 KiB |
Before Width: | Height: | Size: 3.0 KiB |
Loading…
Reference in new issue