From b6e4f30b58af1ccd7a899698968e2656d74d4947 Mon Sep 17 00:00:00 2001 From: Daniel Egger Date: Fri, 21 Jun 2024 12:01:03 +0200 Subject: [PATCH] Add device fingerprint code --- .../DatatransCembraDeviceFingerprint.vue | 47 +++++++++++++++++++ client/src/main.ts | 3 ++ .../pages/onboarding/vv/CheckoutAddress.vue | 4 ++ client/src/statistics.ts | 46 ++++++++++++++++++ cypress/e2e/checkout-vv/checkout.cy.js | 7 ++- ...cembra_fields.py => 0015_cembra_fields.py} | 6 +-- server/vbv_lernwelt/shop/models.py | 4 +- server/vbv_lernwelt/shop/views.py | 3 +- 8 files changed, 113 insertions(+), 7 deletions(-) create mode 100644 client/src/components/onboarding/DatatransCembraDeviceFingerprint.vue create mode 100644 client/src/statistics.ts rename server/vbv_lernwelt/shop/migrations/{0015_auto_cembra_fields.py => 0015_cembra_fields.py} (87%) 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 () => {