Details
-
Type:
Improvement
-
Status: Open
-
Priority:
Major
-
Resolution: Unresolved
-
Affects Version/s: 5.10.0
-
Fix Version/s: 5.13.0-b1
-
Component/s: Staff Interface
-
Labels:None
Description
If I want to switch to a new merchant gateway I can do the following:
1. Install new gateway
2. Disable currency on old gateway, enable currency on new gateway.
After this, ALL EXISTING Payment Accounts will no longer work. Payment attempts will return the error "The gateway does not exist or is not enabled". New Payment Accounts will work with the new gateway.
accounts_cc and accounts_ach have a column for gateway_id. When you create a payment account, it references the Gateway that uses it.
We should do 2 things.
1. If we are using a Payment Account and the gateway is installed and the gateway_id exists, use it to process the payment EVEN IF the currency is not enabled. This will allow someone to gradually migrate from 1 merchant gateway to another without invalidating all pre-existing Payment Accounts.
2. Display the gateway associated with a Payment Account in the Admin area IF it is defined in accounts_cc or accounts_ach.gateway_id by showing the gateways.name name. In the Payment Account listing on a client profile, in the "Type" column after the details, e.g. "Credit Card - Master Card, expires January 2027", show the gateway, e.g. "Credit Card - Master Card, expires January 2027 (Stripe Payments)". Important: If the Payment Account gateway_id does not exist in the gateways table, show (Missing) instead of the gateway name. Link the gateway name to the gateway manage page for example ~/admin/settings/company/gateways/manage/ID).
If there is a problem with #1 above, allowing the gateway to be used if the currency is unchecked, then we may want to take another approach, by allowing a merchant gateway to be "Set as default". This would allow the currency to be selected by multiple gateways, but only 1 of the gateways is set as the default gateway. Though, I think that may be more difficult to do.