客户填写独立账单地址,切换支付方式后又恢复配送地址。通常是支付renderer重新初始化时覆盖了billingAddress Observable。

解决记录

步骤1:记录切换前后checkoutProvider与set-billing-address请求,确认只丢UI还是Quote也被改写。

步骤2:检查支付renderer的initialize、selectPaymentMethod和afterRender,不能每次显示都调用useShippingAddress。

步骤3:same-as-shipping订阅只在用户操作时更新,并在组件销毁时解除,避免重复subscription反向写值。

步骤4:保存Billing Address的Promise完成后再提交订单,后端以Quote最后地址为准。

命令与数据检查
rg -n 'isAddressSameAsShipping|billingAddress|selectPaymentMethod|setBillingAddress' app/code app/design
# Network检查/carts/*/billing-address与/payment-information

上线前验收

三个支付方式来回切换,独立账单地址保持;只有勾选同配送时才同步,Order地址与页面一致。