Updates

Charge is on version 1.10.0, released on Oct 29, 2015, and has had 32 public releases.

Charge 1.10.0 – Oct 29, 2015

ee
  • New - Saved Cards. Now you can let your customers save their cards for future purchases with just a few simple new tags.

  • New - Update Plan options. Enabled your customers to change their recurring payments and subscriptions mid-cycle. Great if you're offering multiple membership subscription tiers or recurring donations. Just make use of the {exp:charge:updateplanform} and all the same options for actions and subscriptions

  • New - Subscription Updated email option on subscriptions. This new email class is triggered only when a subscriber moves between an existing subscription, to a new subscription level, as triggered from the {exp:charge:updateplanform} tag.

  • Added a new customer fetch ability as part of the {exp:charge:form} tag. Now if the user is logged in, Charge will attempt to fetch their up to date customer information so you can populate the form and offer contextual info - saved cards, previous purchases etc..

  • Added Webhook error debug logging. Now when a web hook fails the cause for the fail is logged in the CP logs to help developer see the issues

  • Added new options to adjust the level of log retention and triggering. Will default to a moderate level but logs can be fully disabled, or increased in sensitivity as required

  • Added the ability to truncate logs and free up some db rows on more active installs

  • Added a new saved card handling to the payment forms, along with new {haspaymentsource} tags, {savedcard..} variables and more.

  • Updated Member subscription CP views. Now massively more useable, we list member info, real names, and more

  • Updated log views with a new threaded view to help diagnose issues and trace options

  • Fixed an issue where extended card address details wouldn't correctly save to a customer

  • Fixed an issue that could cause some payment records to fail to properly save due to a mysql config issue on some strict setups

  • Fixed an bug in the CP views where a php error would show if a user had been removed at the EE level but their subscription was still active

  • Fixed a possible issue where an escaped web hook wouldn't be fully parsed if the body was invalid, but where we'd still send an accepted header back to Stripe, preventing a future web hook reattempt.

  • Fixed a range of other minor bugs

Charge 1.9.8 – Oct 2, 2015

ee
  • Added the ability to export all possible charge payments with the built in export function. Previously this was limited to EE's native row limit.

  • Fixed a bug where the built in CSRF exempt checks for web hook actions would fail on EE 2.10+

  • Fixed a bug where when upgrading from a legacy EE version the proper CSRF flag may not have been properly set

Charge 1.9.6 – Aug 28, 2015

ee
  • a bug where payment error messages wouldn't be properly retained in the flash data, and so the error_info tag wouldn't show the full error details on redirect.​

  • a mysql strict error on install

Charge 1.9.5 – Jul 31, 2015

ee
  • Support for unlimited length set length plans, when used with recurring payments. The 12 months limit still applies when used with one-time payments

  • A bug where some exception states would throw decoding errors depending on the exact error condition

  • A bug related to using recurring plans and set length plans together but not specifying the default plan interval

  • A bug related to using Coupons on single time payments, but with a set length that was hitting an internal safety check when it was in a valid state

  • Handling of error edge cases to be more resilient

  • Documentation of all hooks usage to include full parameter details and more examples

  • A php error that would be thrown when used with very old php versions on strict mode

  • A error condition when used on php 5.6+ and with errors on strict, due to some legacy <5.2 handling code.

Charge 1.9.4 – Jun 5, 2015

ee
  • Created or updated entries are now tracked against the source payment event. Access this via the new 'connectedentryid' variable on all charges.

  • The ability to pass open ended extra data tags on the form tags. Use the syntax of 'data-foo="bar"' to add any extra parameters to the generated form tags

  • The ordering of triggered action items. Emails are now always sent last to prevent some situations where an action that was triggering entry or member changes would send an email before that had actually completed

  • An uncaught fatal error that could occur on the latest version of EE

  • Some minor breaks introduced in EE 2.10.1 where return exception type handling has changed

  • A bug that'd allow empty meta data values through validation when being passed as part of a larger validation set, which could upset meta data when passed to the stripe api

Charge 1.9.2 – Apr 25, 2015

ee
  • Naming of recurringcount to countrecurring for consistency and to avoid parsing error

  • Handling of webhook update data on event parsing to fix possible out of date data being passed on email triggers

Charge 1.9.0 – Mar 13, 2015

ee
  • Charge now will search for an existing customer record for logged in member payments. If found will reuse that existing stripe customer rather than creating a new one, updating the logged details in the process

  • New storage of the stripe customer id after purchases. Available as {customer_id}

  • New storage of the stripe payment id after payments. Available as {payment_id} only on one-time payments

  • CP views to expose direct links to the Stripe dashboard for relevant customer details

  • When an entry is created as a result of a triggered action the author for that entry is set to the logged in member id

  • A bug in the action triggers that could cause the create entry action to be skipped if triggered along with the update entry action

Charge 1.8.13 – Feb 13, 2015

ee
  • Support for dynamic subscription date info on the payment object

  • A bug where trialling subscriptions wouldn't be fully updated when the trial period ended

  • A bug where trial periods could be cancelled early and revoke the user's access immediately

  • A bug where a valid webhook event wouldn't be fully registered if the body contents contained unexpected attributes

Charge 1.8.12 – Feb 6, 2015

ee
  • Added 4 new hooks for entry action control - chargeactionupdateentrystart,chargeactionupdateentryend, chargeactioncreateentrystart, and chargeactioncreateentryend

  • A bug where trial end dates wouldn't be properly recorded and updated when a new trial period began

  • A bug where coupons that were one-time would sometimes throw an error when configured with a specific combination of settings

  • A bug where a new recurring payment using the default fallback for interval length wouldn't be able to apply a recurring coupon

  • A bad reference to the template parser in the headless action trigger that would silently fail if an entry was updated out of flow from a payment

Charge 1.8.11 – Jan 23, 2015

ee
  • Support for Trailing states on subscriptions, along with state swapping when a trailing subscription activates, a user cancels during a trail, and reactivates a cancelled trail

  • Extra logging within the action classes for simpler debugging and a clearer view of any action failures

  • Better exception handling for actions that are triggered in a bad state

  • Support for triggering multiple actions on a single payment event by passing multiple action names, separated by a pipe

  • An issue with random email EE comment strings being included in some emails. (Would look like {!-- ra:... --} within the emails)

Charge 1.8.10 – Dec 17, 2014

ee
  • A bug where subscriptions customer ids could be lost from legacy setups, with the webhooks configured in a non-default config

  • A bug the export process that stopped the export early and sometimes wouldn't return the complete csv

  • A bug in the subscriptions email where a left over EE template parser comment would be output due to a bug in the core EE render function

  • A bug in the chargepostpayment hook that reference a non-existant stripe variable that would cause an error

Charge 1.8.9 – Nov 10, 2014

ee
  • A missing card image for Discover cards

  • A bug in subscriptions where customer_ids wouldn't be properly recorded for some setups

  • A bug that affected installs running in mysql strict mode

Charge 1.8.8 – Nov 7, 2014

ee
  • An extra csrf_exempt direct check within the MCP views. Now will directly verify all the settings are correct when the index is viewed

  • Better error language on missing card_token errors to indicate javascript is required for the payment form

  • A bug where EE conditional comments left over from the TMPL parser would be output to generated emails

Charge 1.8.7 – Oct 21, 2014

ee
  • The return handling for zero value invoices. Now returns a 200 header to the Stripe webhook to prevent repeat attempted triggers from the Stripe side

  • The meta and stripe variable handling during action trigger processing. Meta data now is dynamically unpacked as required

  • A possible situation where a php notice would be thrown when invalid meta data is passed to an action trigger

Charge 1.8.6 – Oct 9, 2014

ee
  • CSRF handling for 2.8+ installs

  • A possible legacy issue for older installs there have been updated where the webhook callback may not have been set to be csrf exempt

  • Full meta data parsing for all actions. You can now use all meta data in your updated and created entries

Charge 1.8.5 – Aug 1, 2014

ee
  • Hooks. 4 (yes four) new hooks for member subscription : chargesubscriptionstartaddmember, chargesubscriptionendaddmember, chargesubscriptionstartremovemember and chargesubscriptionendremovemember. Use them to take complete control over your member subscription actions

  • A bug that let some hooks trigger when they should have been disabled

  • A Stripe library bug that would affect some older php versions

  • A minor compatibility issue in the CP on EE 2.9.0

Charge 1.8.4 – Jul 11, 2014

ee
  • The paths to respect custom third party theme locations

  • The bundled js to pull the supplied payment card's 'Brand' attribute, over their 'Type', which is more consistent across account settings

  • The bundled readme to directly reference the included Charge assets

  • The language on the Force SSL setting to indicate it also applies to Charge assets

Charge 1.8.3 – Jun 27, 2014

ee
  • Hook chargeactionstart that fires when a user action is triggered, ie. a user cancels or reactivates their subscription via the {exp:charge:act} tag

  • A new 'plansetname' optional parameter on the {exp:charge:form} to optionally let you give your payment plans a defined name in the Stripe api, instead of the automatically generated name based on the plan parameters

  • Fixed a bug affecting member subscriptions on EE versions below 2.6, where the member group model doesn't exist

Charge 1.8.2 – Jun 20, 2014

ee
  • Hook chargewebhookreceived_start that fires against all validated inbound Stripe webhook events. The full details of the event are available for custom implemenations beyond standard webhook handling.

  • Updated made some previously private webhook methods public to allow for external reuse on some cases. Methods like chargewebhook->extractcustomerid() and chargewebhook->extractinvoiceamount()are now available

  • Updated the handling of fixed cost coupons in multiple currencies for better fallbacks

  • Updated the wording on some error messages to make it clearer the cause of the issue

  • Fixed an install bug on EE versions less than 2.7 where the actions were attempting to set to be CSRF exempt

  • Fixed a bug where the status of a stripe return value wasn't properly collected

  • Fixed a bug in the webhook method that was detecting the value of a paid invoice

Charge 1.8.1 – Jun 12, 2014

ee
  • a javascript bug in the bundled jquery library where classes weren't properly adjusted on error

Charge 1.8.0 – Jun 6, 2014

ee
  • Added full Coupon support. Coupons can be used for both one-time and recurring payments, and can be fixed value or percentage based. For recurring payments extra options like maxium usages, how long they repeat and more are available

  • More robust handling for fixed length plans, working around some edge cases

  • The webhook input in the settings is no longer disabled to allow for direct copy/paste

  • An install bug for some setups with unusual paths

  • support for upcoming EE2.9.0 changes

  • A case where api calls would fail on some setups

Charge 1.7.2 – May 2, 2014

ee
  • Added 'chargecustomercreated' hook, which fires after a customer record has been created on stripe

  • an optional 'required' paramater to the form tag to allow for extra custom validation options. Also works with the open ended meta fields. Super if you need to set extra fields to be required for payments.

  • a missing card style in the CP for JCB card types

  • how webhooks deal with trial period ends, so the final charge element now inherits the updated stripe object data

  • an email parsing bug to catch some bad tag usages more gracefully

  • some legacy update queries for a better update process from older versions

  • a bug for some mysql strict setups

Charge 1.7.1 – Apr 11, 2014

ee
  • A messages block to the charge record, for returning non-fatal information to customers, along with a new variable pair in the :info tag to view that data

  • A variable to expose the card_fingerprint for transactions. Useful if you need to check to see if repeat payments are being paid across duplicate cards

  • A flashdata bug on some nginx configurations that would return a bad gateway error after some validation cases

  • An error where we'd return a generic error message to exp:charge:error_info, when we had a valid error message to show

  • Reworked how customers are created on plans with trials to allow for dynamic readjustments

Charge 1.7.0 – Mar 13, 2014

ee
  • Plan lengths for payments. Can be used both with recurring payments and one-time payments, tied to subscriptions. You can set lengths in multiples of weeks, months or years. Have subscriptions that auto-expire after 12 months, or donations that repeat for 6 months. More info.

  • Add an account balance to recurring payments. Great if you need to take a one-time startup charge along side your recurring payments. Simply pass the new plan_balance parameter on the {exp:charge:form} tag.

  • Cancelled subscriptions can now be reactivated using the {exp:charge:act} tag, passing a type of reactivate.

  • Fixed a bug in the way we were storing stripe api error messages so we can pull the proper error message back more consistently in the {exp:charge:error_info} tag.

  • A bug in the parsing of email templates on some setups

  • Some minor EE2.8.x issues

Charge 1.6.0 – Feb 7, 2014

ee
  • Added the {exp:charge:updatecardform} tag to let customers change their payment cards directly on the site.

  • Added a {exp:charge:cards} tag to list all the cards for a customer, direct from the Stripe api

  • New progress indicator option for the built in jquery library

  • A bug in {exp:charge:info} so it'll now properly return no_results conditions if the passed transaction hash is invalid

Charge 1.5.0 – Jan 24, 2014

ee
  • Added a new {exp:charge:act} tag, to let users cancel their plans

  • {recurring}..{/recurring} and {subscriptions}..{/subscriptions} variable loops to the :customer tag. Great if you want to pair with the new {exp:charge:act} tag. You can now let user's self-service their recurring payments and cancel direct from the front-end.

  • Plans now support Trial periods. Simply add a parameter of 'plantrialdays' to the charge:form tag.

  • Export option in the CP

  • Option to prevent any metadata being passed to Stripe. Everything will still be recorded locally

  • A bug when passing more than 10 metadata items would hit the Stripe api limit of 10 meta keys per item. In cases where 10 or more items are passed, we now only attempt to pass the first 10, but store all of the data locally

  • A bug where the log viewer would throw an error when there were no logged items

  • A bug where settings weren't being properly saved on MSM installs

Charge 1.4.0 – Jan 16, 2014

ee
  • Subscriptions enabled for all. Checkout what you can do with subscriptions.

  • Member Creation. You can now optionally create members during checkout by simply passing a create_member="yes" param on the :form tag

  • Added new tag {exp:charge:customer} for displaying information about all of a customer's transactions and subscriptions.

  • Added 'chargecreatemember' hook

  • Meta fields now are passed direct to the new Stripe meta data objects.

  • A bug in meta field handling where very long meta data would be truncated.

  • An issue that would prevent some emails sending on some servers

  • A CP formatting issue

  • An issue where some webhook callbacks wouldn't be received properly

  • A bug where validation could fail but the error messages were suppressed

  • A bug where errors in an external class were not being suppressed and were disrupting validation

Charge 1.3.0 – Jan 2, 2014

ee
  • Added new hooks - chargeprepayment hook and chargepostpayment hooks. Add your own custom validation or specific payment data using the pre hook, or add your own extra record event handling or notifications using the post hook.

  • New config option chargeforcessl. Normally the https/http setting will automatically reflected based on the current path, but if it's not you can use this setting to force the paths to be https

  • Added a fallback for some server configs where http_refferer isn't always available

  • A bug on some setups where the fallback currency wouldn't be correctly set

  • Minor CP view inconsistencies

Charge 1.2.0 – Dec 13, 2013

ee
  • {exp:charge:api_call} You can call any Stripe api endpoint. Great if you need to pull direct data about a payment or customer (ie. next due payment)

  • Extra currencies for all of Stripe's public and testing currencies. Currently covering : usd, gbp, eur, cad, aud, hkd, sek, dkk, pen, and jpy. Check Stripe to see what's supported for your account

  • Extra currencies for all of Stripe's public and testing currencies. Currently covering : usd, gbp, eur, cad, aud, hkd, sek, dkk, pen, and jpy. Check Stripe to see what's supported for your account

  • Card expmonth and expyear are now recorded on transactions for use in the {exp:charge:info} tag

  • Charge log view now has a cleaner look, member info and icons and state makers

  • Action shortnames now default to '_' instead of '-' in place of invalid characters

  • underscores in Action names are now allowed

  • Charge now fallsback to 'usd' if no default currency is set in the settings and none passed as part of the payment form

  • Some links in the demo templates and docs were pointing to development urls

  • Logged payments will now be recorded in test mode if there were no mode settings

Charge 1.1.1 – Nov 19, 2013

ee
  • an error that would wipe out site preferences on some installs

Charge 1.1.0 – Nov 19, 2013

ee
  • Added Actions - Actions can be used to update entries, trigger emails.

  • Added Subscriptions - Subscriptions are a simple way to manage member groups that are dependent on payments recurring and one-off.

  • Added webhook callbacks to receive data back from Stripe on about recurring transactions. To use, you'll need to setup the webhooks urls in your Stripe account.

  • All payments now have Stripe customer created for them. (Previously only created for recurring transactions). Customers for one-off payments will have their card automatically removed immediately after payment

  • Charge.js now has better error handling and error messages

  • More resilient logging and cleaner interface

  • Added extra variables to the {exp:charge:info} tag

  • Increased the pagination limit on charges in the CP

  • Meta field information now displays in the CP

  • Full card holder information now displays in the CP

  • Added new catches for some occasions where a bad currency was passed

  • Minor formatting issues on data transfered to Stripe

  • More robust exception handling for Stripe api timeouts and general errors

  • More usage examples and demo templates

Charge 1.0.0 – Oct 22, 2013

ee
  • Public Release