summaryrefslogtreecommitdiff
path: root/views/mods/mod_klarna/pay.phtml
diff options
context:
space:
mode:
authorDaniel Schmitzer <noreply@maennchen1.de>2024-08-22 08:29:52 +0000
committerDaniel Schmitzer <noreply@maennchen1.de>2024-08-22 08:29:52 +0000
commit523aa968834490bb881ec56a4085370c5d6d4cdc (patch)
tree31a7118dc0d9b18ae867635155658aa22a5eac58 /views/mods/mod_klarna/pay.phtml
parentba1c711c28ea40dae2dc8e8cb0ecc9684d13b71b (diff)
- Neues Klarna Modul rein
git-svn-id: https://[internal]/wordpress/plugins/wpsg4@8426 0d5edaf7-2b12-4e95-93f4-047927463d4b
Diffstat (limited to 'views/mods/mod_klarna/pay.phtml')
-rw-r--r--views/mods/mod_klarna/pay.phtml114
1 files changed, 114 insertions, 0 deletions
diff --git a/views/mods/mod_klarna/pay.phtml b/views/mods/mod_klarna/pay.phtml
new file mode 100644
index 0000000..79661d6
--- /dev/null
+++ b/views/mods/mod_klarna/pay.phtml
@@ -0,0 +1,114 @@
+<?php
+
+ declare(strict_types=1);
+
+ /**
+ * @author: daniel
+ * @date: 05.03.24
+ * @time: 07:20
+ */
+
+ namespace wpsgKlarna;
+
+ $view = $this->view['wpsg_mod_klarna'];
+
+ /** @var \wpsg_order $oOrder */
+ $oOrder = $view['oOrder'];
+
+ $authorize_arg = [
+ 'billing_address' => [
+ 'given_name' => $oOrder->getInvoiceFirstName(),
+ 'family_name' => $oOrder->getInvoiceName(),
+ 'email' => $oOrder->getCustomer()->getEMail(),
+ 'street_address' => $oOrder->getInvoiceStreet(),
+ 'postal_code' => $oOrder->getInvoiceZip(),
+ 'city' => $oOrder->getInvoiceCity(),
+ ]
+ ];
+
+?>
+
+<script>
+
+ window.klarnaAsyncCallback = () => {
+
+ const el_pppl_loading_blocker = document.getElementById('pppl_loading_blocker');
+
+ Klarna.Payments.init({
+ client_token: '<?php echo $view['client_token']; ?>'
+ });
+
+ Klarna.Payments.load({
+ container: '#wpsg_mod_klarna_widget'
+ }, {
+
+ }, function (res) {
+
+ console.log(res);
+
+ });
+
+ document.getElementById('<?php echo $view['button_id']; ?>').addEventListener('click', (event) => {
+
+ event.preventDefault();
+
+ if (el_pppl_loading_blocker) el_pppl_loading_blocker.style.display = 'block';
+
+ Klarna.Payments.authorize(
+ {}, {},
+ function(res) {
+
+ console.log(res);
+
+ if (res.authorization_token) {
+
+ try {
+
+ fetch('<?php echo $view['url_setAuthToken']; ?>', {
+ method: 'POST',
+ headers: {
+ "Content-Type": "application/json"
+ },
+ body: JSON.stringify({
+ 'authorization_token': res.authorization_token
+ })
+ }).then(response => {
+
+ return response.json();
+
+ }).then(data => {
+
+ if (data.success) {
+
+ location.href = data.href;
+
+ } else throw Error();
+
+ }).catch(e => {
+
+ if (el_pppl_loading_blocker) el_pppl_loading_blocker.style.display = 'none';
+
+ });
+
+ } catch (error) {
+
+ if (el_pppl_loading_blocker) el_pppl_loading_blocker.style.display = 'none';
+
+ }
+
+ } else {
+
+ if (el_pppl_loading_blocker) el_pppl_loading_blocker.style.display = 'none';
+
+ }
+
+ }
+ );
+
+ });
+
+ };
+
+</script>
+
+<script src="https://x.klarnacdn.net/kp/lib/v1/api.js" async></script>