Stripe Angular Ionic Application - Создание платежа

Я создаю платежную систему Stripe, и мне трудно сделать этот интегрированный код функциональным. Код был вытащен отсюда. Я пытаюсь создать ссылку на базу данных для определенного идентификатора пользователя (uid) пользователя, так как createStripeCharge ждет write event происходить с чем-то вроде /stripe_customers/XCXaweADowefj/charges/QC123XYZ, Я не уверен, но, возможно, моя проблема в том, что я неправильно ссылаюсь на клиента. Если у вас есть какие-либо идеи или отзывы о том, как я могу сделать эту функцию правильно, я очень ценю это!

Триггер (это заставляет работать облачную функцию):

payByStripe(amount,email,userId, token): firebase.database.Reference {
  return firebase.database().ref(`/stripe_customers/${userId}/charges/`).push({
    amount:amount,
    email:email,
    token:token
  });    
}

Облачная функция:

exports.createStripeCharge = functions.database.ref('/stripe_customers/{userId}/charges/{id}').onWrite(event => {
  const val = event.data.val();
  if (val === null || val.id || val.error) return null;
  return admin.database().ref(`/stripe_customers/${event.params.userId}/customer_id`).once('value').then(snapshot => {
    return snapshot.val();
  }).then(customer => {
    const amount = val.amount;
    const idempotency_key = event.params.id;
    let charge = {amount, currency, customer};
    if (val.source !== null) charge.source = val.source;
    return stripe.charges.create(charge, {idempotency_key});
  }).then(response => {
      return event.data.adminRef.set(response);
    }, error => {
      return event.data.adminRef.child('error').set(userFacingMessage(error)).then(() => {
        return reportError(error, {user: event.params.userId});
      });
    }
  );
});

В настоящее время база данных создает клиентов полосы, но плата не проходит, с сообщением об ошибке "You have passed a blank string for 'customer'. You should remove the 'customer' parameter from your request or supply a non-blank value."

Обновление это я итерации на этом. Пробовал следующее:

firebase.database().ref(`/stripe_customers/${userId}/charges/`).push({
  amount:amount,
  email:email,
  token:token,
  customer: userId
});    

&&

firebase.database().ref(`/stripe_customers/${userId}/charges/`).push({
  amount:amount,
  email:email,
  token:token,
  customer_id:{
    customer: userId
  }
});    

И по-прежнему отображается сообщение "Вы передали пустую строку для" customer ". Вам следует удалить параметр" customer "из вашего запроса или указать непустое значение".

0 ответов

Другие вопросы по тегам