SubscriptionActivationService: guard against merchant mismatch

This commit is contained in:
萝卜
2026-03-15 02:56:31 +00:00
parent 9872296968
commit 09c8aeca2a
2 changed files with 83 additions and 0 deletions

View File

@@ -58,6 +58,11 @@ class SubscriptionActivationService
/** @var SiteSubscription $subscription */
$subscription = SiteSubscription::query()->findOrFail($order->site_subscription_id);
// 治理安全阀订单绑定的订阅必须属于同一站点merchant否则拒绝同步避免误续费/串单。
if ((int) $subscription->merchant_id !== (int) $order->merchant_id) {
throw new \InvalidArgumentException('订阅与订单站点不一致请核对订阅ID与订单站点后再同步');
}
// 以 ends_at 为基准续期:
// - 若 ends_at 为空或已过期 => 从 now 起算
// - 若仍有效 => 从 ends_at 起算