通过运费选项可以显示各种运输选项,如标准、快递和隔夜运输,并提供更准确的运费估计。使用不同的 Stripe 产品向客户收取运费。创建运费前,了解如何收集账单地址和收货地址。
注意
运费仅支持整个订单的固定金额值。您无法根据订单中的商品数量调整运费。
注意
运费仅支持整个订单的固定金额值。您无法根据订单中的商品数量调整运费。
通过管理平台添加运费:
- 点击创建运费。
- 输入一个金额、描述和可选的预计送达时间。
- 点击保存,然后复制运费 ID (
shr_123456
)。

输入运费详情
要创建包含您的运费的 Checkout Session,请将生成的运费 ID 传递到 shipping_options 参数。如果想与 Checkout Session 同时创建运费,请使用带 shipping_options
的 shipping_rate_data
参数。仅支付模式下的 Checkout Sessions 支持配送选项。
以下代码示例向 Checkout Session 中添加两个配送选项:
- 免运费,预计交货时间为 5-7 个工作日。
- 次日空运,费用为 15.00 美元,预计送达时间为 1 个工作日。
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][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 \
-d ui_mode=custom \
--data-urlencode return_url="https://example.com/return"
在您的客户端上,用 shippingOptions 对象呈现可用的配送选项,例如在单选按钮列表中。当客户选择配送选项时,用配送选项的 ID 调用 updateShippingOption。
<div id="shipping-options"></div>
checkout.session().shippingOptions.forEach((option) => {
const form = document.createElement('form');
shippingOptions.forEach(option => {
const label = document.createElement('label');
const radio = document.createElement('input');
radio.type = 'radio';
radio.id = option.id;
radio.name = 'shippingOption';
radio.value = option.id;
radio.addEventListener('click', () => {
checkout.updateShippingOption(option.id)
})
const labelText = document.createTextNode(option.displayName);
label.appendChild(radio);
label.appendChild(labelText);
form.appendChild(label);
});
document.getElementById('shipping-options').appendChild(form);
});
const shippingAddressElement = checkout.createShippingAddressElement();
shippingAddressElement.mount('#shipping-address');