kessai now records the account a payment was taken against rather than the provider, so a site holding two contracts at one provider holds two accounts and the gateway plugin id names neither. See kessai issue 3621924.

What breaks

The payment interaction builds its Gateway override select from the gateway plugin list. That offers ids kessai refuses, and it cannot name the second account at all. It matters more here than anywhere else: the gateway is per step configuration, so this form is exactly where a site chooses between two accounts at one provider, and the choice is not offered.

The change

The select lists what kessai says a payment can be taken through, through getAvailableGateways() on PaymentClientInterface, and the description says what an account is. PaymentInteraction already held the payment client, so this drops the gateway plugin manager rather than swapping it.

Not changed

VariableResolver still defaults a missing gateway variable to manual, which is the account kessai ships, so it keeps working. The versioning mode choices in the config schema that also read manual are unrelated to payments.

Depends on

The kessai change above, which adds getAvailableGateways(). Until it lands this cannot go green, because kessai 1.x does not have it.

AI-Generated: Yes (Claude Code was used to help draft this issue summary and to write the code on the merge request. I reviewed the work myself before posting it.)

Issue fork orchestra-3622782

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 2d495055 on 1.x
    fix: #3622782 Offer the payment accounts a step can charge, not the...
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.