diff --git a/CHANGELOG.md b/CHANGELOG.md index 6d522fb75..63e265810 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog Fab-manager +## next release + +- Fix a bug: unable to process stripe payments + ## v4.7.11 2021 May 26 - Updated ffi to 1.15.1 diff --git a/app/frontend/src/javascript/api/payment.ts b/app/frontend/src/javascript/api/payment.ts index eff57cfd7..dc0be3a14 100644 --- a/app/frontend/src/javascript/api/payment.ts +++ b/app/frontend/src/javascript/api/payment.ts @@ -3,7 +3,7 @@ import { AxiosResponse } from 'axios'; import { CartItems, IntentConfirmation, PaymentConfirmation, UpdateCardResponse } from '../models/payment'; export default class PaymentAPI { - static async confirm (stp_payment_method_id: string, cart_items: CartItems): Promise { + static async confirmMethod (stp_payment_method_id: string, cart_items: CartItems): Promise { const res: AxiosResponse = await apiClient.post(`/api/payments/confirm_payment`, { payment_method_id: stp_payment_method_id, cart_items @@ -11,6 +11,14 @@ export default class PaymentAPI { return res?.data; } + static async confirmIntent (stp_payment_intent_id: string, cart_items: CartItems): Promise { + const res: AxiosResponse = await apiClient.post(`/api/payments/confirm_payment`, { + payment_intent_id: stp_payment_intent_id, + cart_items + }); + return res?.data; + } + static async setupIntent (user_id: number): Promise { const res: AxiosResponse = await apiClient.get(`/api/payments/setup_intent/${user_id}`); return res?.data; diff --git a/app/frontend/src/javascript/components/stripe-form.tsx b/app/frontend/src/javascript/components/stripe-form.tsx index ba0cdcfba..82721ee9a 100644 --- a/app/frontend/src/javascript/components/stripe-form.tsx +++ b/app/frontend/src/javascript/components/stripe-form.tsx @@ -52,7 +52,7 @@ export const StripeForm: React.FC = ({ onSubmit, onSuccess, onE try { if (!paymentSchedule) { // process the normal payment pipeline, including SCA validation - const res = await PaymentAPI.confirm(paymentMethod.id, cartItems); + const res = await PaymentAPI.confirmMethod(paymentMethod.id, cartItems); await handleServerConfirmation(res); } else { // we start by associating the payment method with the user @@ -107,7 +107,7 @@ export const StripeForm: React.FC = ({ onSubmit, onSuccess, onE // The card action has been handled // The PaymentIntent can be confirmed again on the server try { - const confirmation = await PaymentAPI.confirm(result.paymentIntent.id, cartItems); + const confirmation = await PaymentAPI.confirmIntent(result.paymentIntent.id, cartItems); await handleServerConfirmation(confirmation); } catch (e) { onError(e);