A set of correctness, performance, documentation and translation fixes from a full read-through of the module.

Documentation

  • README.md and the docs/ pages described an API that no longer exists (settle(), authorizeHold(), releaseHold(), captureHold(), the SETTLED and HOLD_* events, the paid/held/released states, the hold kind). They now match the real API: authorize(), capture(), cancel(), fail(), refund(), the AUTHORIZED, CAPTURED, CANCELLED, FAILED and REFUNDED events, and the deposit kind.
  • refund(), capture() and cancel() are documented as returning void and raising the retryable or declined exception, and initiate() as returning a url key.
  • The requirements now list the bcmath extension and the options module.

Lifecycle events

  • chargeToken() now announces CAPTURED, and both token-decline branches announce FAILED, so a later charge or a decline is visible to subscribers and the audit trail.
  • capture(), refund() and cancel() advance the state under the same locked compare-and-set as the pending transitions, so a duplicate call announces its event exactly once.
  • The create lock retries a bounded number of times rather than spinning until the request times out.

Worldline

  • A rejected checkout payment keeps the provider payment id it was reconciled against, so the released or refunded amount stays traceable.
  • The webhook only finalizes payments handled by the worldline gateway.
  • The SDK client is built once per request.

Performance

  • The payment table is indexed on the subject and kind columns the manager filters on, through a storage-schema handler.
  • The payments view exposes the state filter as an options dropdown instead of a substring match.

Translations

  • The state labels and the entity label are translatable, and the stale French string for the kind description is corrected.
  • French translations are added for the four submodules.

Issue fork kessai-3610500

Command icon Show commands

Start within a Git clone of the project using the version control instructions.

Or, if you do not have SSH keys set up on git.drupalcode.org:

Comments

mably created an issue. See original summary.

mably’s picture

Status: Active » Needs review

  • mably committed 9856f776 on 1.x
    task: #3610500 Refresh the documentation, announce every lifecycle...
mably’s picture

Status: Needs review » Fixed

Now that this issue is closed, review the contribution record.

As a contributor, attribute any organization that helped you, or if you volunteered your own time.

Maintainers, credit people who helped resolve this issue.

Status: Fixed » Closed (fixed)

Automatically closed - issue fixed for 2 weeks with no activity.