如何在flutter_stripe中获取Stripe支持的货币列表?
能否通过flutter_stripe获取Stripe支持的货币列表?
答案:flutter_stripe本身没有提供直接获取Stripe支持货币列表的客户端API,因为该列表属于Stripe维护的静态数据,且flutter_stripe的定位是处理客户端支付交互,而非调用Stripe的管理类API。你可以通过以下两种方式实现需求:
方式一:直接使用静态货币列表
Stripe支持的货币列表变动频率极低,你可以从Stripe官方文档中提取完整列表,将其定义为Flutter项目中的常量直接使用:
// 示例:定义Stripe支持的货币常量列表(含代码与名称) const List<Map<String, String>> stripeSupportedCurrencies = [ {'code': 'AED', 'name': '阿联酋迪拉姆'}, {'code': 'AFN', 'name': '阿富汗阿富汗尼'}, {'code': 'ALL', 'name': '阿尔巴尼亚列克'}, // 省略其余货币,完整列表可参考Stripe官方文档 ];
使用时直接遍历该列表即可,后续定期核对Stripe文档更新列表即可。
方式二:通过后端代理调用Stripe API
如果需要实时获取最新列表,可通过自己的后端服务调用Stripe的/v1/currencies API,再由Flutter客户端请求后端接口获取数据:
后端示例(Node.js + Stripe SDK)
const stripe = require('stripe')('your_stripe_secret_key'); app.get('/stripe-currencies', async (req, res) => { try { const currencies = await stripe.currencies.list(); res.json({ currencies: currencies.data.map(c => c.code) }); } catch (err) { res.status(500).json({ error: err.message }); } });
Flutter客户端请求代码
import 'dart:convert'; import 'package:http/http.dart' as http; Future<List<String>> fetchStripeCurrencies() async { final response = await http.get(Uri.parse('https://your-backend-domain.com/stripe-currencies')); if (response.statusCode == 200) { final Map<String, dynamic> data = json.decode(response.body); return List<String>.from(data['currencies']); } else { throw Exception('获取货币列表失败'); } }
注意事项
- 静态列表方式适合大多数场景,无需额外后端开发,维护成本低;
- 后端代理方式需确保你的Stripe密钥拥有足够权限,且建议对接口做缓存处理,避免频繁调用Stripe API。
内容的提问来源于stack exchange,提问作者Andrey
相关产品推荐
相关产品推荐

