Estamos tratando de integrar Stripe en una aplicación nativa de reacción usando @stripe/stripe-react-native. Seguimos este tutorial https://www.youtube.com/watch?v=DZlAET7Tgx4 https://www.youtube.com/watch?v=DZlAET7Tgx4 como referencia.
Nuestra llamada API está devolviendo un objeto indefinido. Creemos que podría tener que ver con la URL de la API, pero lo hemos intentado todo (localhost, dirección IP de la computadora, dirección IP de wifi) y nada funciona. Intentamos iniciar sesión en la consola dentro del método de publicación, pero no se imprime nada, lo que nos hace pensar que no se está llamando correctamente. Tenemos un servidor corriendo usando express. Cualquier ayuda sería muy apreciada :)
Este es nuestro método de publicación:
app.post('/create-payment-intent', async (req, res) => { console.log("test place 1") try { const paymentIntent = await stripe.paymentIntents.create( { amount: 1099, currency: "usd", payment_method_types: ["card"], } ); const clientSecret = paymentIntent.client_secret; res.send({ clientSecret: clientSecret, }); } catch (e) { res.json({ error: e.message }); } })Y aquí es cuando lo llamamos:
const API_URL = "http://10.49.40.160:8000" const StripeApp = props => { const [email, setEmail] = useState(); const [cardDetails, setCardDetails] = useState(); const { confirmPayment, loading } = useConfirmPayment(); const fetchPaymentIntentClientSecret = async () => { const response = await fetch(`${API_URL}/ create-payment-intent`, { method: "POST", headers: { "Content-Type": "application/json", }, body: JSON.stringify({ paymentMethodType: 'card', currency: 'usd', }), }); const { clientSecret, error } = await response.json(); return { clientSecret, error }; }¡Muchas gracias!
¿Puede verificar que la API que se encuentra en la URL que proporciona está activa y devolverá la respuesta esperada? Parece que ya sabes que es un problema.
Si recién está comenzando y no necesariamente busca construir algo inmediatamente listo para la producción, he encontrado útil tener un back-end relativamente simple que hace lo mínimo que necesitará para probar ideas de desarrollo.
Stripe proporciona el código e incluso una herramienta de implementación para un back-end móvil simple . Si sigue las instrucciones de implementación, implementará un servidor básico en Heroku de forma gratuita. Solo asegúrese de tomar nota de la URL y guardar esa información en la configuración de su aplicación.
Incluso si no está demasiado familiarizado con la sintaxis de Ruby (el servidor está escrito en Ruby, web.rb ), las funciones son lo suficientemente mínimas como para mirar los fragmentos de código en Stripe Docs para tener una idea de lo que está haciendo ese código.
¡Feliz codificación! 😄