It sounds like the capabilities of the IP Phone Services SDK might be what you are looking for:
https://developer.cisco.com/site/ip-phone-services/
For example:
- Create a web service that listens for HTTP GET requests for a URL like 'http://webService/opendoor.js'
- Configure a CUCM phone service that points to that URL
- Configure one of the phone's speed dial button as an IPPS service, selecting the service created above
- When the user pressed the speed dial button, the phone will make the HTTP request to the configured URL (the web service would do whatever is needed to open the door)
- Note, the service will need to return a valid IPPS format XML object for the phone to render on its screen - i.e. it could be a simple text display of 'Door open: SUCCESS' or similar