From e79d127abaea638c07738111e3481d971e62d2a7 Mon Sep 17 00:00:00 2001 From: CarlNation Date: Tue, 30 Jul 2024 10:02:50 -0400 Subject: [PATCH] CSR-2130 CSR-2130 Afterpay on hop uses some credit card flow. We get credit card messages from HOP even for Afterpay. So only set the paymentMethod based on HOP messages if it is not already set. --- src/layouts/payment/payment.vue | 42 +++++++++++++++++---------------- 1 file changed, 22 insertions(+), 20 deletions(-) diff --git a/src/layouts/payment/payment.vue b/src/layouts/payment/payment.vue index c9add04a9..987caf56d 100644 --- a/src/layouts/payment/payment.vue +++ b/src/layouts/payment/payment.vue @@ -694,41 +694,43 @@ export default { if (event.data.indexOf("afterpayClosed") > -1) { this.backButtonAction(); } + if (event.data.indexOf("creditCardSubmit") > -1) { console.log(new Date() + ": Payment method credit card selected"); - this.dispatchStoreAction( - storeActions.SAVE_PAYMENT_METHOD_CHOICE, - paymentMethods.CREDIT_CARD, - false - ); + this.updatePaymentMethod(paymentMethods.CREDIT_CARD); this.setUIBlock(true); } + if (event.data.indexOf("afterpayPaymentReceived") > -1) { console.log(new Date() + ": Payment method afterpay selected"); - this.dispatchStoreAction( - storeActions.SAVE_PAYMENT_METHOD_CHOICE, - paymentMethods.AFTERPAY, - false - ); + this.updatePaymentMethod(paymentMethods.AFTERPAY); } + if (event.data.indexOf("applepayOpened") > -1) { console.log(new Date() + ": Payment method applepay selected"); - this.dispatchStoreAction( - storeActions.SAVE_PAYMENT_METHOD_CHOICE, - paymentMethods.APPLE_PAY, - false - ); + this.updatePaymentMethod(paymentMethods.APPLE_PAY); } + if (event.data.indexOf("showLoaderForPaypal") > -1) { console.log(new Date() + ": Payment method paypal selected"); - this.dispatchStoreAction( - storeActions.SAVE_PAYMENT_METHOD_CHOICE, - paymentMethods.PAYPAL, - false - ); + this.updatePaymentMethod(paymentMethods.PAYPAL); } } }, + updatePaymentMethod(paymentMethod) { + // if the payment method is not set yet, then set it based on what HOP sends us + if ( + store.getters.order.payment.piaType == paymentMethods.PAY_NOW || + store.getters.order.payment.piaType == paymentMethods.NONE + ) { + console.log(new Date() + " UPDATE PaymentMethod from HOP:" + paymentMethod); + this.dispatchStoreAction( + storeActions.SAVE_PAYMENT_METHOD_CHOICE, + paymentMethod, + false + ); + } + }, setIFrameListener() { window.addEventListener("message", (event) => this.handleIFrameContentWindowMessage(event)