diff --git a/client/src/components/onboarding/DatatransCembraDeviceFingerprint.vue b/client/src/components/onboarding/DatatransCembraDeviceFingerprint.vue new file mode 100644 index 00000000..3ff87c27 --- /dev/null +++ b/client/src/components/onboarding/DatatransCembraDeviceFingerprint.vue @@ -0,0 +1,47 @@ + + + + + diff --git a/client/src/main.ts b/client/src/main.ts index 84ad3781..900b094d 100644 --- a/client/src/main.ts +++ b/client/src/main.ts @@ -9,6 +9,7 @@ import type { Router } from "vue-router"; import "../tailwind.css"; import App from "./App.vue"; import router from "./router"; +import { generateLocalSessionKey } from "@/statistics"; declare module "pinia" { export interface PiniaCustomProperties { @@ -24,6 +25,8 @@ if (appEnv.startsWith("prod")) { log.setLevel("trace"); } +generateLocalSessionKey(); + const commit = "VBV_VERSION_BUILD_NUMBER_VBV"; log.warn(`application started appEnv=${appEnv}, build=${commit}`); diff --git a/client/src/pages/onboarding/vv/CheckoutAddress.vue b/client/src/pages/onboarding/vv/CheckoutAddress.vue index 3b5b8049..ad72cc85 100644 --- a/client/src/pages/onboarding/vv/CheckoutAddress.vue +++ b/client/src/pages/onboarding/vv/CheckoutAddress.vue @@ -10,6 +10,8 @@ import { useRoute } from "vue-router"; import { useTranslation } from "i18next-vue"; import { getVVCourseName } from "./composables"; import ItToggleSwitch from "@/components/ui/ItToggleSwitch.vue"; +import DatatransCembraDeviceFingerprint from "@/components/onboarding/DatatransCembraDeviceFingerprint.vue"; +import { getLocalSessionKey } from "@/statistics"; const props = defineProps({ courseType: { @@ -178,6 +180,7 @@ const executePayment = async () => { address: address.value, product: props.courseType, with_cembra_invoice: withCembraInvoice.value, + device_fingerprint_session_key: getLocalSessionKey(), }).then((res: any) => { console.log("Going to next page", res.next_step_url); window.location.href = res.next_step_url; @@ -188,6 +191,7 @@ const executePayment = async () => {