¿Cómo crear un cliente y una tarjeta en una sola acción con Stripe?
Estoy tratando de inicializar un cliente por primera vez. Tengo un formulario donde se registran y todo, y lo envían. En el cliente, sucede lo siguiente:
var cardValues = AutoForm.getFormValues('credit-card-form').insertDoc;
Stripe.createToken(cardValues, function (err, token) {
if (!err && token) {
Meteor.call('Stripe.initializeCustomer', token);
}
});
En el lado del servidor, estoy tratando de hacer algo como esto:
Meteor.methods({
'Stripe.initializeCustomer': function (token) {
var Stripe = StripeAPI(process.env.STRIPE_KEY);
// some validation here that nobody cares about
Stripe.customers.create({
source: token
}).then(function (customer) {
return Stripe.customers.createCard(customer.id, {
source: token
})
}).catch(function (error) {
// need to do something here
})
}
});
Parece que a la API Stripe no le gusta esto
Error de rechazo no controlado: no puede usar un token Stripe más de una vez
¿Hay una manera canónica de hacer múltiples solicitudes para dividir en el servidor un solo token?