Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

179
Visualizações
Siguiente JS: Realice una solicitud de publicación en Stripe para agregar varios artículos al carrito

SIGUIENTE JS: Estoy tratando de poner el contenido de una variable de estado "carrito" en el cuerpo de la solicitud POST a la API de STRIPE. El carrito tiene el formato [{id: 1, cantidad: 1}, {id: , cantidad: }.......]

Intenté poner elementos directamente en el controlador de API (list_items) y eso funciona. Pero no puedo hacer que mi variable "carrito" aparezca allí, así que supongo que tengo que incluir los elementos en la solicitud POST. He intentado hacer que se ejecute (incluido un objeto allí y JSON.stringify como propiedad de una variable "line_items", pero fue en vano. ¿Quizás alguien podría ayudarme?

Controlador de API:

 import Stripe from 'stripe'; const stripe = new Stripe(process.env.STRIPE_SECRET_KEY); export default async function handler(req, res) { if (req.method !== 'POST') { return res.send({ error: 'Method need to be POST', }); } const domainURL = 'http://localhost:3000'; // const { quantity, mode, productKey } = req.body; const pmTypes = ['card']; const session = await stripe.checkout.sessions.create({ payment_method_types: pmTypes, mode: 'payment', locale: 'en', line_items: the_variable????, success_url: `${domainURL}/success?session_id={CHECKOUT_SESSION_ID}`, cancel_url: `${domainURL}/cart`, }); res.send({ sessionId: session.id, }); }

Solicitud POST:

 const stripeLoader = loadStripe(props.pk); const redirectToCheckout = async () => { const stripeClient = await stripeLoader; const { sessionId } = await fetch('api/checkout_sessions', { method: 'POST', headers: { 'Content-Type': 'application/json', }, body : {????} }).then((res) => res.json()); stripeClient.redirectToCheckout({ sessionId }); };

about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Puede usar cualquier estructura que desee para comunicarse entre su cliente y el backend, pero su solicitud de API a Stripe para crear la sesión debe ajustarse a la forma esperada del parámetro line_items API ( docs ).

Puede definir precios sobre la marcha con price_data en cada artículo:

 const session = await stripe.checkout.sessions.create({ payment_method_types: ['card'], line_items: [ { price_data: { currency: 'usd', product_data: { name: 'T-shirt', }, unit_amount: 2000, }, quantity: 1, }, ], mode: 'payment', success_url: 'https://example.com/success', cancel_url: 'https://example.com/cancel', });

O puede utilizar precios predefinidos :

 const session = await stripe.checkout.sessions.create({ payment_method_types: ['card'], line_items: [{ price: 'price_123', quantity: 1, },{ price: 'price_456', quantity: 3, }], mode: 'payment', success_url: 'https://example.com/success?session_id={CHECKOUT_SESSION_ID}', cancel_url: 'https://example.com/cancel', });
about 4 years ago · Juan Pablo Isaza Relatório

0

Descubrí cómo hacer la solicitud POST. El cuerpo tiene que verse así:

 body: JSON.stringify({ lineItems: props.cart.map((singleItem) => { return { price: <the_stripe_price_key_for_the_given_product>, quantity: <the_amount>, }; }), })

incluyó la siguiente línea en el controlador de la API: const { lineItems } = req.body; y establecer line_items: lineItems

Entonces, tal como señaló Nolan, line_items aceptará una matriz de objetos (en mi caso, generados a través del mapeo de la variable de estado de mi 'carrito').

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda