@@ -1,7 +1,7 @@ | |||||
<!-- | <!-- | ||||
* @Date: 2022-08-17 16:19:13 | * @Date: 2022-08-17 16:19:13 | ||||
* @LastEditors: JinxChen | * @LastEditors: JinxChen | ||||
* @LastEditTime: 2023-04-15 12:59:37 | |||||
* @LastEditTime: 2023-04-17 11:20:12 | |||||
* @FilePath: \TelpoH5FrontendWeb\README.md | * @FilePath: \TelpoH5FrontendWeb\README.md | ||||
* @description: 项目说明 | * @description: 项目说明 | ||||
--> | --> | ||||
@@ -365,4 +365,10 @@ update | |||||
`2023.4.15` | `2023.4.15` | ||||
update | update | ||||
- packageHome | - packageHome | ||||
- 修改 判断imei函数顺序 | |||||
- 修改 判断imei函数顺序 | |||||
## v1.0.43 | |||||
`2023.4.17` | |||||
update | |||||
- cardInfo | |||||
- 优化 话费查询,购买功能 |
@@ -5,7 +5,7 @@ | |||||
* @FilePath: \TelpoH5FrontendWeb\src\config\models.js | * @FilePath: \TelpoH5FrontendWeb\src\config\models.js | ||||
* @description: | * @description: | ||||
*/ | */ | ||||
export const VERSION_MODEL = '1.0.42F'; //版本号 | |||||
export const VERSION_MODEL = '1.0.43F'; //版本号 | |||||
export const IMAGE_URL = { | export const IMAGE_URL = { | ||||
production: 'http://zfb.ssjlai.com/web/', | production: 'http://zfb.ssjlai.com/web/', | ||||
test: 'http://zfb.ssjlai.com/web/', | test: 'http://zfb.ssjlai.com/web/', | ||||
@@ -1,12 +1,12 @@ | |||||
<!-- | <!-- | ||||
* @Date: 2022-04-15 10:22:36 | * @Date: 2022-04-15 10:22:36 | ||||
* @LastEditors: JinxChen | * @LastEditors: JinxChen | ||||
* @LastEditTime: 2023-03-14 11:42:57 | |||||
* @LastEditTime: 2023-04-17 11:03:49 | |||||
* @FilePath: \TelpoH5FrontendWeb\src\views\card-info\index.vue | * @FilePath: \TelpoH5FrontendWeb\src\views\card-info\index.vue | ||||
* @description: | * @description: | ||||
--> | --> | ||||
<template> | <template> | ||||
<div class="card-info-container"> | |||||
<div class="card-info-container" v-show="isShowPage"> | |||||
<van-nav-bar title="话费查询" | <van-nav-bar title="话费查询" | ||||
:left-arrow="false" | :left-arrow="false" | ||||
:border="true"> | :border="true"> | ||||
@@ -74,6 +74,7 @@ import APIWx from "@/api/wx"; | |||||
import { APIPay } from "@/api/pay"; | import { APIPay } from "@/api/pay"; | ||||
import { isNotNull } from "@/utils/index"; | import { isNotNull } from "@/utils/index"; | ||||
import APICore from "@/api/core"; | import APICore from "@/api/core"; | ||||
import AppId from "@/config/appId"; | |||||
export default { | export default { | ||||
name:'cardInfo', | name:'cardInfo', | ||||
inject: ["reload"], | inject: ["reload"], | ||||
@@ -92,7 +93,8 @@ export default { | |||||
isUnicom: null, //是否是联通 | isUnicom: null, //是否是联通 | ||||
}, | }, | ||||
isShowMenu: this.$route.query.isShowMenu, | isShowMenu: this.$route.query.isShowMenu, | ||||
params: {} | |||||
params: {}, | |||||
isShowPage: false, //是否显示整个页面 | |||||
} | } | ||||
}, | }, | ||||
computed: { | computed: { | ||||
@@ -109,6 +111,7 @@ export default { | |||||
this.getAuth(); | this.getAuth(); | ||||
this.getParams(); | this.getParams(); | ||||
this.getCardInfo(); | this.getCardInfo(); | ||||
}, | }, | ||||
methods: { | methods: { | ||||
// 获取core token | // 获取core token | ||||
@@ -127,30 +130,39 @@ export default { | |||||
let timeStamp = new Date().getTime(); | let timeStamp = new Date().getTime(); | ||||
let code = url.split("&")[0]; | let code = url.split("&")[0]; | ||||
if (isNotNull(code)) { | if (isNotNull(code)) { | ||||
this.$store.commit("wxAuthCode", `${code}`); | |||||
this.getOpenId(); | |||||
this.isShowPage = true; | |||||
this.getOpenId(code); | |||||
} else { | |||||
this.$dialog({ | |||||
message: '系统繁忙,请重新进入' | |||||
}) | |||||
} | } | ||||
} else { | |||||
this.getWxCode(); | |||||
} | } | ||||
this.params = {...params}; | this.params = {...params}; | ||||
} | } | ||||
}, | |||||
getWxCode() { | |||||
let params = this.params; | |||||
let commonUrl = process.env.VUE_APP_BASE_API; | |||||
let redUrl = encodeURIComponent(`${commonUrl}/h5-frontendweb/#/cardInfo?imei=${params.imei}&iccid=${params.iccid}`); | |||||
let url = `https://open.weixin.qq.com/connect/oauth2/authorize?appid=${AppId}&redirect_uri=${redUrl}&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect`; | |||||
//window.location.href = url; | |||||
}, | }, | ||||
// 根据code获取openId | // 根据code获取openId | ||||
getOpenId() { | |||||
let code = this.$store.getters.wxAuthCode; | |||||
getOpenId(code) { | |||||
let openId = this.$store.getters.openId; | let openId = this.$store.getters.openId; | ||||
if(isNotNull(openId)) { | |||||
console.log("已经存在openId"); | |||||
} else { | |||||
APIPay.getOpenId(code).then(res => { | |||||
let data= res.data; | |||||
if(data.code === 20000) { | |||||
this.$store.commit("openId", data.data.openId); | |||||
} | |||||
}) | |||||
} | |||||
APIPay.getOpenId(code).then(res => { | |||||
let data= res.data; | |||||
if(data.code === 20000) { | |||||
this.$store.commit("openId", data.data.openId); | |||||
} | |||||
}) | |||||
}, | }, | ||||
//获取小台风物联网卡信息 | //获取小台风物联网卡信息 | ||||
getCardInfo() { | getCardInfo() { | ||||
if( !this.isShowPage ) {return} | |||||
this.$toast.loading({ message: '查询中...' }); | this.$toast.loading({ message: '查询中...' }); | ||||
let reqBody = { | let reqBody = { | ||||
imei: this.$route.query.imei, | imei: this.$route.query.imei, | ||||
@@ -1,7 +1,7 @@ | |||||
<!-- | <!-- | ||||
* @Date: 2023-03-14 09:32:37 | * @Date: 2023-03-14 09:32:37 | ||||
* @LastEditors: JinxChen | * @LastEditors: JinxChen | ||||
* @LastEditTime: 2023-03-23 15:48:00 | |||||
* @LastEditTime: 2023-04-17 11:19:13 | |||||
* @FilePath: \TelpoH5FrontendWeb\src\views\package-buy\index.vue | * @FilePath: \TelpoH5FrontendWeb\src\views\package-buy\index.vue | ||||
* @description: | * @description: | ||||
--> | --> | ||||
@@ -311,6 +311,11 @@ export default { | |||||
setTimeout(() => { | setTimeout(() => { | ||||
this.wxPay(orderData); | this.wxPay(orderData); | ||||
}, 1000); | }, 1000); | ||||
} else if ( res.data.code !== 0){ | |||||
return this.$dialog.confirm({ | |||||
message: `请反馈给一线人员,\n${res.data.message}`, | |||||
showCancelButton: false | |||||
}) | |||||
} | } | ||||
let wxData = res.data.data; | let wxData = res.data.data; | ||||
let outTradeNo = wxData.out_trade_no; | let outTradeNo = wxData.out_trade_no; | ||||
@@ -318,54 +323,75 @@ export default { | |||||
//this.checkWxPayResult(outTradeNo); | //this.checkWxPayResult(outTradeNo); | ||||
//this.closeTime(); | //this.closeTime(); | ||||
// 调起微信支付收银台 | // 调起微信支付收银台 | ||||
wx.chooseWXPay({ | |||||
timestamp: wxData.timeStamp, // 支付签名时间戳,注意微信 jssdk 中的所有使用 timestamp 字段均为小写。但最新版的支付后台生成签名使用的 timeStamp 字段名需大写其中的 S 字符 | |||||
nonceStr: wxData.nonceStr, // 支付签名随机串,不长于 32 位 | |||||
package: wxData.package, // 统一支付接口返回的prepay_id参数值,提交格式如:prepay_id=\*\*\*) | |||||
signType: wxData.signType, // 微信支付V3的传入 RSA ,微信支付V2的传入格式与V2统一下单的签名格式保持一致 | |||||
paySign: wxData.paySign, // 支付签名 | |||||
success: function(res) { | |||||
console.log("微信支付成功::", res); | |||||
if(packageType === 1) { | |||||
// 加油包不用跳转,直接提示支付成功 | |||||
that.$toast.success({ | |||||
message: '支付成功' | |||||
}); | |||||
} else { | |||||
// 套餐订购,跳转查询页面 | |||||
that.$router.replace({ | |||||
name: "payResult", | |||||
query: { | |||||
outTradeNo: that.outTradeNo, | |||||
price: that.price, | |||||
rechargeUrl: data.rechargeUrl, | |||||
iccid: that.$route.query.iccid, | |||||
isAdmin: that.$route.query.isAdmin || false, | |||||
serialNo: that.$route.query.imei, | |||||
issue: that.packageIssue | |||||
} | |||||
}); | |||||
} | |||||
}, | |||||
fail: err => { | |||||
console.log("支付出错了::", err); | |||||
that.$dialog.confirm({ | |||||
title: "支付失败", | |||||
message: "出错了,请您联系管理员" | |||||
}); | |||||
}, | |||||
cancel: function(err) { | |||||
// 用户取消支付 | |||||
that.$dialog.confirm({ | |||||
message: "您取消了支付" | |||||
}); | |||||
} | |||||
}); | |||||
this.onWxPay(wxData,packageType); | |||||
}) | }) | ||||
.catch(error => { | .catch(error => { | ||||
console.log("error", error); | console.log("error", error); | ||||
}) | }) | ||||
}, | }, | ||||
onWxPay(data,packageType) { | |||||
let that = this; | |||||
function onBridgeReady() { | |||||
WeixinJSBridge.invoke( | |||||
"getBrandWCPayRequest", | |||||
{ | |||||
appId: AppId, //公众号ID,由商户传入 | |||||
timeStamp: data.timeStamp, //时间戳,自1970年以来的秒数 | |||||
nonceStr: data.nonceStr, //随机串 | |||||
package: data.package, | |||||
signType: data.signType, //微信签名方式: | |||||
paySign: data.paySign //微信签名 | |||||
}, | |||||
function(res) { | |||||
if (res.err_msg == "get_brand_wcpay_request:ok") { | |||||
// 使用以上方式判断前端返回,微信团队郑重提示: | |||||
//res.err_msg将在用户支付成功后返回ok,但并不保证它绝对可靠。 | |||||
if(packageType === 1) { | |||||
// 加油包不用跳转,直接提示支付成功 | |||||
that.$toast.success({ | |||||
message: '支付成功' | |||||
}); | |||||
} else { | |||||
that.$router.replace({ | |||||
name: "payResult", | |||||
query: { | |||||
outTradeNo: that.outTradeNo, | |||||
price: that.price, | |||||
rechargeUrl: data.rechargeUrl, | |||||
iccid: that.$route.query.iccid, | |||||
isAdmin: that.$route.query.isAdmin || false, | |||||
serialNo: that.$route.query.imei, | |||||
issue: that.packageIssue | |||||
} | |||||
}); | |||||
} | |||||
} else { | |||||
that.$dialog.confirm({ | |||||
message: "您取消了支付", | |||||
showCancelButton: false | |||||
}); | |||||
} | |||||
} | |||||
); | |||||
} | |||||
if (typeof WeixinJSBridge == "undefined") { | |||||
if (document.addEventListener) { | |||||
document.addEventListener( | |||||
"WeixinJSBridgeReady", | |||||
onBridgeReady, | |||||
false | |||||
); | |||||
} else if (document.attachEvent) { | |||||
document.attachEvent("WeixinJSBridgeReady", onBridgeReady); | |||||
document.attachEvent( | |||||
"onWeixinJSBridgeReady", | |||||
onBridgeReady | |||||
); | |||||
} | |||||
} else { | |||||
onBridgeReady(); | |||||
} | |||||
}, | |||||
// 跳转到支付宝花呗外部链接 | // 跳转到支付宝花呗外部链接 | ||||
aliPay(data) { | aliPay(data) { | ||||
console.log("选择了支付宝::", data); | console.log("选择了支付宝::", data); | ||||