Just a question, sorry if this isn't related to the OP, but I use Bitpay not by choice and wondered a few times about why people would want to extract the BTC address to pay to.
First, is it more advantageous to do that direct payment instead of paying straight to the Bitpay invoice? Second, can Bitpay invoice still detect the payment if you make a direct payment to the address derived? Last, why would Bitpay ever do that? After you pay you can already see the address anyway. I don't understand this.
If the wallet you're using doesn't support that, you wouldn't be able to make the payment so you'll need a decoder like the ones posted above. I'm using this method and the invoice gets paid just fine.
Regarding BIP70:
https://blog.bitcoin.org.hk/bitpay-is-using-the-payment-protocol-to-take-your-privacy-8093bf91eda7