Como criar um cliente e um cartão em uma única ação com o Stripe?

Estou tentando inicializar um cliente pela primeira vez. Eu tenho um formulário onde eles se inscrevem e tudo, e eles enviam. No cliente, acontece o seguinte:

var cardValues = AutoForm.getFormValues('credit-card-form').insertDoc;
Stripe.createToken(cardValues, function (err, token) {
  if (!err && token) {
    Meteor.call('Stripe.initializeCustomer', token);
  }
});

No lado do servidor, estou tentando fazer algo assim:

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 API do Stripe não gosta disso

Erro de rejeição sem tratamento: você não pode usar um token de distribuição mais de uma vez

Existe uma maneira canônica de fazer várias solicitações de distribuição no servidor para um único token?

questionAnswers(1)

yourAnswerToTheQuestion