Release Notes:
- NOTE: This version features a redesigned admin panel and setting structure. To update from an older version, upload the new files over the old ones, then visit the admin panel. Your previous settings should be automatically converted to the new format, but make sure to double-check all settings are as set properly.
- Added: compatibility with OpenCart 2.0.0.x
- Added: card type images to front-end template file
- Fixed: bug with currency display in Stripe Checkout when a non-Yen currency is set to display with no decimal places
- Removed: compatibility with OpenCart 1.4.x versions

Release Notes:
- Added: tax_percent is now set for subscriptions, based on the calculated tax amount in OpenCart
- Added: coupon codes can now be passed from OpenCart to Stripe, if they have the same coupon code in both places
- Fixed: incorrect order info with subscriptions that have trial periods
- Fixed: subscriptions without trials still creating a second order if the server timezone does not match the database timezone
- Fixed: issues with buying multiple subscription products at the same time
- Fixed: errors in OpenCart 2.0 versions when subscriptions are charged
- Fixed: broken subscription product links in OpenCart 2.0 versions
- Fixed: small typo in quick checkout embed code for OpenCart 1.5 versions
- Fixed: "unterminated string literal" error when address components contain newline characters
- Fixed: "Undefined index: HTTP_CLIENT_IP" error on some installations
- Fixed: "Undefined index: error_shipping_mismatch" error
- Fixed: e-mail address isn't filled in when using Quick Checkout feature

Release Notes:
- Added: shipping address to orders created when a subscription is charged
- Confirmed: compatibility with OpenCart 2.0.2.x - 2.0.3.x
- Fixed: "Undefined variable: token" error
- Fixed: the webhook URL sometimes doesn't appear properly after editing the HTTP_CATALOG constant in the /admin/config.php file
- Fixed: bug with subscription price display in admin panel when a non-Yen currency is set to display with no decimal places
- Updated: automatic trim on API keys adjusted to happen onchange
- Updated: attempted fix for people who leave "Display Errors" on in their OpenCart settings, causing the payment process to hang at "Please wait..." when there are errors thrown within the OpenCart order confirmation function

Release Notes:
- Added: compatibility with OpenCart 2.1.0.x
- Added: a standard Save button in place of auto-saving
- Added: option to authorize/capture based on the OpenCart fraud detection
- Added: beta support for Bitcoin payments when using Stripe Checkout
- Added: error messages are now logged for PHP Fatal Errors unrelated to the extension, to give an indication as to why orders do not complete properly
- Fixed: typo in the Quick Checkout example code
- Fixed: typo in the Maximum Total help text
- Fixed: typo in the default "no_image" path
- Fixed: order statuses are not properly updated when refunded in Stripe
- Fixed: bug with coupon codes being passed to Stripe
- Updated: set some defaults when loading the admin panel for the first time
- Updated: all requests are now made using Stripe API version 2015-09-08
- Updated: instructions.txt now includes a link to an installation video tutorial, graciously provided by Build My Ecommerce: http://www.buildmyecommerce.com/stripe- ... arthinking

Release Notes:
- Fixed: "You passed an empty string for 'coupon'" error
- Updated: refunds made through the order history are now entered in dollars
- NOTE: orders placed before updating to this version will still display the amount in cents, so you'll need to manually change this if refunding orders that were placed before updating the extension

Release Notes:
- ANNOUNCEMENT: A Pro version of the extension is now available at:http://www.opencartx.com/stripe-payment-gateway-pro
It includes the ability to map options and recurring profiles to subscriptions, the ability to include shipping in subscription costs, and the ability for customers to edit their cards or cancel their own subscriptions. Contact Clear Thinking for upgrade pricing.

- Added: compatibility with OpenCart 2.2.0.x
- Added: ability to set all front-end text directly through the admin panel
- Added: ability to customize error messages passed back from Stripe
- Added: explicit warning when running live payments on a non-https connection
- Added: order status setting for Order Completion Errors
- Added: order status for Authorized payments separate from Captured payments

- Fixed: charge amounts were not correct for the non-default stores in multi-store installations with different default currencies for each store
- Fixed: some subscription product issues in OpenCart 2.0 versions

- Updated: a few small styling changes to various areas
- Updated: greatly improved error handling when modifications in the order confirmation code (outside the extension) have bugs in them. Orders should now complete successfully even if there are errors in SMTP settings or other mods, and report this in the order history for an order.

Release Notes:
- NOTE: You will need to update your webhook URL in Stripe after updating to this version

- Fixed: "Undefined index: subscription options" error
- Updated: added a work-around for a bug in the OpenCart 2.2 order editor
- Updated: added a work-around for bugs caused by third-party checkouts
- Removed: check for guests when subscriptions are charged in the future
- Updated: webhook URLs now use an MD5 hash of the encryption key, rather than the key itself, to avoid issues with super long URLs

Release Notes:
- NOTE: This version is fully compatible with OpenCart 2.3.0.x by using the OpenCart 2.3 Extension Compatibility Fix, which is provided for free with the purchase of the extension

- Added: support for Alipay
- Fixed: error in OpenCart 2.3 when the Charge Mode is set to "Authorize if possibly fraudulent, Capture otherwise"
- Fixed: multiple quantities of the same subscription were not being calculated correctly
- Fixed: "Store Card" checkbox was not setting properly on some installations
- Updated: the "Store Card" checkbox is now hidden if always sending customer data, since it's not necessary
- Updated: all requests are now made using Stripe API version 2016-07-06

- NOTE: Stripe will start requiring TLS 1.2 on January 1st, 2017. If you are getting errors when processing payments, you should contact your web host to request that they force all CURL connections to TLS 1.2. If they are unwilling or unable to help, you can uncomment (i.e. remove the //) from this line in the /catalog/controller/payment/stripe.php file:

- Fixed: Stripe API version didn't set to 2016-07-06 properly
- Fixed: "Undefined index: text_total" when using subscriptions on 2.3
- Fixed: issues caused by updating from older versions that were missing the "transaction_mode" column in the database table
- Fixed: "Invalid UTF-8 characters found in POST body" error for metadata
- Fixed: customers were being stored even if choosing not to be, or if the extension was set to "Never"

- Updated: To accommodate issues with Stripe Checkout caused by custom checkouts, I added a setting to limit Stripe Checkout to only desktop devices. If you're using Stripe Checkout, double-check the "Use Stripe Checkout Pop-up" setting after updating, to make sure it's configured right.

- Updated: the default status for "Order Completion Error" is now set to "Failed", to help with users who have mods causing errors during checkout
- Updated: error warning about non-https URLs for live payments should now work better for servers that don't set HTTPS variables properly

Release Notes:
- NOTE: This version now uses Stripe Elements, the new way Stripe provides for styling the credit card inputs. This is more secure, and replace the standard inputs from previous versions. This DOES NOT work with Apple Pay yet, so if you need Apple Pay support then do not update at this time.

- Fixed: refunds occasionally being $0.01 off due to a bug in PHP int casting
- Removed: "Card Name" field, since that should be taken from the billing address anyway
- Updated: added a few styling edits for compatibility with quick checkouts
- Updated: the Stripe Event ID is now recorded when a webhook creates an order in OpenCart

Due to limitations in the opencart.com license system, a new extension was released on opencart.com for OpenCart 3.0 compatibility. However, free updates are still available for anyone that has purchased the extension in July 2016 or after --- just contact Clear Thinking here: http://www.getclearthinking.com/contact

Release Notes:
- NOTE: Due to a change in function names, orders placed before this version will not be able to be captured or refunded in the order history area. If you need to do these actions, you can so in your Stripe admin panel.

- Added: compatibility with OpenCart 3.0.0.x
- Added: native compatibility with OpenCart 2.3.0.x (You can remove the compatibility fix, or keep using it if you want to)
- Removed: compatibility with OpenCart 1.5.x and 2.0.0.0 for new versions
- Removed: text settings no longer needed because of Stripe Elements

Release Notes:
- NOTE: Starting with this version, all template files will use the .twig extension. These will still work completely fine on OpenCart 2.x versions, and still use the .tpl-type syntax. However, if you've made edits to the .tpl file, you'll need to port those edits over to the new file.

- Confirmed: compatibility with OpenCart 3.0.2.x

- Fixed: errors when subscription orders are created using webhook data
- Fixed: credit card inputs are too wide on mobile devices with small screens
- Fixed: custom error messages weren't always being displayed
- Fixed: empty stored card info could appear if the customer existed, but had no default card attached to them

- Updated: card payments are now made as a Stripe "source" instead of "token"

- Fixed: Stripe accounts with more than 100 plans not showing those in the OpenCart admin panel
- Fixed: webhook issue with mismatching zone name/code
- Fixed: orders that were exactly 0.50 were not getting charged properly
- Fixed: the quick checkout embed using Stripe Checkout wasn't working correctly since the pop-up no longer collects the state/region

- Removed: functionality for Bitcoin because Stripe has stopped supporting it
- Removed: functionality for Alipay because Stripe has stopped supporting it within Stripe Checkout

- Updated: the shipping address on orders created by webhooks will now be the customer's default address in OpenCart, so it can be updated if necessary
- Updated: added a fix for Journal checkout causing "owner[name]" errors

Release Notes:
- Added: ability to partially capture a payment (note: only new orders will be able to be captured, so make sure you capture old orders before installing the update)
- Updated: admin users now need "Modify" permission in order to capture or refund charges in the order history area