I'm developing a software as a service web app, and one of the things I need to implement is automatic recurring billing.
I have three design goals:
Is there a PHP library that can do most of the work for me? Money is tight, but we are willing to pay for a good solution.
It's not the PHP library that would cost you money. It's the merchant account/payment gateway that will incur you fees.
If you are based in the US you can get a merchant account and use Authorize.Net as your payment gateway. Then you can use their Customer Information Manager (CIM) API to handle your recurring billing. Basically CIM would allow you to store credit card information (as a payment profile) that you can then charge against whenever and for how much you want and reduce your PCI compliance issues in the process.
Libraries for using CIM are free and readily available. Authorize.Net offers their own PHP SDK and there are other free solutions as well (I offer Authnet XML for free and is open source).