This payment handler is for "basic-card". The code is correct except for one bug: the web app manifest does not contain an entry for "name". This causes Chrome to identify this payment handler only by its icon and origin. Chrome will print a warning message in developer tools console at the time of install.
Checking whether the payment handler is installed...
View the source code: