From 627d930a2f90895bc1369ec5f9f042eaad838153 Mon Sep 17 00:00:00 2001 From: Michael Bromley Date: Mon, 20 Jan 2025 09:04:13 +0100 Subject: [PATCH] fix(payments-plugin): Fix null access error in BraintreePlugin Gracefully handles the case where the call to create a sale fails, and there is no `transaction` object available. --- packages/payments-plugin/src/braintree/braintree.handler.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/payments-plugin/src/braintree/braintree.handler.ts b/packages/payments-plugin/src/braintree/braintree.handler.ts index 116a2d340c..7834552da8 100644 --- a/packages/payments-plugin/src/braintree/braintree.handler.ts +++ b/packages/payments-plugin/src/braintree/braintree.handler.ts @@ -106,12 +106,12 @@ async function processPayment( }, }); const extractMetadataFn = pluginOptions.extractMetadata ?? defaultExtractMetadataFn; - const metadata = extractMetadataFn(response.transaction); + const metadata = response.transaction && extractMetadataFn(response.transaction); if (!response.success) { return { amount, state: 'Declined' as const, - transactionId: response.transaction.id, + transactionId: response.transaction?.id, errorMessage: response.message, metadata, };