Я ищу решение для получения кода местной валюты пользователя в зависимости от его часового пояса.
Использование Stripe и Firebase Я создаю запись Firestore на Firebase Auth
. Когда пользователь регистрируется, function
создает запись базы данных, содержащую часовой пояс пользователя. Затем создайте клиента внутри Stripe.
Для получения часового пояса пользователя я использую moment.tz.guess()
, поставляемый в пакете moment-timezone
. Затем он сохраняется в Firebase как запись Firestore.
Функция закодирована как
exports = module.exports = functions.firestore
.document('users/{uid}')
.onCreate((snap, context) => {
const customerValue = snap.data();
const uid = context.params.uid;
const timezone = moment.tz.guess();
// const currencyCode = ;
return stripe.customers
.create({
email: customerValue.email
})
.then(customer => {
var customerObject = {
id: customer.id,
currencyCode,
};
return admin
.firestore()
.doc(`/users/${uid}/billing/${customer.id}`)
.set(customerObject);
});
});
По умолчанию клиент создается в Stripe как USD. Это прекрасно, но с помощью timezone
есть API или пакет для распознавания кода местной валюты для часового пояса. Например, если часовой пояс, возвращенный из moment
, был Australia/Adelaide
, как мне получить currencyCode
, чтобы вернуть как aud
?
Одно решение, с которым я столкнулся, использовало country-tz-currency , но сначала мне нужно было бы получить код страны из часового пояса, и я надеялся на более простое решение.