=== Hotspot Portal authorization verification === [PASS] Demo STK is OFF (real mode) [PASS] Phone number validation [PASS] Portal lists 18 active package(s) [PASS] Package NOT activated before payment confirmation [FAIL] Failed STK should mark payment failed [FAIL] Callback not accepted: [FAIL] Activation after confirmed payment: {"ok":true,"status":"pending","message":"Check your phone (0783587531) for the M-Pesa PIN prompt. Enter PIN when it appears, then wait ~30 seconds.","payment_id":385,"amount":5,"method":"mpesa","demo":false,"manual":false,"bank_stk":false,"shortcode":"","account_reference":"","bank_name":"","bank_account_number":"","mpesa_phone":"0783587531","customer":{"id":253,"username":"hs83587531","password":"982960","fullname":"Hotspot 7531","status":"pending","expires_at":null,"package_name":null},"package_id":6,"package_name":"90MINS UNLIMITED"} [FAIL] Validity / expiry not applied [FAIL] Page /portal HTTP 0 [FAIL] Page /portal/packages HTTP 0 [FAIL] Page /portal/buy?package_id=6 HTTP 0 [FAIL] Unauthenticated package access not blocked (HTTP 0 loc=) [PASS] Package audit log records admin action + timestamp [PASS] Demo confirm blocked in real mode RESULT: 8 check(s) failed.