You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Stripe技术问题:如何根据用户地域自动切换结算货币?

实现Stripe根据地理位置自动切换结算货币

要实现这个功能,你需要完成两个核心步骤:为每个货币创建对应Stripe Price ID,以及根据用户地理位置匹配对应Price ID,以下是修改后的代码和详细说明:

前提准备

先在Stripe后台为你的产品创建对应各货币的Price ID:

  • USD:你已有的price_1MKKUgEOzrDWipQGG2tTXjxV
  • EUR:创建EUR货币的Price,获取对应的ID(示例:price_EUR_xxxxxx)
  • GBP:创建GBP货币的Price,获取对应的ID
  • AUD:创建AUD货币的Price,获取对应的ID
  • CHF:创建CHF货币的Price,获取对应的ID

修改后的代码

<script>
var stripe = Stripe( 
"pk_live_51LzJXLEOzrDWipQGPi4HbwFv1xxGw7wty7jifLYuKU9VwfpNvCb1DIfDohwHfJSk9VKQ1BhdpDIR8bVnjA9fEzR200y8nDoKqj"
)

// 替换成你实际的各货币Price ID
const priceByCountry = {
  'DE': 'price_EUR_xxxxxx', // 德国用户自动使用EUR价格
  'GB': 'price_GBP_xxxxxx', // 英国用户自动使用GBP价格
  'AU': 'price_AUD_xxxxxx', // 澳大利亚用户自动使用AUD价格
  'CH': 'price_CHF_xxxxxx', // 瑞士用户自动使用CHF价格
  'default': 'price_1MKKUgEOzrDWipQGG2tTXjxV' // 默认使用USD价格
};

document.getElementById("checkout").addEventListener("click", async function(){
  let selectedPrice = priceByCountry['default'];
  
  try {
    // 通过IP获取用户所在国家代码
    const response = await fetch('https://ipapi.co/json/');
    const data = await response.json();
    const countryCode = data.country_code;
    
    // 如果该国家有对应货币的Price,就切换
    if (priceByCountry[countryCode]) {
      selectedPrice = priceByCountry[countryCode];
    }
  } catch (error) {
    // 获取地理位置失败时,沿用默认USD价格
    console.log('无法获取地理位置,使用默认货币');
  }

  // 发起Stripe结账请求
  const result = await stripe.redirectToCheckout({
    lineItems: [
      {
        price: selectedPrice,
        quantity: 1,
      },
    ],
    mode: 'payment',
    successUrl: `https://galusfilms.com/luts=success`,
    cancelUrl: `https://galusfilms.com/luts=cancel`,
  });

  // 处理结账错误
  if (result.error) {
    alert(result.error.message);
  }
})
</script>

关键说明

  1. Price ID映射:priceByCountry对象中的国家代码(如DE代表德国)对应你在Stripe后台创建的对应货币Price ID,需要手动替换为实际ID。
  2. 地理位置获取:代码使用免费的ipapi.coAPI获取用户IP对应的国家,无需后端支持,且允许跨域请求。若获取失败,会自动 fallback 到默认USD价格。
  3. 异步处理:用async/await处理API请求,逻辑更直观,适合新手理解。
  4. 错误处理:加入了API请求失败和Stripe结账错误的处理,避免页面无响应。

内容的提问来源于stack exchange,提问作者snaphix

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 21:40:27