用途:指导升级 Stripe API 版本、服务端 SDK、Stripe.js 与移动端 SDK。资料称最新 API 版本为 2026-04-22.dahlia,除非用户指定其他目标版本。
主要能力:说明 Stripe 基于日期的 API 版本机制(如 2026-04-22.dahlia、2025-08-27.basil、2024-12-18.acacia);区分向后兼容变更(新资源、新可选参数、新响应属性、opaque 字符串长度变化、新 webhook 事件类型)与破坏性变更(字段改名或移除、行为变更、移除端点或参数);介绍各端版本管理方式。
服务端 SDK:动态类型语言(Ruby、Python、PHP、Node.js)可全局配置或按请求覆盖版本,例如 Python 设 stripe.api_version = '2026-04-22.dahlia',Node.js 在初始化时传 apiVersion。强类型语言(Java、Go、.NET)使用与 SDK 发布日期绑定的固定 API 版本,不应另行设置,应更新 SDK。最佳实践是在代码中显式指定所集成的 API 版本,而非依赖账户默认。
Stripe.js:采用常青模型,按半年发布主版本(Acacia、Basil、Clover、Dahlia),可通过 script 标签加载 https://js.stripe.com/dahlia/stripe.js 或 npm 安装 @stripe/stripe-js。每个 Stripe.js 版本自动配对对应 API 版本且不可覆盖,例如 Dahlia 配对 2026-04-22.dahlia,Acacia 配对 2024-12-18.acacia。从 v3 迁移需先识别当前版本、查阅变更日志,可先逐步更新 API 版本再切换 Stripe.js;v3 仍被无限期支持。
移动端 SDK:iOS 与 Android 遵循语义化版本(MAJOR 破坏性、MINOR 新功能、PATCH 修复),新功能与修复仅发布在最新主版本;React Native 使用 0.x.y 模型,minor 变更含破坏性变更与新功能,patch 仅关键修复。移动端 SDK 通常可与后端任意 API 版本配合,除非文档另有说明。
升级清单:查阅 API Changelog 与 Upgrades Guide;更新服务端 SDK 包版本(如 npm update stripe、pip install --upgrade stripe);更新初始化中的 apiVersion;用 Stripe-Version 头测试新版本;更新 webhook 处理逻辑;按需更新 Stripe.js 与移动 SDK 版本;数据库中存储 Stripe 对象 ID 需支持最长 255 字符且大小写敏感排序。
测试:可用 Stripe-Version 头在不改默认版本的情况下测试,例如 curl https://api.stripe.com/v1/customers -u sk_test_xxx: -H "Stripe-Version: 2026-04-22.dahlia"。
限制与注意:webhook 监听器应优雅处理未知事件类型,升级前用新版本结构测试 webhook;破坏性变更按受影响产品领域标注;多个 API 版本可同时共存,支持分阶段采用。资料未提供具体定价信息。