fix stripe payment flow
This commit is contained in:
@@ -11,12 +11,14 @@ import {
|
||||
useStripe,
|
||||
useElements,
|
||||
} from "@stripe/react-stripe-js";
|
||||
import { apiCompleteCheckout } from "@/lib/cartApi";
|
||||
|
||||
const stripePromise = loadStripe(process.env.NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY || "");
|
||||
|
||||
function PaymentForm({ clientSecret, totalAmount, onSuccess, onCancel }) {
|
||||
const stripe = useStripe();
|
||||
const elements = useElements();
|
||||
const { token } = useAuth();
|
||||
const [paying, setPaying] = useState(false);
|
||||
const [payError, setPayError] = useState(null);
|
||||
|
||||
@@ -34,9 +36,14 @@ function PaymentForm({ clientSecret, totalAmount, onSuccess, onCancel }) {
|
||||
if (error) {
|
||||
setPayError(error.message);
|
||||
setPaying(false);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
else {
|
||||
const paymentIntentId = clientSecret.split("_secret_")[0];
|
||||
try {
|
||||
await apiCompleteCheckout(token, paymentIntentId);
|
||||
} catch {
|
||||
}
|
||||
onSuccess();
|
||||
}
|
||||
}
|
||||
@@ -159,7 +166,7 @@ export default function CartPage() {
|
||||
setCheckoutLoading(true);
|
||||
setCheckoutError(null);
|
||||
try {
|
||||
const result = await checkout("pm_card_visa");
|
||||
const result = await checkout();
|
||||
if (result?.clientSecret) {
|
||||
setClientSecret(result.clientSecret);
|
||||
setCheckoutTotal(result.totalAmount);
|
||||
|
||||
Reference in New Issue
Block a user