Logo

Shopify 支付相关应用注意:10 月 15 日前必须完成 mTLS 迁移

avatar jayce 04 Nov 2026

7 月 16 日,Shopify 在开发者更新日志中发布了一项与支付数据安全相关的变更:使用特定方式向 Shopify 存入持卡人数据的应用,需要在 2026 年 10 月 15 日前完成 mTLS 迁移。

这项变更不面向所有 Shopify 应用,也不是所有支付应用都会受到影响。更准确地说,它影响的是会把原始信用卡持卡人数据提交到 Shopify card-deposit endpoint 的应用。

如果你的团队维护 Shopify 支付应用、订阅迁移工具、支付方式导入工具,或为 DTC 品牌提供相关定制开发,这项变更值得尽快核查。

Shopify 具体要求是什么?

根据 Shopify 官方 changelog,Shopify 的 card-deposit endpoint 现在要求请求携带 Shopify 签发的 mTLS client certificate。

涉及的 endpoint 是:https://checkout-mtls.pci.shopifyinc.com/sessions

这个 endpoint 本身没有变化,变化在于:未来每一次向它提交持卡人数据的请求,都必须带上 Shopify 签发的 mTLS 客户端证书。

Shopify 给出的迁移截止时间是 2026 年 10 月 15 日。执行开始后,如果请求没有有效证书,相关 deposit 请求将被拒绝。未完成迁移的应用,将无法继续向 Shopify 存入新的持卡人数据。

哪些 API / 应用会受影响?

受影响的是会通过 Shopify card-deposit endpoint 提交持卡人数据,并随后调用以下 GraphQL Admin API mutation 的应用:

  • customerPaymentMethodCreditCardCreate
  • customerPaymentMethodCreditCardUpdate

这两类 mutation 都依赖 sessionId。这个 sessionId 来自应用先把卡数据提交到 Shopify 的 /sessions card-deposit endpoint。

典型流程可以理解为:应用在 PCI 合规环境中处理原始卡数据;将卡数据提交到 Shopify /sessions endpoint;Shopify 返回一个 session identifier;应用再调用 customerPaymentMethodCreditCardCreate 或 customerPaymentMethodCreditCardUpdate,把该 session identifier 传给 Shopify。

这类场景通常出现在保存卡、更新卡、订阅支付方式迁移、客户支付方式入库等业务中。

哪些应用不受影响?

Shopify 明确说明,customerPaymentMethodRemoteCreate 不在此次变更范围内。

如果应用只是从外部支付网关导入已有支付方式引用,例如 Stripe、Braintree、Authorize.Net、Adyen 或 PayPal,并且只调用 customerPaymentMethodRemoteCreate,那么不需要针对这次 card-deposit endpoint 的 mTLS 要求采取行动。

原因是这类调用导入的是外部网关已有支付方式的引用,不会把原始持卡人数据提交到 Shopify 的 card-deposit endpoint。

mTLS 是什么?

mTLS 全称是 mutual TLS,即双向 TLS 认证。

普通 HTTPS/TLS 中,通常是客户端验证服务器身份。比如浏览器访问网站时,会检查网站证书是否可信。mTLS 则进一步要求双方都验证对方:客户端验证服务器可信,服务器也验证客户端可信。

放在 Shopify 支付场景里,mTLS 的意义是:请求不仅要通过加密通道传输,还要能证明是谁在发起请求。

Shopify 在支付扩展技术要求中也提到,支付扩展需要使用 mTLS 来保证 Shopify 与支付扩展之间双向通信的安全和可信。对于 Shopify 发起到支付应用服务器的 payment、refund、capture、void 等请求,支付应用需要验证请求确实来自 Shopify。

这次 changelog 的重点稍有不同:它针对的是应用向 Shopify card-deposit endpoint 提交卡数据时,应用侧需要提供 Shopify 签发的客户端证书,让 Shopify 能验证提交方身份。

Shopify 为什么要做这次迁移?

Shopify 官方给出的原因很直接:所有到达 card-deposit endpoint 的持卡人数据流量,都必须能归因到经过认证的调用方。

也就是说,Shopify 希望确保每一笔提交到该 endpoint 的卡数据请求,都能确认来源。

这项变更也被 Shopify 描述为 2026 年黑色星期五和网络星期一前的重要安全准备。mTLS client certificate 是 Shopify 后续拒绝未认证 deposit 流量的前提。

对于处理支付数据的应用来说,这也是一个合理的安全升级方向:提高 cardholder data 提交流量的可识别性,降低未认证流量进入敏感 endpoint 的风险,强化支付链路中的双向信任,并为证书轮换和过期监控建立更明确的运维要求。

对开发者和服务商的实际影响

如果应用受影响,主要影响集中在三点。

1. Deposit 请求需要改造

调用 /sessions card-deposit endpoint 时,需要携带 Shopify 签发的 mTLS client certificate。

原有 GraphQL Admin API vault mutation 不变。customerPaymentMethodCreditCardCreate 和 customerPaymentMethodCreditCardUpdate 的调用方式没有因为这次变更而改变,仍然传入 deposit call 返回的 session identifier。

2. OAuth 流程不受影响

Shopify 官方文档说明,mTLS 不用于获取 OAuth access token。使用 Shopify GraphQL mutation 的请求仍然通过 OAuth access token 认证。不要把这次变更理解为 OAuth 鉴权方式调整。

3. 证书会成为新的运维对象

Shopify 提到,首次证书由 Shopify 手动签发,通常需要几天时间。完成首次证书后,后续可以通过 Shopify 的 Certificate Signing Service 自助轮换。

证书有效期为 1 年。错过轮换可能导致 deposit 停止,因此证书过期时间需要纳入监控、告警和发布检查流程。

建议行动清单

如果你维护 Shopify 支付相关应用,可以按下面顺序排查。

第一步:确认是否调用受影响 mutation

检查代码、任务脚本、迁移工具和后台服务中是否调用 customerPaymentMethodCreditCardCreate 或 customerPaymentMethodCreditCardUpdate。

如果有,继续确认是否会向 Shopify /sessions card-deposit endpoint 提交原始卡数据。

第二步:区分 remote import 与 card deposit

如果只调用 customerPaymentMethodRemoteCreate,并且只是导入外部网关已有支付方式引用,按照 Shopify 当前说明,不属于此次 mTLS 迁移范围。

如果同时存在 remote import 和 credit card deposit 两类逻辑,需要分别处理,不能只看应用名称或业务模块名称下结论。

第三步:申请 Shopify 签发的 client certificate

Shopify 要求受影响应用向 shopify-mtls-partnerships@shopify.com 申请证书。申请时需要提供 API client ID 和技术联系人。

由于首次证书由 Shopify 手动签发,并且需要几天时间,不建议等到 10 月再处理。

第四步:改造 /sessions deposit 调用

在向 https://checkout-mtls.pci.shopifyinc.com/sessions 发起请求时携带证书。完成后,继续将返回的 session identifier 传入对应 GraphQL Admin API mutation。GraphQL mutation 本身不需要因为这次迁移调整为 mTLS 认证。

第五步:验证与监控

迁移完成后,需要确认 deposit traffic 已经带上有效证书。Shopify 会在其侧验证 cutover。

同时建议增加证书到期时间监控、deposit 请求失败率监控、mTLS 握手失败告警、证书轮换流程演练,以及 10 月 15 日前的上线冻结风险评估。

给品牌方和服务商的提醒

如果你是 Shopify 商家、DTC 品牌或跨境电商团队,通常不需要自己处理 mTLS 代码迁移。但如果你使用了定制支付、订阅迁移、保存卡、客户支付方式迁移等服务,建议向服务商确认:

  • 是否涉及 customerPaymentMethodCreditCardCreate 或 customerPaymentMethodCreditCardUpdate;
  • 是否向 Shopify card-deposit endpoint 提交持卡人数据;
  • 是否已经申请 Shopify-issued mTLS client certificate;
  • 是否能在 2026 年 10 月 15 日前完成上线和验证;
  • 是否已建立证书轮换与过期监控。

这类变更看起来偏底层,但一旦错过截止日期,影响可能直接体现在业务层:新的卡数据无法入库,订阅或客户支付方式迁移流程中断。

小结

Shopify 这次 mTLS 迁移,核心是针对会向 Shopify card-deposit endpoint 提交持卡人数据的应用提出更严格的身份认证要求。

需要重点关注的对象是调用 customerPaymentMethodCreditCardCreate、customerPaymentMethodCreditCardUpdate,并依赖 /sessions deposit 流程获取 session identifier 的应用。

如果应用只使用 customerPaymentMethodRemoteCreate 导入外部网关支付方式引用,按照 Shopify 当前说明,不需要针对本次变更采取行动。

截止时间是 2026 年 10 月 15 日。考虑到首次证书需要 Shopify 手动签发,且上线后还要验证和纳入监控,建议相关团队尽早排查、申请证书并完成灰度验证。

参考来源

  • Shopify Developer Changelog:Card deposit endpoint now requires mTLS certificate(2026-07-16)
  • Shopify Developer Changelog:mTLS client certificate renewal for Payments Apps(2026-04-16)
  • Shopify GraphQL Admin API:customerPaymentMethodCreditCardCreate / customerPaymentMethodCreditCardUpdate / customerPaymentMethodRemoteCreate
  • Shopify Payments Apps implementation considerations
Book Free 30-Min Call