如何通过Stripe设置运费收取及限制仅英国支付
Stripe 运费设置与地址限制解决方案
一、无法收取运费的排查与设置
- 区分建站类型处理:如果用Shopify、WooCommerce这类现成建站系统,运费设置完全在平台后台操作(比如WooCommerce的「设置→配送」,Shopify的「设置→配送和发货」),配置好运费规则后关联Stripe即可,无需改代码;如果是自定义开发的网站,必须在代码层面通过Stripe API配置。
- 自定义开发的代码示例:
创建Stripe Checkout Session时,通过shipping_options参数定义运费规则:stripe.checkout.Session.create( payment_method_types=['card'], line_items=[{ 'price': 'price_123', 'quantity': 1, }], shipping_options=[{ 'shipping_rate_data': { 'type': 'fixed_amount', 'fixed_amount': { 'amount': 500, # 单位为分,对应5英镑 'currency': 'gbp', }, 'display_name': 'Standard Delivery', 'delivery_estimate': { 'minimum': {'unit': 'business_day', 'value': 2}, 'maximum': {'unit': 'business_day', 'value': 3}, } } }], mode='payment', success_url='https://your-site.com/success', cancel_url='https://your-site.com/cancel', ) - 关键排查点:先确认Stripe后台是否开启运费相关配置,再检查网站端是否正确将配送信息传递给Stripe接口。
二、限制账单/配送地址为英国
- 现成建站平台操作:在平台后台的配送设置中直接勾选「仅允许英国配送」,账单地址限制可在支付模块的「允许国家」选项里只保留英国。
- 自定义开发的代码实现:
创建Checkout Session时,通过shipping_address_collection参数限制配送国家:
若需限制账单地址,可通过stripe.checkout.Session.create( payment_method_types=['card'], line_items=[{ 'price': 'price_123', 'quantity': 1, }], shipping_address_collection={ 'allowed_countries': ['GB'], # 英国的ISO 3166-1 alpha-2代码 }, billing_address_collection='required', # 可选,强制收集账单地址 mode='payment', success_url='https://your-site.com/success', cancel_url='https://your-site.com/cancel', )payment_method_options补充配置:payment_method_options={ 'card': { 'billing_address_collection': 'required', 'allowed_countries': ['GB'] } } - 注意:Stripe仅识别ISO 3166-1 alpha-2格式的国家代码,英国需用
GB而非UK。
内容的提问来源于stack exchange,提问作者Reece Pike
相关产品推荐
相关产品推荐

