Scopri come configurare un'app di pagamento basata sul web durante la registrazione.
Le app di pagamento basate sul web sono app web progressive (PWA) e vengono eseguite sopra i service worker. Il service worker in un'app di pagamento svolge un ruolo importante in quanto acquisisce le richieste di pagamento da un commerciante, avvia l'app di pagamento e media la comunicazione con il commerciante.
Per configurare un'app di pagamento basata sul web, devi registrare i metodi di pagamento disponibili e un service worker. Puoi configurare la tua app di pagamento basata sul web in modo dichiarativo con un manifest dell'app web.
Supporto browser
Web Payments è costituito da diverse tecnologie e lo stato di supporto dipende dal browser.
Configurare un'app di pagamento con un manifest dell'app web
Per configurare in modo dichiarativo l'app di pagamento basata sul web, pubblica un manifest dell'app web.
Le seguenti proprietà nel manifest dell'app web sono pertinenti per le app di pagamento basate sul web:
nameiconsserviceworkersrcscopeuse_cache
Consulta la sezione Configurazione di un metodo di pagamento per assicurarti che il file manifest del metodo di pagamento punti correttamente al file manifest della tua app web.
Registrazione di un service worker just-in-time (JIT)
La registrazione JIT richiede solo la pubblicazione del manifest dell'app web e non richiede codifica aggiuntiva. Se hai già configurato il manifest dell'app web e lo stai pubblicando correttamente, non devi fare altro. Il browser gestirà il resto.
Esecuzione del debug di un'app di pagamento basata sul web
Quando sviluppi un frontend di un'app di pagamento basata sul web, probabilmente passerai dal contesto del commerciante a quello dell'app di pagamento. I seguenti suggerimenti per il debug ti aiuteranno durante lo sviluppo su Chrome.
Sviluppo su un server locale
Quale server utilizzi per lo sviluppo? Molti sviluppatori tendono a utilizzare localhost o un ambiente server interno all'azienda, il che può essere difficile perché le potenti funzionalità del browser tendono a richiedere un ambiente sicuro (HTTPS) e un certificato valido. L'API Payment Request e l'API Web-based Payment Handler non fanno eccezione e i server locali o interni all'azienda di solito non sono dotati di un certificato valido.
La buona notizia è che alcuni browser, tra cui Chrome, esentano i certificati per
http://localhost per impostazione predefinita. Sempre in Chrome, puoi esentare il requisito del certificato
avviando un'istanza di Chrome. Ad esempio, per esentare il
requisito da http://*.corp.company.com, utilizza i seguenti flag:
macOS
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --ignore-certificate-errors --unsafely-treat-insecure-origin-as-secure=http://*.corp.company.com
Windows
chrome.exe --ignore-certificate-errors --unsafely-treat-insecure-origin-as-secure=http://*.corp.company.com
Scopri di più sull'esecuzione di Chrome con un flag di runtime in Eseguire Chromium con flag.
Inoltro delle porte di un server locale
Puoi eseguire il port forwarding del server web locale su un dispositivo Android utilizzando DevTools di Chrome e testare il funzionamento da un browser mobile. Per scoprire come fare, consulta Accedere ai server locali.
Eseguire il debug remoto di un sito web su Chrome per Android da DevTools del computer
Puoi anche eseguire il debug di Android Chrome su DevTools per computer. Per scoprire come fare, consulta Iniziare a utilizzare il debug remoto dei dispositivi Android.
Registrazione degli eventi del gestore dei pagamenti
DevTools può visualizzare gli eventi dell'API Payment Handler basata sul web per semplificare lo sviluppo locale. Apri DevTools nel contesto del commerciante e vai alla sezione "Gestore pagamenti" nel riquadro Applicazione. Seleziona "Mostra eventi di altri domini" e fai clic sul pulsante "Registra" per iniziare ad acquisire gli eventi inviati al service worker che gestisce i pagamenti.
Passaggi successivi
Il passaggio successivo consiste nell'apprendere come il service worker può orchestrare una transazione di pagamento in fase di runtime.