调至内容部分
创建账户
或
登录
Stripe 文档徽标
/
询问人工智能
创建账户
登录
开始
付款
销售收入
平台和交易市场
资金管理
开发人员资源
概览
关于 Stripe 支付
升级您的集成
支付分析
线上付款
概览查找您的用例Managed Payments
使用 Payment Link
构建结账页面
    概览
    快速开始
    自定义外观样式
    收集额外信息
      收集物理地址
      收取运费
      收集电话号码
      添加自定义字段
      收集促销邮件通知许可
    收税
    动态更新结账流程
    管理产品目录
    订阅
    管理支付方式
    让客户用本地货币支付
    添加折扣、追加销售和可选商品
    设置未来付款
    支付过程中保存付款详情
    在您的服务器上手动批准支付
    付款后
    具有 Checkout Sessions API Beta 更改日志的 Element
    从传统 Checkout 迁移
    迁移 Checkout 来使用 Prices
构建高级集成
构建应用内集成
支付方式
添加支付方式
管理支付方式
用 Link 更快结账
支付接口
Payment Links
结账
Web Elements
In-app Payments
支付场景
处理多种货币
自定义支付流程
灵活收单
编排
线下支付
Terminal
超越支付功能
成立公司
加密货币
Financial Connections
Climate
了解欺诈
Radar 欺诈保护
管理争议
验证身份
首页付款Build a checkout pageCollect additional information

收取运费

为您的客户创建不同的运费。

通过运费选项可以显示各种运输选项,如标准、快递和隔夜运输,并提供更准确的运费估计。使用不同的 Stripe 产品向客户收取运费。创建运费前,了解如何收集账单地址和收货地址。

注意

运费仅支持整个订单的固定金额值。您无法根据订单中的商品数量调整运费。

创建运费
管理平台
服务器端

注意

运费仅支持整个订单的固定金额值。您无法根据订单中的商品数量调整运费。

通过管理平台添加运费:

  1. 点击创建运费。
  2. 输入一个金额、描述和可选的预计送达时间。
  3. 点击保存,然后复制运费 ID (shr_123456)。

输入运费详情

更新运费

您不能在管理平台中直接更新运费费率。若要在管理平台中更新,您必须先存档该运费费率,再创建新的运费费率。

存档运费费率

存档运费费率:

  1. 在运费费率 选项卡上,选择适用的运费费率。
  2. 单击溢出菜单 ,然后选择存档。

若要取消存档运费费率,请单击溢出菜单 ,然后选择取消存档运费费率。

创建一个 Checkout Session
服务器端

要创建包含您的运费的 Checkout Session,请将生成的运费 ID 传递到 shipping_options 参数。如果想与 Checkout Session 同时创建运费,请使用带 shipping_options 的 shipping_rate_data 参数。仅 payment mode 下的 Checkout Sessions 支持配送选项。

以下代码示例向 Checkout Session 中添加两个配送选项:

  • 免运费,预计交货时间为 5-7 个工作日。
  • 次日空运,费用为 15.00 美元,预计送达时间为 1 个工作日。

该例中,shipping_options 数组中的第一个选项是在结账页面上为客户预选的。但是,客户可以选择其中任何一个选项。

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/checkout/sessions \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d "shipping_address_collection[allowed_countries][0]"=US \ -d "shipping_address_collection[allowed_countries][1]"=CA \ -d "shipping_options[0][shipping_rate_data][type]"=fixed_amount \ -d "shipping_options[0][shipping_rate_data][fixed_amount][amount]"=0 \ -d "shipping_options[0][shipping_rate_data][fixed_amount][currency]"=usd \ -d "shipping_options[0][shipping_rate_data][display_name]"="Free shipping" \ -d "shipping_options[0][shipping_rate_data][delivery_estimate][minimum][unit]"=business_day \ -d "shipping_options[0][shipping_rate_data][delivery_estimate][minimum][value]"=5 \ -d "shipping_options[0][shipping_rate_data][delivery_estimate][maximum][unit]"=business_day \ -d "shipping_options[0][shipping_rate_data][delivery_estimate][maximum][value]"=7 \ -d "shipping_options[1][shipping_rate_data][type]"=fixed_amount \ -d "shipping_options[1][shipping_rate_data][fixed_amount][amount]"=1500 \ -d "shipping_options[1][shipping_rate_data][fixed_amount][currency]"=usd \ -d "shipping_options[1][shipping_rate_data][display_name]"="Next day air" \ -d "shipping_options[1][shipping_rate_data][delivery_estimate][minimum][unit]"=business_day \ -d "shipping_options[1][shipping_rate_data][delivery_estimate][minimum][value]"=1 \ -d "shipping_options[1][shipping_rate_data][delivery_estimate][maximum][unit]"=business_day \ -d "shipping_options[1][shipping_rate_data][delivery_estimate][maximum][value]"=1 \ -d "line_items[0][price_data][currency]"=usd \ -d "line_items[0][price_data][product_data][name]"=T-shirt \ -d "line_items[0][price_data][unit_amount]"=2000 \ -d "line_items[0][quantity]"=1 \ -d mode=payment \ --data-urlencode success_url="https://example.com/success"

如果成功,运费选择器会出现在您的结账页面上:

结账页面上的运费选择器

结账页面上的运费选择器

可选处理已完成的交易

付款成功后,您可以在 shipping_cost 的 amount_total 属性中检索运费金额。您也可以用 shipping_cost 中的 shipping_rate 属性来检索选择的运费。要访问 shipping_cost 属性,必须创建一个事件处理程序来处理已完成的 Checkout Session。您可以通过安装 Stripe CLI 并用 stripe listen --forward-to localhost:4242/webhook 将事件转发到您的本地服务器来测试处理程序。在下面的代码示例中,处理程序允许用户访问 shipping_property:

Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
# Set your secret key. Remember to switch to your live secret key in production! # See your keys here: https://dashboard.stripe.com/apikeys Stripe.api_key =
"sk_test_BQokikJOvBiI2HlWgH4olfQ2"
require 'sinatra' # You can find your endpoint's secret in your webhook settings endpoint_secret = 'whsec_...' post '/webhook' do event = nil # Verify webhook signature and extract the event # See https://stripe.com/docs/webhooks#verify-events for more information. begin sig_header = request.env['HTTP_STRIPE_SIGNATURE'] payload = request.body.read event = Stripe::Webhook.construct_event(payload, sig_header, endpoint_secret) rescue JSON::ParserError => e # Invalid payload return status 400 rescue Stripe::SignatureVerificationError => e # Invalid signature return status 400 end if event['type'] == 'checkout.session.completed' checkout_session = event['data']['object'] fulfill_order(checkout_session) end status 200 end def fulfill_order(checkout_session) selected_shipping_rate = Stripe::ShippingRate.retrieve(checkout_session.shipping_cost.shipping_rate) shipping_total = checkout_session.shipping_cost.amount_total # TODO: Remove error and implement... raise NotImplementedError.new(<<~MSG) Given the Checkout Session "#{checkout_session.id}" load your internal order from the database then implement your own fulfillment logic. MSG end

可选定义预计送达时间

您可以用一系列交付估计组合来配置运费。下表包含一些简单的英文送达时间估计,以及它们对应的 delivery_estimate.minimum 和 delivery_estimate.maximum 的值。

预计送达时间最小最大
1 天
{ unit: 'day', value: 1, }
{ unit: 'day', value: 1, }
1 个工作日
{ unit: 'business_day', value: 1, }
{ unit: 'business_day', value: 1, }
至少 2 个工作日
{ unit: 'business_day', value: 2, }
null
3 到 7 天
{ unit: 'day', value: 3, }
{ unit: 'day', value: 7, }
4 到 8 小时
{ unit: 'hour', value: 4, }
{ unit: 'hour', value: 8, }
4 小时到 2 个工作日
{ unit: 'hour', value: 4, }
{ unit: 'business_day', value: 2, }

可选对运费征收税费

您可以用 Stripe Tax,通过在运费上设置一个 tax_code 和 tax_behavior 来计算运费的税额。Stripe Tax 自动确定运费是否应税(因为应税性因国家/地区而异),并在需要时应用正确的税率。

用 shipping_rate_data 或通过 Create a Shipping Rate 创建运费时,可以向运费中添加一个 tax_behavior 和 tax_code 参数。

建议将 tax_code 设置为 Shipping (txcd_92010001),确保您始终收取正确的税额。如果不想收税,还可以将运费 tax_code 设置为 Nontaxable (txcd_00000000)。

该例中,我们将 tax_behavior 设置为 exclusive,这在美国是比较常见的。了解有关税务行为 的更多信息。

Command Line
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
curl https://api.stripe.com/v1/checkout/sessions \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d billing_address_collection=required \ -d "shipping_address_collection[allowed_countries][0]"=US \ -d "shipping_address_collection[allowed_countries][1]"=CA \ -d "shipping_options[0][shipping_rate_data][type]"=fixed_amount \ -d "shipping_options[0][shipping_rate_data][fixed_amount][amount]"=0 \ -d "shipping_options[0][shipping_rate_data][fixed_amount][currency]"=usd \ -d "shipping_options[0][shipping_rate_data][display_name]"="Free shipping" \ -d "shipping_options[0][shipping_rate_data][tax_behavior]"=exclusive \ -d "shipping_options[0][shipping_rate_data][tax_code]"=txcd_92010001 \ -d "shipping_options[0][shipping_rate_data][delivery_estimate][minimum][unit]"=business_day \ -d "shipping_options[0][shipping_rate_data][delivery_estimate][minimum][value]"=5 \ -d "shipping_options[0][shipping_rate_data][delivery_estimate][maximum][unit]"=business_day \ -d "shipping_options[0][shipping_rate_data][delivery_estimate][maximum][value]"=7 \ -d "line_items[0][price_data][currency]"=usd \ -d "line_items[0][price_data][product_data][name]"=T-shirt \ -d "line_items[0][price_data][unit_amount]"=2000 \ -d "line_items[0][price_data][tax_behavior]"=exclusive \ -d "line_items[0][quantity]"=1 \ -d "automatic_tax[enabled]"=true \ -d mode=payment \ --data-urlencode success_url="https://example.com/success"

您的客户可以在结账页面上看到运费费率的计算税费金额计入总销售税中:

结账页面上运费费率的计算税费金额

结账页面上运费费率的计算税费金额

此页面的内容有帮助吗?
是否
  • 需要帮助?联系支持。
  • 加入我们的早期使用计划。
  • 查看我们的更改日志。
  • 有问题?联系销售。
  • LLM? Read llms.txt.
  • Powered by Markdoc