Investigation completed.I was able to reproduce this problem on your end, thank you! I'ts not really a "bug" causing this ( at least not in the full sense of the word ), it's more of an unexpected behavior on the part of Authorize.Net. I'm marking this thread though, so we can update s2Member in a future release to deal with this.
The problem.You're running s2Member Pro against a live Authorize.Net account, in TEST MODE. s2Member can be tested with Authorize.Net Sandbox mode, against an Authorize.Net Sandbox/Test account, but when you attempt to run test transactions against a live account like this, Authorize.Net returns a big fat `0` for all transaction IDs, and s2Member does not deal with this.
Solution. Switch to LIVE mode, or put s2Member into Sandbox mode, and run your tests against an Authorize.Net Sandbox/Test account. You can get one here:
https://developer.authorize.net/testaccount/ You'll find further details regarding Authorize.Net Test Acccounts, in your Dashboard, under:
s2Member -> Authorize.Net Options.
@TODO: Update s2Member to deal with TEST MODE against a live account with `0` transaction IDs.