diff --git a/adyencheckoutaddonspa/acceleratoraddon/web/webroot/_ui/responsive/common/js/adyen-checkout/src/reducers/adyenConfigReducer.ts b/adyencheckoutaddonspa/acceleratoraddon/web/webroot/_ui/responsive/common/js/adyen-checkout/src/reducers/adyenConfigReducer.ts index 4c910e47..32508332 100644 --- a/adyencheckoutaddonspa/acceleratoraddon/web/webroot/_ui/responsive/common/js/adyen-checkout/src/reducers/adyenConfigReducer.ts +++ b/adyencheckoutaddonspa/acceleratoraddon/web/webroot/_ui/responsive/common/js/adyen-checkout/src/reducers/adyenConfigReducer.ts @@ -9,7 +9,6 @@ export const adyenConfigInitialState : AdyenConfigData = { immediateCapture: false, openInvoiceMethods: [], selectedPaymentMethod: "", - sessionData: undefined, shopperLocale: "", showBoleto: false, showComboCard: false, diff --git a/adyencheckoutaddonspa/acceleratoraddon/web/webroot/_ui/responsive/common/js/adyen-checkout/src/service/paymentService.ts b/adyencheckoutaddonspa/acceleratoraddon/web/webroot/_ui/responsive/common/js/adyen-checkout/src/service/paymentService.ts index ce7f1f42..c3cb6e47 100644 --- a/adyencheckoutaddonspa/acceleratoraddon/web/webroot/_ui/responsive/common/js/adyen-checkout/src/service/paymentService.ts +++ b/adyencheckoutaddonspa/acceleratoraddon/web/webroot/_ui/responsive/common/js/adyen-checkout/src/service/paymentService.ts @@ -11,6 +11,7 @@ export interface PlaceOrderResponse { executeAction?: boolean, paymentsAction?: PaymentAction, paymentsResponse?: PaymentResponseData, + paymentDetailsResponse?: PaymentResponseData, error?: string, errorFieldCodes?: string[] orderNumber?: string @@ -61,7 +62,8 @@ export class PaymentService { success: true, executeAction: placeOrderData.executeAction, paymentsAction: placeOrderData.paymentsAction, - orderNumber: placeOrderData.orderNumber + orderNumber: placeOrderData.orderNumber, + paymentsResponse: placeOrderData.paymentDetailsResponse } }) .catch((errorResponse: AxiosError): PlaceOrderResponse | void => { diff --git a/adyencheckoutaddonspa/acceleratoraddon/web/webroot/_ui/responsive/common/js/adyen-checkout/src/types/adyenConfigData.ts b/adyencheckoutaddonspa/acceleratoraddon/web/webroot/_ui/responsive/common/js/adyen-checkout/src/types/adyenConfigData.ts index 3b993261..08ca9c7b 100644 --- a/adyencheckoutaddonspa/acceleratoraddon/web/webroot/_ui/responsive/common/js/adyen-checkout/src/types/adyenConfigData.ts +++ b/adyencheckoutaddonspa/acceleratoraddon/web/webroot/_ui/responsive/common/js/adyen-checkout/src/types/adyenConfigData.ts @@ -11,7 +11,6 @@ export interface AdyenConfigData { adyenClientKey: string; adyenPaypalMerchantId: string; deviceFingerPrintUrl: string; - sessionData: SessionData; selectedPaymentMethod: string; showRememberTheseDetails: boolean; checkoutShopperHost: string; @@ -31,11 +30,6 @@ export interface AdyenConfigData { clickToPayLocale: string, } -interface SessionData { - id: string, - sessionData: string -} - interface StoredPaymentMethodData { brand: string; expiryMonth: string; diff --git a/adyenv6b2ccheckoutaddon/acceleratoraddon/web/webroot/WEB-INF/tags/responsive/checkoutOrderSummary.tag b/adyenv6b2ccheckoutaddon/acceleratoraddon/web/webroot/WEB-INF/tags/responsive/checkoutOrderSummary.tag index 2d9821b3..7a0e38d9 100644 --- a/adyenv6b2ccheckoutaddon/acceleratoraddon/web/webroot/WEB-INF/tags/responsive/checkoutOrderSummary.tag +++ b/adyenv6b2ccheckoutaddon/acceleratoraddon/web/webroot/WEB-INF/tags/responsive/checkoutOrderSummary.tag @@ -11,7 +11,7 @@ + value="[amazonpay],[applepay],[paypal],[paywithgoogle],[googlepay],[pix],[bcmc_mobile],[upi],[paysafecard],[klarna],[ideal]"/> <%-- Components --%> @@ -29,7 +29,6 @@ - <%-- Render QR code --%> diff --git a/adyenv6b2ccheckoutaddon/acceleratoraddon/web/webroot/WEB-INF/views/responsive/pages/checkout/multi/selectPaymentMethodPage.jsp b/adyenv6b2ccheckoutaddon/acceleratoraddon/web/webroot/WEB-INF/views/responsive/pages/checkout/multi/selectPaymentMethodPage.jsp index 52955aba..89c20053 100644 --- a/adyenv6b2ccheckoutaddon/acceleratoraddon/web/webroot/WEB-INF/views/responsive/pages/checkout/multi/selectPaymentMethodPage.jsp +++ b/adyenv6b2ccheckoutaddon/acceleratoraddon/web/webroot/WEB-INF/views/responsive/pages/checkout/multi/selectPaymentMethodPage.jsp @@ -31,7 +31,8 @@ const initConfig = { shopperLocale: "${shopperLocale}", environment: "${environmentMode}", - clientKey: "${clientKey}" + clientKey: "${clientKey}", + countryCode: "${countryCode}" }; const paymentMethodConfigs = {}; @@ -53,7 +54,7 @@ - paymentMethodConfigs['createIdeal'] = ${issuerLists['ideal']}; + paymentMethodConfigs['createIdeal'] = ${issuerLists['ideal']}; diff --git a/adyenv6b2ccheckoutaddon/acceleratoraddon/web/webroot/_ui/responsive/common/js/adyen.checkout.js b/adyenv6b2ccheckoutaddon/acceleratoraddon/web/webroot/_ui/responsive/common/js/adyen.checkout.js index 64bb6ae0..86c02ce1 100644 --- a/adyenv6b2ccheckoutaddon/acceleratoraddon/web/webroot/_ui/responsive/common/js/adyen.checkout.js +++ b/adyenv6b2ccheckoutaddon/acceleratoraddon/web/webroot/_ui/responsive/common/js/adyen.checkout.js @@ -59,11 +59,6 @@ class AdyenCheckoutHelper { }, onError: (error, component) => { console.error(error.name, error.message, error.stack, component); - }, - paymentMethodsConfiguration:{ - card: { - enableStoreDetails: paymentMethodConfigs.enableStoreDetails, - }, } }; this.checkout = await AdyenWeb.AdyenCheckout(configuration); @@ -227,7 +222,7 @@ class AdyenCheckoutHelper { }); } - makePayment(data, component, handleResult, label) { + makePayment(data, component, handleResult) { $.ajax({ url: ACC.config.encodedContextPath + '/adyen/component/payment', type: "POST", diff --git a/adyenv6b2ccheckoutaddon/acceleratoraddon/web/webroot/_ui/responsive/common/js/adyen_component_factory.js b/adyenv6b2ccheckoutaddon/acceleratoraddon/web/webroot/_ui/responsive/common/js/adyen_component_factory.js index 3882490b..4e1cf2f4 100644 --- a/adyenv6b2ccheckoutaddon/acceleratoraddon/web/webroot/_ui/responsive/common/js/adyen_component_factory.js +++ b/adyenv6b2ccheckoutaddon/acceleratoraddon/web/webroot/_ui/responsive/common/js/adyen_component_factory.js @@ -6,10 +6,10 @@ class PaymentComponentFactory { } - paymentConfiguration(label) { + paymentConfiguration(label) { return { showPayButton: false, - onChange: (state, component) =>{ + onChange: (state, component) => { if (!state.isValid) { this.helper.enablePlaceOrder(label); } @@ -19,9 +19,9 @@ class PaymentComponentFactory { this.helper.enablePlaceOrder(label); return; } - this.helper.makePayment(state.data, component, this.helper.handleResult, label); + this.helper.makePayment(state.data, component, this.helper.handleResult); }, - onAdditionalDetails: (state, component) => { + onAdditionalDetails: (state, component) => { this.helper.submitDetails(state.data, this.helper.handleResult); }, onError: (error, component) => { @@ -49,9 +49,9 @@ class PaymentComponentFactory { } createCard(params) { - const {allowedCards, showRememberDetails, cardHolderNameRequired,merchantDisplayName,shopperEmail} = params; + const {allowedCards, showRememberDetails, cardHolderNameRequired, merchantDisplayName, shopperEmail} = params; - const copyCardBrand= (event) => { + const copyCardBrand = (event) => { this.helper.selectedCardBrand = event.brand; } @@ -60,13 +60,13 @@ class PaymentComponentFactory { type: 'card', hasHolderName: true, holderNameRequired: cardHolderNameRequired, - storePaymentMethod: showRememberDetails ? 'askForConsent': 'disabled', + storePaymentMethod: showRememberDetails ? 'askForConsent' : 'disabled', enableStoreDetails: showRememberDetails, brands: allowedCards, onBrand: copyCardBrand, clickToPayConfiguration: { merchantDisplayName: merchantDisplayName, - shopperEmail: shopperEmail + shopperEmail: shopperEmail } }).mount("#card-div"); @@ -98,7 +98,7 @@ class PaymentComponentFactory { sepaIbanNumberField.value = sepaIbanNumber; } - this.helper.sepaDirectDebit = new AdyenWeb.Sepa(this.checkout, { + this.helper.sepaDirectDebit = new AdyenWeb.SepaDirectDebit(this.checkout, { showPayButton: false, onChange: handleOnChange }).mount('#adyen_hpp_sepadirectdebit_container') @@ -130,10 +130,9 @@ class PaymentComponentFactory { type: "POST", data: JSON.stringify({ resultCode: result.resultCode, - sessionData: result.sessionData }), contentType: "application/json; charset=utf-8", - success: (data) => { + success: (data) => { try { window.location.href = ACC.config.encodedContextPath + "/" + data.replace("redirect:/", ""); } catch (e) { @@ -181,7 +180,7 @@ class PaymentComponentFactory { blockPayPalPayLaterButton: true, onInit: (data, actions) => { actions.enable(); - $(document).on('change', '.adyen-terms-conditions-check', (event) => { + $(document).on('change', '.adyen-terms-conditions-check', (event) => { const checked = (event.target.checked) $('.adyen-terms-conditions-check').prop('checked', checked) if (checked) { @@ -192,27 +191,27 @@ class PaymentComponentFactory { this.helper.showCheckTermsAndConditionsError(); }); }, - onClick: ()=> { + onClick: () => { // Show a validation error if the checkbox is not checked this.helper.showCheckTermsAndConditionsError(); }, - onChange: (state, component)=> { + onChange: (state, component) => { if (!state.isValid) { this.helper.enablePlaceOrder(label); } }, - onSubmit: (state, component)=> { + onSubmit: (state, component) => { if (!state.isValid) { this.helper.enablePlaceOrder(label); return false; } - this.helper.makePayment(state.data, component, this.helper.handleResult, label); + this.helper.makePayment(state.data, component, this.helper.handleResult); }, - onCancel: (data, component) => { + onCancel: (data, component) => { // Sets your prefered status of the component when a PayPal payment is cancelled. this.helper.handleResult({resultCode: ErrorMessages.PaymentCancelled}, true); }, - onError: (error, component) =>{ + onError: (error, component) => { // Sets your prefered status of the component when an error occurs. if (error.name === 'CANCEL') { this.helper.handleResult({resultCode: ErrorMessages.PaymentCancelled}, true); @@ -220,7 +219,7 @@ class PaymentComponentFactory { this.helper.handleResult({resultCode: ErrorMessages.PaymentError}, true); } }, - onAdditionalDetails: (state, component) => { + onAdditionalDetails: (state, component) => { this.helper.submitDetails(state.data, this.helper.handleResult); } }).mount('#adyen-component-button-container-' + label); @@ -265,19 +264,19 @@ class PaymentComponentFactory { // Button config buttonType: "plain", buttonColor: "black", - onChange: (state, component) => { + onChange: (state, component) => { if (!state.isValid) { this.helper.enablePlaceOrder(label); } }, - onSubmit: (state, component) => { + onSubmit: (state, component) => { if (!state.isValid) { this.helper.enablePlaceOrder(label); return false; } - this.helper.makePayment(state.data, component, this.helper.handleResult, label); + this.helper.makePayment(state.data, component, this.helper.handleResult); }, - onClick: (resolve, reject) => { + onClick: (resolve, reject) => { if (this.helper.isTermsAccepted(label)) { resolve(); } else { @@ -288,10 +287,10 @@ class PaymentComponentFactory { }).mount('adyen-component-button-container-' + label); adyenComponent.isAvailable() - .then( () => { + .then(() => { adyenComponent.mount(applePayNode); }) - .catch( (e) => { + .catch((e) => { // Apple Pay is not available console.log('Something went wrong trying to mount the Apple Pay component: ' + e); this.helper.handleResult({resultCode: ErrorMessages.PaymentNotAvailable}, true); @@ -301,7 +300,7 @@ class PaymentComponentFactory { createGooglePay(params) { const {amount, merchantAccount, label} = params; const googlePayNode = document.getElementById('adyen-component-button-container-' + label); - const adyenComponent = new AdyenWeb.GooglePay (this.checkout, { + const adyenComponent = new AdyenWeb.GooglePay(this.checkout, { environment: this.checkout.options.environment, amount: { currency: amount.currency, @@ -317,13 +316,13 @@ class PaymentComponentFactory { this.helper.hideSpinner(); } }, - onSubmit: (state, component) => { + onSubmit: (state, component) => { if (!state.isValid) { this.helper.hideSpinner(); return false; } this.helper.showSpinner(); - this.helper.makePayment(state.data, component, this.helper.handleResult, label); + this.helper.makePayment(state.data, component, this.helper.handleResult); }, onClick: (resolve, reject) => { if (this.helper.isTermsAccepted(label)) { @@ -336,13 +335,13 @@ class PaymentComponentFactory { }); adyenComponent.isAvailable() - .then( () => { + .then(() => { adyenComponent.mount(googlePayNode); }) - .catch( (e) => { + .catch((e) => { // Google Pay is not available console.log('Something went wrong trying to mount the Google Pay component: ' + e); - this.helper.handleResult({resultCode: ErrorMessages.PaymentNotAvailable }, true); + this.helper.handleResult({resultCode: ErrorMessages.PaymentNotAvailable}, true); }); } @@ -385,7 +384,7 @@ class PaymentComponentFactory { } }; const amazonPayNode = document.getElementById('adyen-component-button-container-' + label); - const adyenComponent = new AdyenWeb.AmazonPay(this.checkout,componentConfiguration); + const adyenComponent = new AdyenWeb.AmazonPay(this.checkout, componentConfiguration); try { adyenComponent.mount(amazonPayNode); } catch (e) { @@ -406,9 +405,10 @@ class PaymentComponentFactory { this.helper.configureButton(adyenComponent, false, label); } - createGiftCard (params) { + createGiftCard(params) { const {label} = params; - const adyenComponent = new AdyenWeb.Giftcard(this.checkout, this.paymentConfiguration(label)).mount('#adyen-component-container-' + label);; + const adyenComponent = new AdyenWeb.Giftcard(this.checkout, this.paymentConfiguration(label)).mount('#adyen-component-container-' + label); + ; this.helper.configureButton(adyenComponent, false, label); } @@ -432,7 +432,7 @@ class PaymentComponentFactory { createPix(params) { const {label, issuers} = params; - $("#generateqr-" + label).click( () => { + $("#generateqr-" + label).click(() => { this.helper.showSpinner(); if (!this.helper.isTermsAccepted(label)) { this.helper.handleResult({resultCode: ErrorMessages.TermsNotAccepted}, true) @@ -443,7 +443,7 @@ class PaymentComponentFactory { handleAction: (action) => { this.helper.checkout.createFromAction(action, { //TODO FXIME: check if this is correct issuers: issuers, - onAdditionalDetails: (state) => { + onAdditionalDetails: (state) => { this.helper.hideSpinner(); this.helper.submitDetails(state.data, this.helper.handleResult); } @@ -451,7 +451,7 @@ class PaymentComponentFactory { this.helper.hideSpinner(); } }; - this.helper.makePayment({type: "pix"}, actionHandler, this.helper.handleResult, label); + this.helper.makePayment({type: "pix"}, actionHandler, this.helper.handleResult); } }); } @@ -471,7 +471,7 @@ class PaymentComponentFactory { createBcmcMobile(params) { const {label} = params; - $("#generateqr-" + label).click( () => { + $("#generateqr-" + label).click(() => { this.helper.showSpinner(); if (!this.helper.isTermsAccepted(label)) { this.helper.handleResult({resultCode: ErrorMessages.TermsNotAccepted}, true) @@ -479,9 +479,9 @@ class PaymentComponentFactory { $("#generateqr-" + label).hide(); $(".checkbox").hide(); var actionHandler = { - handleAction: (action) => { + handleAction: (action) => { this.helper.checkout.createFromAction(action, { //TODO FXIME: check if this is correct - onAdditionalDetails: (state) => { + onAdditionalDetails: (state) => { this.helper.hideSpinner(); this.helper.submitDetails(state.data, this.helper.handleResult); } @@ -489,7 +489,7 @@ class PaymentComponentFactory { this.helper.hideSpinner(); } }; - this.helper.makePayment({type: "bcmc_mobile"}, actionHandler, this.helper.handleResult, label); + this.helper.makePayment({type: "bcmc_mobile"}, actionHandler, this.helper.handleResult); } }); } @@ -497,8 +497,8 @@ class PaymentComponentFactory { createBizum(params) { const {label} = params; - $(document).ready( () => { - $("#placeOrder-" + label).click( () => { + $(document).ready(() => { + $("#placeOrder-" + label).click(() => { $(this).prop('disabled', true); this.helper.showSpinner(); @@ -567,27 +567,35 @@ class PaymentComponentFactory { // Redirect payment methods createIdeal(idealDetails) { - new Redirect(this.checkout, - { - details: idealDetails, - type: 'ideal', - showPayButton: false, - onChange: this.handleOnChange - }) + new AdyenWeb.Redirect(checkout, { type: 'ideal' }) .mount("#adyen_hpp_ideal_container"); } createRedirectPaymentMethod(paymentMethod) { - new Redirect(this.checkout, {type: paymentMethod.paymentType, onChange: this.handleOnChange}).mount('#adyen-component-button-container-' + paymentMethod.label); + new AdyenWeb.Redirect(this.checkout, { + type: paymentMethod.paymentType, + onChange: this.handleOnChange, + onSubmit: (state, component) => { + if (!state.isValid) { + this.helper.enablePlaceOrder(label); + return; + } + this.helper.makePayment(state.data, component, this.helper.handleResult); + } + }).mount('#adyen-component-button-container-' + paymentMethod.label); } initiateWalletIN() { - new Redirect(this.checkout, {type: 'wallet_IN', onChange: this.handleOnChange + new AdyenWeb.Redirect(this.checkout, { + type: 'wallet_IN', onChange: this.handleOnChange }).mount('#adyen_hpp_wallet_IN_container'); } initiatePaytm() { - const paytm = new AdyenWeb.Redirect(this.checkout, {type: 'paytm', onChange: this.handleOnChange}).mount('#adyen_hpp_paytm_container'); + const paytm = new AdyenWeb.Redirect(this.checkout, { + type: 'paytm', + onChange: this.handleOnChange + }).mount('#adyen_hpp_paytm_container'); } // Helper methods diff --git a/adyenv6b2ccheckoutaddon/acceleratoraddon/web/webroot/_ui/responsive/common/js/adyen_form_validator.js b/adyenv6b2ccheckoutaddon/acceleratoraddon/web/webroot/_ui/responsive/common/js/adyen_form_validator.js index f9c6ec13..368b3753 100644 --- a/adyenv6b2ccheckoutaddon/acceleratoraddon/web/webroot/_ui/responsive/common/js/adyen_form_validator.js +++ b/adyenv6b2ccheckoutaddon/acceleratoraddon/web/webroot/_ui/responsive/common/js/adyen_form_validator.js @@ -45,7 +45,7 @@ class AdyenFormValidator { } $('input[name="txvariant"]').remove(); - if (['eps', 'ideal', 'onlinebanking_IN', 'onlineBanking_PL'].indexOf(paymentMethod) >= 0) { + if (['eps','onlinebanking_IN', 'onlineBanking_PL'].indexOf(paymentMethod) >= 0) { var issuerIdField = document.getElementById('issuerId'); if (issuerIdField.value === "") { window.alert("Please select an issuer"); diff --git a/adyenv6core/resources/adyenv6core-beans.xml b/adyenv6core/resources/adyenv6core-beans.xml index 0d4f0119..dbb75de7 100644 --- a/adyenv6core/resources/adyenv6core-beans.xml +++ b/adyenv6core/resources/adyenv6core-beans.xml @@ -94,7 +94,6 @@ - diff --git a/adyenv6core/src/com/adyen/commerce/dto/OrderPaymentResult.java b/adyenv6core/src/com/adyen/commerce/dto/OrderPaymentResult.java index 81f5a2f6..d88ada1f 100644 --- a/adyenv6core/src/com/adyen/commerce/dto/OrderPaymentResult.java +++ b/adyenv6core/src/com/adyen/commerce/dto/OrderPaymentResult.java @@ -1,17 +1,24 @@ package com.adyen.commerce.dto; +import com.adyen.model.checkout.PaymentDetailsResponse; import com.adyen.model.checkout.PaymentResponse; import de.hybris.platform.commercefacades.order.data.OrderData; public class OrderPaymentResult { private OrderData orderData; private PaymentResponse paymentResponse; + private PaymentDetailsResponse paymentDetailsResponse; public OrderPaymentResult(OrderData orderData, PaymentResponse paymentResponse) { this.orderData = orderData; this.paymentResponse = paymentResponse; } + public OrderPaymentResult(OrderData orderData, PaymentDetailsResponse paymentDetailsResponse) { + this.orderData = orderData; + this.paymentDetailsResponse = paymentDetailsResponse; + } + public OrderData getOrderData() { return orderData; } @@ -19,4 +26,8 @@ public OrderData getOrderData() { public PaymentResponse getPaymentResponse() { return paymentResponse; } + + public PaymentDetailsResponse getPaymentDetailsResponse() { + return paymentDetailsResponse; + } } diff --git a/adyenv6core/src/com/adyen/commerce/facades/AdyenCheckoutApiFacade.java b/adyenv6core/src/com/adyen/commerce/facades/AdyenCheckoutApiFacade.java index 01839eac..e6114ce7 100644 --- a/adyenv6core/src/com/adyen/commerce/facades/AdyenCheckoutApiFacade.java +++ b/adyenv6core/src/com/adyen/commerce/facades/AdyenCheckoutApiFacade.java @@ -16,5 +16,5 @@ public interface AdyenCheckoutApiFacade extends AdyenCheckoutFacade { OrderPaymentResult placeOrderWithPayment(final HttpServletRequest request, final CartData cartData, PaymentRequest paymentRequest) throws Exception; - OrderData placeOrderWithAdditionalDetails(PaymentDetailsRequest detailsRequest) throws Exception; + OrderPaymentResult placeOrderWithAdditionalDetails(PaymentDetailsRequest detailsRequest) throws Exception; } diff --git a/adyenv6core/src/com/adyen/commerce/facades/impl/DefaultAdyenCheckoutApiFacade.java b/adyenv6core/src/com/adyen/commerce/facades/impl/DefaultAdyenCheckoutApiFacade.java index 3df1cfe1..76b8c79a 100644 --- a/adyenv6core/src/com/adyen/commerce/facades/impl/DefaultAdyenCheckoutApiFacade.java +++ b/adyenv6core/src/com/adyen/commerce/facades/impl/DefaultAdyenCheckoutApiFacade.java @@ -124,7 +124,7 @@ public OrderPaymentResult placeOrderWithPayment(final HttpServletRequest request } @Override - public OrderData placeOrderWithAdditionalDetails(PaymentDetailsRequest detailsRequest) throws Exception { + public OrderPaymentResult placeOrderWithAdditionalDetails(PaymentDetailsRequest detailsRequest) throws Exception { PaymentDetailsResponse paymentsDetailsResponse = this.componentDetails(detailsRequest); @@ -142,7 +142,7 @@ public OrderData placeOrderWithAdditionalDetails(PaymentDetailsRequest detailsRe LOGGER.info("Creating authorized order"); String orderCode = paymentsDetailsResponse.getMerchantReference(); OrderModel orderModel = retrievePendingOrder(orderCode); - return getOrderConverter().convert(orderModel); + return new OrderPaymentResult(getOrderConverter().convert(orderModel), paymentsDetailsResponse); } throw new AdyenNonAuthorizedPaymentException(paymentsDetailsResponse); diff --git a/adyenv6core/src/com/adyen/v6/service/AdyenCheckoutApiService.java b/adyenv6core/src/com/adyen/v6/service/AdyenCheckoutApiService.java index 4a3a8275..4d1c57a1 100644 --- a/adyenv6core/src/com/adyen/v6/service/AdyenCheckoutApiService.java +++ b/adyenv6core/src/com/adyen/v6/service/AdyenCheckoutApiService.java @@ -104,7 +104,4 @@ public interface AdyenCheckoutApiService { */ TerminalAPIResponse sendSyncPosStatusRequest(CartData cartData, String serviceId) throws Exception; - CreateCheckoutSessionResponse getPaymentSessionData(final CartData cartData, final boolean storePaymentMethod) throws IOException, ApiException; - - CreateCheckoutSessionResponse getPaymentSessionData(final Amount amount) throws IOException, ApiException; } diff --git a/adyenv6core/src/com/adyen/v6/service/DefaultAdyenCheckoutApiService.java b/adyenv6core/src/com/adyen/v6/service/DefaultAdyenCheckoutApiService.java index c02cc3a1..10acdd51 100644 --- a/adyenv6core/src/com/adyen/v6/service/DefaultAdyenCheckoutApiService.java +++ b/adyenv6core/src/com/adyen/v6/service/DefaultAdyenCheckoutApiService.java @@ -277,42 +277,6 @@ public PaymentDetailsResponse getPaymentDetailsFromPayload(PaymentDetailsRequest return paymentsResponse; } - @Override - public CreateCheckoutSessionResponse getPaymentSessionData(final CartData cartData, final boolean storePaymentMethod) throws IOException, ApiException { - final PaymentsApi checkout = new PaymentsApi(client); - final PriceData totalPriceWithTax = cartData.getTotalPriceWithTax(); - - final CreateCheckoutSessionRequest createCheckoutSessionRequest = new CreateCheckoutSessionRequest(); - createCheckoutSessionRequest.amount(AmountUtil.createAmount(totalPriceWithTax.getValue(), totalPriceWithTax.getCurrencyIso())); - createCheckoutSessionRequest.merchantAccount(merchantAccount); - if (cartData.getDeliveryAddress() != null) { - createCheckoutSessionRequest.countryCode(cartData.getDeliveryAddress().getCountry().getIsocode()); - } - createCheckoutSessionRequest.returnUrl(Optional.ofNullable(cartData.getAdyenReturnUrl()).orElse("returnUrl")); - createCheckoutSessionRequest.reference(cartData.getCode()); - createCheckoutSessionRequest.setStorePaymentMethod(storePaymentMethod); - createCheckoutSessionRequest.setStorePaymentMethodMode(ASKFORCONSENT); - createCheckoutSessionRequest.enableOneClick(true); - createCheckoutSessionRequest.shopperEmail(cartData.getUser().getUid()); - createCheckoutSessionRequest.recurringProcessingModel(CreateCheckoutSessionRequest.RecurringProcessingModelEnum.CARDONFILE); - createCheckoutSessionRequest.shopperReference(cartData.getUser().getUid()); - - return checkout.sessions(createCheckoutSessionRequest); - } - - @Override - public CreateCheckoutSessionResponse getPaymentSessionData(final Amount amount) throws IOException, ApiException { - final PaymentsApi checkout = new PaymentsApi(client); - - final CreateCheckoutSessionRequest createCheckoutSessionRequest = new CreateCheckoutSessionRequest(); - createCheckoutSessionRequest.amount(amount); - createCheckoutSessionRequest.merchantAccount(merchantAccount); - createCheckoutSessionRequest.returnUrl("returnUrl"); //dummy url because it's required by api - createCheckoutSessionRequest.reference("reference"); //dummy reference because it's required by api - - return checkout.sessions(createCheckoutSessionRequest); - } - @Override public String getDeviceFingerprintUrl() { DateFormat df = new SimpleDateFormat("yyyyMMdd"); diff --git a/adyenwebcommons/src/com/adyen/commerce/controllerbase/PlaceOrderControllerBase.java b/adyenwebcommons/src/com/adyen/commerce/controllerbase/PlaceOrderControllerBase.java index bcede4ef..b6275eac 100644 --- a/adyenwebcommons/src/com/adyen/commerce/controllerbase/PlaceOrderControllerBase.java +++ b/adyenwebcommons/src/com/adyen/commerce/controllerbase/PlaceOrderControllerBase.java @@ -76,13 +76,14 @@ public PlaceOrderResponse handleAdditionalDetails(final PaymentDetailsRequest pa public OCCPlaceOrderResponse handleAdditionalDetailsOCC(final PaymentDetailsRequest paymentDetailsRequest) { try { - OrderData orderData = getAdyenCheckoutApiFacade().placeOrderWithAdditionalDetails(paymentDetailsRequest); + OrderPaymentResult orderPaymentResult = getAdyenCheckoutApiFacade().placeOrderWithAdditionalDetails(paymentDetailsRequest); - String orderCode = getCheckoutCustomerStrategy().isAnonymousCheckout() ? orderData.getGuid() : orderData.getCode(); + String orderCode = getCheckoutCustomerStrategy().isAnonymousCheckout() ? orderPaymentResult.getOrderData().getGuid() : orderPaymentResult.getOrderData().getCode(); OCCPlaceOrderResponse placeOrderResponse = new OCCPlaceOrderResponse(); placeOrderResponse.setOrderNumber(orderCode); - placeOrderResponse.setOrderData(orderData); + placeOrderResponse.setOrderData(orderPaymentResult.getOrderData()); + placeOrderResponse.setPaymentDetailsResponse(orderPaymentResult.getPaymentDetailsResponse()); return placeOrderResponse; } catch (Exception e) { LOGGER.error("Exception", e); diff --git a/adyenwebcommons/src/com/adyen/commerce/response/PlaceOrderResponse.java b/adyenwebcommons/src/com/adyen/commerce/response/PlaceOrderResponse.java index c1cc0cc3..54531837 100644 --- a/adyenwebcommons/src/com/adyen/commerce/response/PlaceOrderResponse.java +++ b/adyenwebcommons/src/com/adyen/commerce/response/PlaceOrderResponse.java @@ -1,5 +1,6 @@ package com.adyen.commerce.response; +import com.adyen.model.checkout.PaymentDetailsResponse; import com.adyen.model.checkout.PaymentResponse; import com.adyen.model.checkout.PaymentResponseAction; @@ -9,6 +10,7 @@ public class PlaceOrderResponse { private boolean executeAction; private PaymentResponseAction paymentsAction; private PaymentResponse paymentsResponse; + private PaymentDetailsResponse paymentDetailsResponse; public String getOrderNumber() { return orderNumber; @@ -49,4 +51,12 @@ public PaymentResponse getPaymentsResponse() { public void setPaymentsResponse(PaymentResponse paymentsResponse) { this.paymentsResponse = paymentsResponse; } + + public PaymentDetailsResponse getPaymentDetailsResponse() { + return paymentDetailsResponse; + } + + public void setPaymentDetailsResponse(PaymentDetailsResponse paymentDetailsResponse) { + this.paymentDetailsResponse = paymentDetailsResponse; + } }