[#wpdev] Certificazione App: violazione Policy 2: Prohibited Applications

Windows-Phone-8-big-logoDi recente, mi è capitato che una applicazione per Windows Phone non è stata certificata. Fortunatamente per noi, il rifiuto è sempre accompagnato da report dettagliato che elenca il motivo di tale scelta. Nel mio caso, l’app è stata respinta per la seguente violazione:

Policy 2: Prohibited Applications (violazione 2.1)

Andando a controllare nei requisiti per la certificazione, il dettaglio della violazione è il seguente:

Your app must be fully functional when acquired from the Windows Phone Store. Unless you have a pre-existing billing relationship with the user, your app may not require the user to provide payment information, within the app experience, to activate, unlock, or extend usage of the app.

L’applicazione in oggetto, in effetti, permette all’utente di fare degli acquisti on line. L’acquisto però non è finalizzato ad estendere le funzionalità dell’applicazione (per il quale, vi ricordo, c’è la possibilità di implementare l’In App Purchase).

Nel secondo caricamento dell’app, abbiamo esplicitato quanto sopra nelle note di caricamento ma ci siamo visti bocciare nuovamente l’app con la stessa motivazione. Questa seconda volta però, nei commenti, ci è stato segnalato un altro problema:

Comments: The user is prompted for credit card information from within the application. Transactions must occur external to the application via a secure (HTTPS) website, or through a hosted control that allows the user to verify the URL and HTTPS security

Effettivamente, la parte relativa al pagamento, avveniva erroneamente su una pagina non sotto HTTPS. Ci tengo a sottolineare “erroneamente” perchè, ovviamente, il passaggio di questo tipo di informazioni, DEVE SEMPRE avvenire via HTTPS!

Sistemato questo problema lato server (acquisto ed installazione certificato) e ripubblicando l’applicazione, la certificazione è avvenuta correttamente.

Quindi, se state sviluppando una applicazione che permette di fare acquisti, ricordatevi che:

  1. se l’acquisto è finalizzato all’estensione dell’applicazione, dovete implementare l’In App Purchase
  2. se richiedete dati come la carta di credito, fatelo via HTTPS e fate in modo che il vostro utente possa essere sicuro del certificato. Il modo più semplice è lanciare un WebBrowserTask (sarà IE a gestire la visualizzazione del certificato valido)
  3. Se volete evitare di perdere tempo (ed un giro di certificazione), specificate subito l’eccezione nel form di submission dell’applicazione

 

Concludo con una personale osservazione: l’app in questione ha anche la controparte su altre piattaforme mobile. In quei casi, la certificazione è passata senza troppi problemi anche se la pagina in questione non è sotto HTTPS.

Happy coding! Smile