Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

284
Vistas
use payment method for stripe paymentintent

I have this:

const stripe = require('stripe')('sk_test', {
        stripeAccount: 'acct_...'
    });
const paymentIntent = await stripe.paymentIntents.create({
    amount: 1900,
    currency: 'cad',
    customer: 'cus_...',
    // confirm: true,
  }, {
    stripeAccount: 'acct_...',
});
console.log(paymentIntent)

so then I go to run this paymentIntent, and it works, but doesn't actaully charge the customer because it says that it has no payment method on file. So then I take this customers id, and look at my stripe dashboard, and it shows the payment method there, and the method matches with the id. so now I believe I am doing something wrong creating the paymentIntent, but the payment is going through, just not confirmed because it says no payment method attached! So why is this not working?

error: UnhandledPromiseRejectionWarning: Error: You cannot confirm this PaymentIntent because it's missing a payment method. You can either update the PaymentIntent with a payment method and then confirm it again, or confirm it again directly with a payment method.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

PaymentIntent requires a Payment Method Object such as;

   payment_method_types: [card],

PaymentIntent object

   const {
  error: backendError,
  clientSecret,
  paymentIntentId,
  transfer_group,
} = await fetch('/create-payment-intent', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    paymentMethodType: 'card',
    currency: 'cad',
    customerEmail: billingDetails.email,
    description: 'Basket_Order_Id',
  }),
}).then((r) => r.json());
 and when you created the paymentintent on your backend you should return 

  app.post('/create-payment-intent', async (req, res) => {
  const {paymentMethodType, currency, customerEmail, description, 
   suppliers} =
  req.body;
  console.log('paymentIntent Create requ body', req.body);

  req.session.suppliers = suppliers;
  suppliersArray = suppliers;

 const idEmpotency = nanoid();
 // Each payment method type has support for different currencies. In order 
 to
 // support many payment method types and several currencies, this server
 // endpoint accepts both the payment method type and the currency as
// parameters
//
 // Some example payment method types include `card`, `ideal`, and 
`alipay`.
 const params = {
payment_method_types: [paymentMethodType], 'CARD'
amount: 20000,
currency: currency,
description: description,
receipt_email: customerEmail,
statement_descriptor_suffix: 'Your Bank Descriptor on Customer Account',
transfer_group: idEmpotency,
// confirm: true,
// capture_method: 'manual',
 };
   try {
   const paymentIntent = await stripe.paymentIntents.create(params);

// Send publishable key and PaymentIntent details to client
console.log('paymentIntent', paymentIntent);

res.send({
  clientSecret: paymentIntent.client_secret, - SENDING YOUR CLIENTSECRET
  paymentIntentId: paymentIntent.id,
  transfer_group: paymentIntent.transfer_group,
});
   }   catch (e) {
  return res.status(400).send({
  error: {
    message: e.message,
   },
   });
   }
  });

  client_secret and use it on your front-end 



 const {error: stripeError, paymentIntent} = await stripe.confirmCardPayment(
  clientSecret, USE YOUR CLIENT SECRET THAT RETURNED FROM YOUR BACKEND FROM  PAYMENT INTENT OBJECT
  {
    payment_method: {
      card: elements.getElement(CardElement),
      billing_details: {
        name: 'Michael',
      },
    },
  }
);


 Before confirming the client_secret that returned from payment_intent you can not succesfully confirm the payment.

 You can use stripe elements to start with their own card payment component.

 I recommend you to check here https://stripe.com/docs/payments/quickstart, you will get more idea...
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda