根据用户时区返回当地货币代码



我正在寻找一种解决方案,根据用户的时区获取用户的本地货币代码。

使用Stripe和Firebase,我正在Firebase Auth上创建一个Firestore记录。当用户注册时,function会创建包含用户时区的数据库记录。然后在 Stripe 内部创建一个客户。

为了获取用户时区,我正在使用moment-timezone包中提供的moment.tz.guess()。然后,系统会将其作为 Firestore 记录保存到 Firebase 中。

该函数编码为

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);
      });
  });

默认情况下,客户在条纹中创建为美元。这完全没问题,但使用timezone有一个 API 或包来识别时区的当地货币代码。例如,如果从moment返回的时区Australia/Adelaide,如何让currencyCode返回为aud

我遇到的一种解决方案是使用国家/地区 tz-货币,但我首先需要从时区获取国家/地区代码,我希望有一个更简单的解决方案。

我总是在我的项目中使用此 API,这不仅会根据国家/地区为您提供货币代码,还会提供一些其他有用的数据(如纬度和经度,...(基本上它只是一个 GET 请求,它返回用户本地位置信息的对象,Including continent_code

它也有很棒的文档,好消息是最多 10.000 个请求/m 是免费的。

相关内容

  • 没有找到相关文章

最新更新