By default, most gateways require the CSC (card security code) to be sent with the payment details. Because storing the CSC is prohibited per PCI DSS, FoxyCart sends the subscription transactions without the CSC. If your gateway is set to require the CSC, the transaction will fail, effectively rendering FoxyCart's subscription functionality useless.
Depending on your gateway provider and account settings you may be able to configure this yourself, or you may need to ask your gateway's support to change your account for you.
Worth noting is that for all regular transactions the CSC is required on checkout. The only way the CSC will not be sent to your gateway by FoxyCart is for a subscription transaction.
Testing is a REQUIRED STEP when using subscriptions with FoxyCart. Check the testing page for more details.
Important to note is that while your FoxyCart store is in test mode, any subscriptions you process will immediately be set to “inactive”, and will not be processed. This is intentional, since the last thing you want to do is a bunch of testing with subs, then to go live and have dozens or hundreds of test subscriptions running and erroring and causing problems.
If you do want to test, just run the transaction, go into the FC admin and activate the subs (there's a checkbox). Then they'll run as expected.
FoxyCart v050+ subscriptions have a sub_token that allows greater flexibility with subscriptions. This token is available in the subscription XML datafeed, and also in your FoxyCart admin.
When the sub_token parameter is passed to the cart, it will blow away any previous cart data and load in a “template” of what the subscription is. Any new subscriptions added to the cart will automatically have the sub_startdate set to the next scheduled date for the subscription to run on, which will prevent a user from modifying a subscription that ran yesterday (for example) and being charged again for today. You can manually override the sub_startdate if desired, however.
Once a user completes the checkout from the sub_token that new transaction will replace the previous subscription.
Updating payment information is as simple as sending the customer to the checkout via a cart==updateinfo method (documentation here). This will send the customer through the checkout and they can enter new credit card information.
Here's a step-by-step:
BCC emails you'll see a copy as well.That said, it may be a better idea to use the method described below, as it will ensure you receive payment for any past due amounts as well.
When the sub_token paremeter is passed in the existing subscription is loaded. If the subscription has a past due amount (set automatically, but also configurable in the FoxyCart admin) this amount will be included on an attempted checkout as well.
The best way to collect past due payments and update is to append the &cart=checkout to your sub_token URL. This will send the customer directly to your checkout
If you have a customer that would like to move a subscription payment to a new customer record entirely you can follow the method above. This will allow them to enter a new email address, which will in turn create a new customer record upon successful payment.
FoxyCart v050+ allows customers to update or cancel their own subscriptions. This works by having the customer load up the subscription to their cart using the sub_token (and optionally the sub_cancel) parameter. The sub_token is available both on your subscription page in your FoxyCart admin and in your XML Datafeed.
Worth noting is that as of v060 and prior, the sub_cancel action basically sets the sub_enddate to the next available cancellation date (generally either “today” or “tomorrow” depending on the time of day). If you want more control over the cancel dates you can use sub_enddate rather than a sub_cancel. More details about subscription parameters.
Note: FoxyCart's current implementation requires that customers attempting to cancel subscriptions pay any past due amount before they can cancel their account. If a customer needs to cancel a subscription with a past due balance you will have to do this for them through the subscription page in the FoxyCart admin. A future update to the subscription API will improve this functionality.
For help, please post in our forum.
Fields you can alter: