12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- <template>
- <q-page>
- <div
- v-if="renderComponent"
- v-html="htmlContent"
- id="container"
- ref="pay"
- ></div>
- </q-page>
- </template>
- <script>
- import { onMounted, nextTick, ref } from "vue";
- import { orderPaymentParamStore } from "stores/orderPaymentParamStore";
- export default {
- name: "AlipayPage",
- setup() {
- const oStore = orderPaymentParamStore();
- const codeUrl = ref("");
- const orderId = ref("");
- const price = ref("");
- const htmlContent = ref("");
- const renderComponent = ref(true);
- function b64_to_utf8(str) {
- return window.atob(str);
- }
- const forceRerender = async () => {
- renderComponent.value = false;
-
- await nextTick();
-
- renderComponent.value = true;
- };
- onMounted(() => {
- var allParamsFromPreviousPage = oStore.getPaymentDetail;
- console.log("what I got from book form:");
- console.log(allParamsFromPreviousPage);
- codeUrl.value = allParamsFromPreviousPage.codeUrl;
- console.log("decoded");
- htmlContent.value = b64_to_utf8(codeUrl.value);
- console.log(htmlContent.value);
- orderId.value = allParamsFromPreviousPage.orderId;
- price.value = allParamsFromPreviousPage.price;
- forceRerender();
- var container = document.getElementById("container");
- container.innerHTML = htmlContent.value;
- document.write(htmlContent.value);
- forceRerender();
- });
- return {
- renderComponent,
- htmlContent,
- };
- },
- };
- </script>
|