国际版外卖系统:多语言配置和支付通道怎么分开测
国际版外卖系统交付中若把 i18n 发布与支付通道配置绑在同一次上线窗口任一环节回滚都会拖死另一项。更稳的是多语言配置与支付通道分开测语言走配置中心版本号支付走沙箱 intent 回调幂等。结论locale 与 payment profile 解耦locale_bundle (version L12) payment_profile (countryXX, channelY) order-service (language-agnostic)订单服务不依赖 UI 语种支付 profile 按国家切换不随换语言包而变。语言包版本化发布{locale:ja-JP,bundle_version:20260927.2,strings:{checkout.pay:お支払い}}客户端If-None-Match: bundle_version拉取后台改文案 bump 版本无需重发支付证书。支付固定 locale 下沙箱验收defcreate_intent(order_id:str,payment_profile_id:str)-dict:profilepayment_profiles.get(payment_profile_id)orderorder_repo.get(order_id)returnchannel_adapter(profile).create_intent(amountorder.amount,currencyprofile.currency,notify_urlprofile.notify_url,)验收阶段用localeen-US或默认语即可测 intent 回调语言包可并行换ja-JP只验展示。分开测的三段段 1仅语言切换 bundle用户端/商家端文案更新不下单。段 2仅支付固定默认语沙箱小额单验签与paid状态。段 3组合目标语种 正式 profile端到端一单。导出与 localeCSV 列名宜走export_locale配置与 UI 语种可独立。财务日文列名、用户英文界面可同时存在。常见踩坑坑 1支付页字符串硬编码宜全部走语言包或模板引擎。坑 2换语言触发支付 profile 切换profile 应绑国家/商户不绑 locale。坑 3对账文件仅默认语export 模板宜可配置。光合同城边界光合同城海外版成品支持语言包与支付 profile 解耦各国通道与税务字段按需定制对接商务规则由客户在当地确定系统侧不抽成客户平台订单。小结国际版外卖系统多语言与支付分开测并行推进、独立回滚端到端组合验收放在两段都绿之后。商家端与骑手端 locale商家 App 与骑手 App 宜独立bundle_id可共用locale_version指针。发布日语包时三端同时 bump 或允许 stagger但订单服务无感。defget_strings(client:str,locale:str)-dict:bundlelocale_repo.get(client,locale)returnbundle.strings对账导出 regressiondeftest_export_headers_match_locale(export_locale,sample_order_id):rowexport_one(sample_order_id,localeexport_locale)assertrow[header_lang]export_localeassertrow[order_id]sample_order_id支付 profile 热切换生产环境切换 profile 宜灰度新单走新 profile进行中单仍用创建时绑定的payment_profile_id快照避免中途换通道导致回调进错 handler。defcreate_intent(order_id):orderorders.get(order_id)profile_idorder.payment_profile_idorsettings.default_profile...税务字段各国税务列不同宜tax_columns按 profile 配置不写死一国模板为全球默认。税务结论由客户在当地确定。发布回滚locale 回滚 指回旧 bundle_versionpayment 回滚 停用新 profile旧 profile 仍接回调。两维独立回滚禁止「一键回滚全部」误伤支付。监控指标payment_intent_fail_rate、locale_bundle_fetch_304_rate、export_job_duration。语言发布不应引起支付错误率上升。小结补述国际版外卖系统分开测的本质是独立版本线与独立回滚面组合验收是最后一步不是唯一一步。换语言包当天要不要停支付国际版外卖系统换语言包若触发支付配置重载试跑期会出现文案更新了沙箱支付却报错。分开测的含义是语言包发布只 bump 语言版本号支付 profile 不动支付 profile 切换只改国家与通道语言版本号不动。两段各自有回滚面组合验收放在两段都绿之后。商家端与骑手端可共用语言版本指针但宜独立拉取入口避免一端漏更新。对账导出列名可走独立导出语种与用户界面语种解耦用户看英文、商家财务看当地语列名可以同时存在。税务相关列各国不同由客户在当地确定口径系统只提供可配置字段。组合验收前不宜同时变更语言包与支付 profile若必须同窗口发布先回滚面分开演练再合并发布避免「一键回滚全部」误伤已通沙箱的通道。