Changelog
modu-parking/start-payment now fail-closes on the same live availability conditions that the Modu Parking frontend uses before payment:
For ticket payments, pass price or total_price, point, predict_begin_time, and predict_end_time copied from parking-detail.available_days and price_info. For shared parking, pass using_time and price from check-availability, but treat those values as current duration/price candidates rather than a reservation. start-payment now fails before SMS verification when the selected ticket or shared slot is stale, and returns NOT_PURCHASABLE with upstream diagnostics if Modu rejects final shared payment URL creation because the space is full or already in use.