Nice work, and quickly done. The notifier hooks and the hidden token fields in Accept.js Payments were put there for exactly this, so it's good to see them used.
Before anyone drops it into a store, a few things won't work yet, so nobody loses an afternoon to them:
1. Standard checkout. The add-on only works with One Page Checkout. The plugin's own Continue handler passes a submission through only when it tokenizes the card itself, so on the standard checkout, a Google Pay token gets stopped with "enter your card number." Version 1.0.1 of the plugin (coming soon) adds a proper wallet hook to that script; until it's out, this add-on is OPC-only.
2. gatewayMerchantId. It has to be the account's Payment Gateway ID (Merchant Interface > Account > Merchant Profile), not the API Login ID. The wrong value results in an "Invalid ownership" error from Authorize.Net. The token itself goes to the gateway Base64-encoded, which the add-on does correctly.
3. Test mode only. TEST, country US, and the card networks are fixed in the file. Production needs a merchant ID from the Google Pay & Wallet Console and Google's approval of the domain, along with checkout screenshots, none of which the add-on includes.
4. The total. The amount is read when the payment page renders. On OPC, picking a shipping method after that leaves the Google Sheet on the old total; the add-on then quietly drops the stale token, and the customer has to press the button again.
5. Apple Pay is a different job. A button isn't enough: it needs an Apple Developer membership, a merchant identity certificate, and a server-side merchant validation call to Apple on every payment.
As mentioned above, the Pro edition with Google Pay, Apple Pay, and card-on-file, with settings in the admin and production support, is in the works.
Need a hand with Zen Cart? Hire the team at myZenCartZone.com for upgrades, repairs, and custom plugins.
Zen Cart Certified hosting at myZenCartHost.com