Store 1.5 has a brand new payment library, which allows much greater flexibility with payment handling. Because of this, there are a few things you need to be aware of before upgrading.
Previously, if you wanted to accept manual payments, you could simply submit any text (or no text) as the payment method in the checkout. You must now specify all valid payment methods under Settings » Payment Methods. You can now create as many manual payment methods as you like here, and these will be accepted on the checkout.
Previously, if a payment failed, the user would be returned to the order summary page, where you had to give them the option to attempt payment again. This was not ideal, as it meant you needed to template the payment form in two places, and also because customers may become confused as to why their cart is now empty.
In Store 1.5, if a payment fails, the customer will simply remain on the final page of the checkout (or for off-site payment gateways, they will be returned to the checkout).
To display the payment errors, ensure you have the
error_handling="inline"
parameter in your checkout tag, and add the
following code on the final page of your checkout:
{error:payment_method}
If you don’t template this error message, the customer will see the standard grey EE form error, with a link back to the checkout.
This means that the Payment Tag is no longer necessary in most cases.
Authorize/Capture/Refund support has been added for most payment gateways, where available. You can customize this under Store » Settings » Credit Card Payment Method. By default this is set to Purchase (Authorize & Capture), which is the same behavior as previous versions of Store.
To support the new payment process, the API for CI Merchant drivers has
changed. If you have developed your own payment module, you may need to
make some small changes to support the new API. Specifically, your
driver should extend the Merchant_driver
class, rather than
CI_Driver
. You also need to make sure your driver returns a valid
Merchant_response
object.
For specific details, please see the existing payment methods. If you need help, please create a gist of your code online, and post a link to it in our support forums.