diff options
Diffstat (limited to 'views/mods/mod_paypalapi/overview_button.phtml')
| -rw-r--r-- | views/mods/mod_paypalapi/overview_button.phtml | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/views/mods/mod_paypalapi/overview_button.phtml b/views/mods/mod_paypalapi/overview_button.phtml new file mode 100644 index 0000000..dfe5490 --- /dev/null +++ b/views/mods/mod_paypalapi/overview_button.phtml @@ -0,0 +1,89 @@ +<?php + + declare(strict_types=1); + + /** + * @author: daniel + * @date: 13.06.24 + * @time: 14:48 + */ + + namespace wpsg; + +?> + +<?php GiroPayPalAPI::getInstance()->integrateSDK(); ?> + + +<div style="width:300px; float:right;"> + <div id="giropay-btn"></div> +</div> + +<script> + + paypal.Buttons({ + fundingSource: paypal.FUNDING.GIROPAY, + style: { + label: "pay", + }, + createOrder() { + + const form = document.getElementById('wpsg_form'); + + if (form.checkValidity()) { + + return fetch("<?php echo $this->getUrl(\wpsg_ShopController::URL_BASKET, 'wpsg_mod_paypalapi', 'giroPayCreateOrderFromSession', [ ], true); ?>", { + method: "POST", + headers: { + "Content-Type": "application/json", + }, + body: { } + }) + .then((response) => response.json()) + .then((order) => order.id); + + } else form.reportValidity(); + + }, + onApprove(data) { + + return fetch("<?php echo $this->getUrl(\wpsg_ShopController::URL_BASKET, 'wpsg_mod_paypalapi', 'giroPayApproveOrder', [], true); ?>", { + method: "POST", + headers: { + "Content-Type": "application/json", + }, + body: JSON.stringify({ + orderID: data.orderID + }) + }) + .then((response) => response.json()) + .then((orderData) => { + + location.href = orderData.order_done_url; + + // Successful capture! For dev/demo purposes: + // console.log('Capture result', orderData, JSON.stringify(orderData, null, 2)); + + // const transaction = orderData.order_paypal.purchase_units[0].payments.captures[0]; + + //console.log('Transaction Status:', transaction.status); + //console.log('Transaction ID:', transaction.id); + + }); + + }, + onCancel(data, actions) { + + console.log(`Order Canceled - ID: ${data.orderID}`); + + location.href = '<?php echo $this->getUrl(\wpsg_ShopController::URL_BASKET, 'wpsg_mod_paypalapi', 'giroPayCancelOrder', [], true); ?>'; + + }, + onError(err) { + + <?php if ($GLOBALS['wpsg_sc']->get_option('wpsg_debugModus') === "1") { ?>console.error(err);<?php } ?> + + } + }).render("#giropay-btn"); + +</script>
\ No newline at end of file |
