You could use Nexmo (or a similar SMS API), to purchase and proxy through the virtual numbers.
Here's some example code - the specific use case for the example is a situation where you want to mask the user's phone numbers; however, the same concept applies to what you want to do.
And here's a more high level implementation guide on proxying SMS through virtual numbers (or direct to the Prezi).
Disclaimer: I do some developer evangelism for Nexmo.