* minor: Breaking change in some circumstances, or a new feature. Read carefully and make sure you understand the impact of the change.
* incremental: A "safe" change / improvement. Should *always* be safe to upgrade.
## Release 0.9 - not yet released
## Release 0.9 - not yet released (2020-07-18)
* Update API3 `Mjwpayment.get_payment` spec
* Refactor API3 `Mjwpayment.get_contribution` so it accepts `order_reference` and `trxn_id` params and returns a single contribution with matching payments
* Use API3 `Mjwpayment.create_payment` instead of API3 `Payment.create` API in `updateContributionRefund()` for compatibility with multiple versions of CiviCRM
* Allow completing a contribution that has Failed status via `updateContributionCompleted()`
* Add basic function for updating a contribution (eg. the trxn_id) without touching other things
* Refactor API3 `Mjwpayment.get_contribution` so it accepts `order_reference` and `trxn_id` params and returns a single contribution with matching payments.
* Use API3 `Mjwpayment.create_payment` instead of API3 `Payment.create` API in `updateContributionRefund()` for compatibility with multiple versions of CiviCRM.
* Allow completing a contribution that has Failed status via `updateContributionCompleted()`.
* Add basic function for updating a contribution (eg. the `trxn_id`) without touching other things.
* Don't trigger exception if payment processor ID not found for IPN, use debug function because we don't have access to getPaymentProcessorLabel() function.
* Add getIsRecur() function to CRM.payment library.
if (($('input[data-civicrm-field-key$="contribution_installments"]').length!==0&&$('input[data-civicrm-field-key$="contribution_installments"]').val()>1)||