Skip to content

Commit

Permalink
Merge pull request #496 from Adyen/feature/AD-291_v13.1.0
Browse files Browse the repository at this point in the history
AD-291: Google Payments, fix for java-lib update
  • Loading branch information
kpieloch authored Dec 24, 2024
2 parents 26bfa61 + 59499c3 commit 7e85105
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 14 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,13 @@ import {routes} from "../../router/routes";
import {Navigate} from "react-router-dom";
import {PaymentError} from "./PaymentError";
import {ScrollHere} from "../common/ScrollTo";
import {CoreConfiguration,CardConfiguration, UIElement} from "@adyen/adyen-web";
import {
CoreConfiguration,
CardConfiguration,
UIElement,
SubmitActions,
AdditionalDetailsActions
} from "@adyen/adyen-web";

interface State {
useDifferentBillingAddress: boolean
Expand Down Expand Up @@ -124,8 +130,8 @@ class Payment extends React.Component<Props, State> {
onError: (error: AdyenCheckoutError, element?: UIElement) => {
this.handleError()
},
onSubmit: (state: any, element: UIElement) => this.handlePayment(state.data),
onAdditionalDetails: (state: any, element?: UIElement) => this.handleAdditionalDetails(state.data)
onSubmit: (state: any, element: UIElement, actions: SubmitActions) => this.handlePayment(state.data, actions),
onAdditionalDetails: (state: any, element: UIElement,actions: AdditionalDetailsActions) => this.handleAdditionalDetails(state.data, actions)
}
}

Expand Down Expand Up @@ -176,22 +182,22 @@ class Payment extends React.Component<Props, State> {
this.resetDropInComponent();
}

private async handlePayment(data: any) {
private async handlePayment(data: any, actions: SubmitActions) {
let adyenPaymentForm = PaymentService.preparePlaceOrderRequest(data,
this.state.useDifferentBillingAddress, this.isSaveInAddressBook(), this.props.billingAddress);

await this.executePaymentRequest(adyenPaymentForm)
await this.executePaymentRequest(adyenPaymentForm, actions)
}

private async handleAdditionalDetails(data: any) {
await this.executeAdditionalDetails(data)
private async handleAdditionalDetails(data: any,actions: AdditionalDetailsActions) {
await this.executeAdditionalDetails(data,actions)
}

private isSaveInAddressBook(): boolean {
return this.state.saveInAddressBook && this.state.useDifferentBillingAddress
}

private async handleResponse(response: Promise<void | PlaceOrderResponse>) {
private async handleResponse(response: Promise<void | PlaceOrderResponse>, actions: SubmitActions) {
this.setState({errorFieldCodes: []})

let responseData = await response;
Expand All @@ -200,6 +206,9 @@ class Payment extends React.Component<Props, State> {
if (responseData.executeAction) {
this.dropIn.handleAction(responseData.paymentsAction)
} else {
actions.resolve({
resultCode: 'Authorised'
});
this.setState({orderNumber: responseData.orderNumber})
this.setState({redirectToNextStep: true})
}
Expand All @@ -211,12 +220,12 @@ class Payment extends React.Component<Props, State> {
}
}

private async executePaymentRequest(adyenPaymentForm: PlaceOrderRequest) {
await this.handleResponse(PaymentService.placeOrder(adyenPaymentForm));
private async executePaymentRequest(adyenPaymentForm: PlaceOrderRequest, actions: SubmitActions) {
await this.handleResponse(PaymentService.placeOrder(adyenPaymentForm), actions);
}

private async executeAdditionalDetails(details: any) {
await this.handleResponse(PaymentService.sendAdditionalDetails(details));
private async executeAdditionalDetails(details: any, actions: AdditionalDetailsActions) {
await this.handleResponse(PaymentService.sendAdditionalDetails(details), actions);
}

private resetDropInComponent() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,8 +43,8 @@ public void populateL2L3AdditionalData(final Map<String, String> additionalData,
if (cartData.getTotalTax() != null) {
additionalData.put(TOTAL_TAX_AMOUNT, String.valueOf(cartData.getTotalTax().getValue()));
}
if (StringUtils.isNotEmpty(cartData.getMerchantCustomerId())) {
additionalData.put(CUSTOMER_REFERENCE, cartData.getMerchantCustomerId());
if (StringUtils.isNotEmpty(cartData.getUser().getUid())) {
additionalData.put(CUSTOMER_REFERENCE, cartData.getUser().getUid());
}
// not required but available
if (cartData.getDeliveryCost() != null) {
Expand Down

0 comments on commit 7e85105

Please sign in to comment.