Skip to content

Release Notes

Information

Releases use the following numbering system: {major}.{minor}.{incremental}

  • major: Major refactoring or rewrite - make sure you read and test very carefully!
  • 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.

  • [BC]: Items marked with [BC] indicate a breaking change that will require updates to your code if you are using that code in your extension.

Release 2.3

Requires PaymentShared (mjwshared) 1.0

  • Update IPN processing for compatibility with PaymentShared 1.0.
  • Regenerate civix for PHP7.4 compatibility.

Release 2.2.4

  • Fix !11 payments held by fraud detection suite then approved.

Release 2.2.3

  • Regenerate autogenerated code for compatibility with PHP 7.4.
  • Fix typo in log message.

Release 2.2.2

Requires mjwshared (Payment Shared) 0.9.9

  • Fix !10 - Only create webhooks on production. Implement the same workflow used by Stripe to provide a system check and a button/form to update the webhooks instead of doing it automatically every time.
  • Check which processor should be handling IPN notifications when both CreditCard and eCheck payment processors are configured in CiviCRM. This should resolve issues with "Contribution already completed" being recorded in the CiviCRM logs.
  • Return 200 OK and log instead of 400 bad request on webhooks when subscription does not exist in CiviCRM so Authorize.net doesn't disable the webhook.

Release 2.2.1

  • Fix #14 Set customer IP address for transaction.

Release 2.2

Requires mjwshared (Payment Shared) 0.9.4

  • Fix #10: Multiple fixes to contribution/transaction matching and repeat transactions.
  • Update mjwshared requirement to 0.9.4.
  • Implement new method for retrying IPN notifications using Mjwpayment.notificationretry.
  • Handle (ignore) silentpost notifications (log that one was received) and clarify in docs.
  • Update authnetjson library to 4.1.1.
  • Fix !6: Don't check webhooks if 'API Login ID' (user_name) is empty.
  • Fix #8: Don't set recurring contribution status when creating initial payment - let CiviCRM handle it.
  • Fix #12: one-off payments not completed.
  • Fix issues with subsequent recurring payments.
  • Fix missing class on cancelSubscription exception.
  • If we receive net.authorize.payment.authcapture.created IPN and we have already recorded the payment (matches on transaction ID) then ignore and tell Authorize.Net that we handled it successfully (prevents crashes in the CiviCRM logs and webhooks being deactivated by Authorize.Net).
  • Set cancel_date/cancel_reason for failed contribution. Don't update receive_date.

Release 2.1.2

  • System Checks: Add payment processor title for API key errors
  • Multiple IPN fixes:
  • Fix handling of incoming net.authorize.payment.authcapture.created event
  • Log error if webhook is not valid
  • Fix retrieving eventType for webhooks
  • Fix params to IPN
  • getallheaders() only exists on apache

Release 2.1.1

  • Update the way we cancel recur to match stripe etc and be compatible with more recent versions of CiviCRM
  • Fix #5 remove class reference to smartdebit

Release 2.1

  • Require MJWShared extension (version 0.8) - https://lab.civicrm.org/extensions/mjwshared.
  • Update for compatibility with CiviCRM 5.24 and \Civi\Payment\PropertyBag.

Release 2.0.1

  • Don't overwrite system messages when performing webhook checks.

Release 2.0

Implemented Authorize.net Credit Card processor. This replaces the CiviCRM Core "Authorize.net" processor.

  • Implement automatic configuration of webhooks using https://github.com/stymiee/authnetjson.

Release 1.3

Rewritten by MJW Consulting to work with more recent versions of CiviCRM (5.x). Funded by https://greenleafadvancement.com

  • Implement Authorize.net echeck.net using the Authorize.Net PHP SDK
  • Implement Cancel/Update Subscription via CiviCRM backend.
  • Implement "Submit live payment" via CiviCRM backend.