客户填写独立账单地址,切换支付方式后又恢复配送地址。通常是支付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地址与页面一致。

