payin商户操作手册

最新文章

Stripe Checkout 语言设置:选择 auto 或明确 locale,并单独翻译商户文案

判断托管式 Checkout 应跟随浏览器还是店铺语言,映射受支持的 locale,并将商品与自定义文案翻译分开管理。

发布日期及来源核查日期:

聚焦托管式 Checkout Session 的语言选择、受支持值映射、商户翻译责任、货币格式边界和拟议验收场景;不讨论自定义字段答案处理、Elements 运行时切换或货币转换。

先确定语言策略,再选择 locale 值

一位商户反映,Checkout 界面已经是法语,商品名称和描述却仍是英语;另一位开发者询问,使用内联价格数据时应该在哪里设置 locale。这是两个不同的问题:选择 Stripe 界面语言,以及提供商户自己的文案。[6][7]

对于 Stripe 托管式 Checkout,如果预期体验是跟随浏览器语言,可以使用 auto。如果顾客明确选择了店铺语言,而且你能提供相匹配的商品和自定义文案,则建议使用受支持的明确 locale。这是实施建议,不代表所有商店都应采用同一策略。

auto 和明确 locale 分别控制什么

创建 Session 的 API 文档说明,locale 留空或设为 auto 时使用浏览器的语言区域设置。托管页面指南进一步限定:只有 Stripe 支持该语言时才显示对应翻译,并说明创建 Session 时传入 locale 可以覆盖浏览器设置。[1][4]

将参数放在创建 Checkout Session 请求的顶层,与 modeline_items 同级,而不是放在 price_data 中。以下只是请求片段,不是完整集成,也没有执行过。[1]

  • mode=payment
  • locale=fr
  • 根据已验证的订单,在服务端选择 line_items

若希望跟随浏览器,将 fr 换成 auto。店铺显示法语并不等于创建 Session 时已经传入法语参数;如果策略要求保持店铺语言,应明确传入解析结果。不要将这里的托管 Session 指南当作修改现有 Elements 实例语言的方法。

把店铺语言映射为 API 支持的值

文档列出的枚举值包括 enen-GBfrfr-CAes-419pt-BRzhzh-HKzh-TW 等。这只是部分示例,不是完整清单;建立白名单前应核对当前 API 参考。[1]

建议的解析流程是:读取顾客明确选择的语言,通过服务端管理的配置进行映射,检查目标代码是否受支持,再选择经过审核的文案包。例如,店铺使用 en-US 时,应用可以明确映射为 en;这是你自己的映射策略,不是 Stripe 接受任意语言标签的承诺。

如果店铺语言不受支持,应选择并向顾客说明你实际支持的回退语言,或明确选择 auto。不要擅自假定 Stripe 必然回退为某种语言,也不要假定浏览器语言列表的精确协商顺序;本次阅读的来源没有说明这些细节。不要把未经检查的浏览器输入直接当成 API 白名单值。

把界面翻译与商户文案分开管理

Stripe 明确说明不会翻译自定义字段标签,并建议通过 Session locale 让界面语言与标签保持一致。商品数据 API 则单独接收面向顾客的名称和描述字符串。[4][5] 社区问题说明,界面已经本地化,并不证明商品目录也已本地化。[6]

建议这样划分责任:Checkout 处理其自身界面,商户维护并审核商品名称、商品描述、自定义字段标签及附加消息的翻译。不要把 locale 当成商品目录翻译流程。引用的商品结构描述的是传入的字符串,而不是按语言组织的翻译字典。[5]

如果使用已保存的 Price,应检查关联商品的文案,不要假定增加 locale 就会改写它。如果现有集成本来就创建内联商品,可以从文案包中选择翻译后的 product_data.name,并在适用时提供 product_data.description。[5] 建议不要为每位顾客临时修改同一个共享商品名称;应设计清楚目录结构,并保留内部 SKU 与订单的映射。这是设计建议,不是要求仅为翻译就替换现有的价格模型。

附加消息属于商户编写的内容。Stripe 文档说明可以通过 custom_text 提供这些消息,并禁止与 Stripe 生成文本冲突或使其产生歧义的内容。[4] 审核翻译时既要看语言,也要看含义,尤其是配送和同意条款。本指南不讨论如何采集或处理自定义字段答案。

不要把金额格式误认为币种选择

Checkout 也会根据 locale 设置数字和货币显示格式。Stripe 的示例保持 EUR 价格不变:在 auto 模式下,英语浏览器显示 €25.00,德语浏览器显示 25,00 €。[4]

因此,应分别验收显示语言、金额格式和预期扣款币种。金额看起来采用德语格式,不证明集成改变了币种;语言代码也不证明商户所在国家符合开户条件。货币转换、支付方式可用性和结算不在本文范围内。

上线前建议执行的测试矩阵

以下都是拟议测试,尚未执行,也不是观察到的 Stripe 结果。建议创建新的测试 Session,记录浏览器语言配置和请求中的 locale,并分别检查托管界面与商户文案。

  • auto/法语浏览器/法语文案包:检查文档描述的跟随浏览器行为,并确认传入的商品及自定义文案为法语。
  • auto/英语浏览器/法语文案包:检查这个故意制造的不一致场景。决定是否允许混合语言,不要期待自定义标签自动翻译。
  • 明确 fr/英语浏览器/法语文案包:检查界面是否采用明确设置的语言,以及商户文案是否一致。
  • 店铺 en-US/映射为 en:确认解析器发送的是受支持的映射值,而不是未经检查地转发店铺语言标签。
  • 不受支持的店铺语言:检查应用自己的回退分支、面向顾客的说明及对应文案包。另行观察浏览器语言不受支持的行为,但不要预先宣称 Stripe 的回退结果。
  • 相同 EUR 商品/en 与 de:检查分隔符与货币符号位置,同时核对请求中的预期金额和币种。
  • 缺少翻译/创建前切换语言:检查配置的回退是否清楚可见,以及新建 Session 是否使用一致的语言决策。还应在窄屏上检查较长的名称和消息。

为便于复现,建议保留 Session ID、请求的 locale、文案包版本以及脱敏截图。不要记录密钥或支付详情。这些都是建议的质量检查措施。

范围、证据与日期

本文针对 Stripe 托管式 Checkout 开展文档研究,核验日期为 2026 年 9 月 23 日。没有使用已登录账户,没有发起支付,也没有执行浏览器语言实验。社区帖子证明存在具体的历史问题,不代表搜索量或当前 API 行为。获取的官方页面没有注明发布日期或更新日期。支持某种语言不等于在某个国家可以开户或使用某种支付方式;本文不承诺全球可用。

来源与日期

更多指南