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 "из вашего запроса или указать непустое значение".