主要是功能实现代码如下:
<template>
<div class="">
<div v-if="!loading">
订单信息展示
<button @click="toPage"></button>
</div>
</div>
</template>
<script>
export default {
components: {},
data() {
return {
loading: true,
detail: {},
};
},
computed: {},
watch: {},
methods: {},
async created() {
try {
document.querySelector("html").style.fontSize = "10px"; // 解决进入小票html 的font-size = 0 的问题
const { out_trade_no, sub_mch_id, check_code } = this.$route.query; // 解构微信传过来的参数字段
// 判断如果字段都有值
if (out_trade_no && sub_mch_id && check_code) {
// 发送请求,调用后端接口获取订单信息并展示
const detail = await getDetail({ out_trade_no });
this.detail = detail; // 订单信息赋值
this.loading = false;
}
} catch (error) {
this.loading = false;
}
},
mounted() {
const mchData = {
action: "onIframeReady",
displayStyle: "SHOW_CUSTOM_PAGE",
};
const postData = JSON.stringify(mchData);
window.parent.postMessage(postData, "*");
},
methods: {
toPage() {
// 跳转到指定的h5页面
const mchData = {
action: "jumpOut",
jumpOutUrl: `https://XXXX/XX?out_trade_no=${this.$route.query.out_trade_no}`,
}; // 跳转到指定的页面并携带参数
const postData = JSON.stringify(mchData);
window.parent.postMessage(postData, "*");
},
},
};
</script>
<style scoped>
</style>