Tener este problema que es bastante intrincado de STRIPE. También soy nuevo en full stack. En primer lugar, recibo este error en la red de mi consola.
raw: {,…} headers: {server: "nginx", date: "Thu, 02 Dec 2021 12:21:48 GMT", content-type: "application/json",…} message: "You did not provide an API key. You need to provide your API key in the Authorization header, using Bearer auth (eg 'Authorization: Bearer YOUR_SECRET_KEY'). See https://stripe.com/docs/api#authentication for details, or we can help at https://support.stripe.com/." statusCode: 401 type: "invalid_request_error" rawType: "invalid_request_error" statusCode: 401 type: "StripeAuthenticationError"Extrañamente, puedo confirmar que Stripe está haciendo solicitudes de publicación, de hecho, puedo ver los registros que se envían a ellos en el panel de mi cuenta.
Esto se establece a través de lo siguiente. Establecí el stripeToken desde onclick y luego uso un useEffect para crear una solicitud de publicación en mi punto final. Esto debería redirigir a la página de éxito después.
const cart = useSelector((state) => state.cart); const [stripeToken, setStripeToken] = useState(null); const history = useHistory(); const onToken = (token) => { setStripeToken(token); }; console.log(stripeToken) useEffect(()=> { const makeRequest = async () => { try{ const res = await userRequest.post("/checkout/payment", { tokenId: stripeToken, amount: cart.total * 100, }) history.push("/success", {data:res.data}); }catch{} } stripeToken && makeRequest(); }, [stripeToken, cart.total, history])Además, userRequest proviene de lo siguiente, y aquí es donde creo que está mi error. Estoy usando mi TOKEN del encabezado de inicio de sesión cuando un usuario inicia sesión y la URL de mi puerto
const BASE_URL = "http://localhost:5000/api/" const TOKEN = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjYxOTM4MTE2ZGUxMjBiNmQzZGVmOWU1NyIsImlzQWRtaW4iOnRydWUsImlhdCI6MTYzODQ0NjkyNSwiZXhwIjoxNjM4NzA2MTI1fQ.ZsozvCvkc3ewlbwjKRceERsGBVF79zEHCZvbqFZBxJg"; export const publicRequest = axios.create({ baseURL: BASE_URL, }); export const userRequest = axios.create({ baseURL: BASE_URL, headers: { 'Authorization': `Bearer ${TOKEN}` } });