Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

178
Views
Obtenga más de 100 datos de carga de Stripe API en Node JS

Estoy tratando de obtener todos los datos de carga de la api de banda. De forma predeterminada, Stripe no permite obtener más de 100 datos y tengo miles de datos allí. Hay un campo en la franja llamado has_more , que proporciona información sobre si hay más datos a través de su valor verdadero/falso. Ahora. Estoy tratando de automatizar el proceso en el nodo js para que, en primer lugar, una llamada API para obtener 100 datos, luego verifique si has_more es verdadero. Si es verdadero, tomará la identificación del último objeto en los datos y comenzará a obtener datos después de esa identificación y seguirá haciéndolo hasta que has_more devuelva falso.

He hecho esto hasta ahora, que obtiene solo los primeros 100 datos. ¿Alguien puede dar alguna idea sobre el siguiente proceso?

 async function getData() { const data = await axios.get( `${URL}?created%5Bgte%5D=${created}&created%5Blte%5D=${createdEnd}&limit=${limit}`, { headers: { Authorization: `Bearer ${bearer}`, "Stripe-Account": `${stripe_account}`, }, } ); return data; }
about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Lo haría:

 async function getData(startingAfter) { let url = `${URL}?created%5Bgte%5D=${created}&created%5Blte%5D=${createdEnd}&limit=${limit}` // if they pass in a startingAfter param, use it if (typeof startingAfter !== 'undefined') { url += `&starting_after=${startingAfter}` } const data = await axios.get(url , { headers: { Authorization: `Bearer ${bearer}`, "Stripe-Account": `${stripe_account}`, }, } ); // if there is more, add the additional items to this list, and // then set hasMore to false (since we fetched them all) if (data.hasMore) { const more = await getData(data[data.length - 1].id); data.data.push(...more.data) data.hasMore = false; } return data; }

Esto obtendrá los primeros 100 elementos, verá que tiene más y luego llamará a getData(100) (bueno, getData('ch_whatever_the_id_is_for_#_100') ), que obtendrá los siguientes 100 elementos, luego llamará a getData(200) , etc. etc. etc., y luego su llamada inicial terminará con la lista completa.

about 4 years ago · Juan Pablo Isaza Report

0

Debe instalar la biblioteca oficial de stripe-node y usar la paginación automática incorporada de la biblioteca.

https://stripe.com/docs/api/pagination/auto?lang=node

¿También estás usando axios en la interfaz? No puede hacer eso, ya que eso significaría que está exponiendo su clave API de Stripe secreta en la interfaz, los cargos de lista son una llamada API de backend (por lo que debería poder instalar y usar stripe-node https://github.com /stripe/stripe-node )

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!