Comment rendre le paiement plus pratique: l'expérience d'un fournisseur IaaS

L'un des problèmes importants lorsque vous travaillez avec les services d'un fournisseur IaaS est la commodité du paiement. Dès le premier jour du démarrage de notre projet, nous avons tenté de simplifier le processus de paiement par carte bancaire et de continuer à améliorer ce mécanisme. Aujourd'hui, nous avons décidé de parler de notre point de départ et de partager notre expérience.


/ Flickr / Muhammad Ashiq / CC BY-SA

Contexte


Nous fournissons des services IaaS à 1cloud depuis 2012. Pendant ce temps, nous avons réussi à travailler avec un grand nombre de passerelles de paiement. L'un des premiers était Money Online. Nous avons travaillé avec lui pendant deux ans, puis avons commencé à connecter des services alternatifs en cas de difficultés techniques potentielles.

Comme alternative, PayPal et Robocassa ont été envisagés. En conséquence, les deux plates-formes étaient connectées, même si cela posait quelques difficultés . Dans le premier cas, pour importer l'ID client dans le formulaire de paiement, nous avons dû ajuster les règles CSS et modifier les éléments standards de la page web. Dans la situation avec Robocassa, un certain nombre de demandes dans l'API ne correspondaient pas à sa description, mais avec l'aide du support technique, la situation a également été résolue. Nous ne nous sommes pas arrêtés sur ces décisions et avons envisagé d'autres options que des partenaires potentiels nous proposaient.

Nous avons donc commencé à travailler avec le système de paiement PayMaster (il a remplacé «Money Online»), qui nous offrait des conditions de commission avantageuses et une API pratique. Pendant longtemps, cette passerelle de paiement a été la principale. Cependant, récemment, nous avons décidé de repenser la convivialité de notre service et de simplifier le processus de paiement des services par carte bancaire pour les particuliers. Afin que l'UX réponde à nos exigences, nous avons intégré une autre passerelle de paiement - CloudPayments.

Comment puis-je améliorer le processus de paiement UX?


Nous travaillons sur le modèle du prépaiement. Le client réapprovisionne son compte dans son compte personnel, puis les fonds sont débités de ce compte au fur et à mesure de la consommation des services IaaS (débit toutes les dix minutes).

Pour reconstituer le solde avec une carte de crédit, dans le cas de PayMaster, le client a dû suivre un processus en quatre étapes:

  1. Entrez le montant du paiement dans le formulaire dans le panneau de configuration, cliquez sur le bouton "Payer" et accédez à la page de la passerelle de paiement.
  2. Indiquez le téléphone ou l'adresse e-mail pour recevoir le chèque et cliquez sur Continuer.
  3. Entrez les détails de la carte et appuyez à nouveau sur le bouton "Payer".
  4. Indiquez le code de confirmation de transaction que la banque a envoyé dans le cadre de la procédure 3D Secure.
Avertissement: l'algorithme décrit ci-dessus s'applique aux paiements par carte bancaire effectués par des particuliers. Les entités juridiques paient les services du fournisseur IaaS sur les factures. Tout en améliorant la convivialité, nous avons finalisé les mécanismes de facturation automatique de ces factures, mais nous ne les considérerons pas dans ce document, car les entités juridiques n'interagissent pas avec une passerelle de paiement.

Nous avons décidé de simplifier le processus de paiement pour les utilisateurs et d'améliorer généralement l'apparence et la convivialité des formulaires pour remplir les données de carte bancaire. Pour cela, nous avons identifié deux tâches pour nous-mêmes, dont nous discuterons ci-dessous.

Tâche 1: exclure le passage à la page de la passerelle de paiement

Comme nous l'avons noté ci-dessus, lorsqu'un utilisateur a payé nos services, afin de remplir les détails de la carte, il a été contraint de se rendre sur le site de la passerelle de paiement. Une personne a donc dû appuyer sur de nombreux boutons de confirmation et attendre le chargement des pages contenant des informations sur la reconstitution du compte.

Dans ce cas, un autre problème est survenu - après que l'utilisateur a déposé de l'argent sur le compte, il est resté sur la page de la passerelle de paiement jusqu'à ce qu'il clique sur un lien spécial pour revenir à 1cloud.ru. Cela a rendu difficile de travailler avec notre panneau de contrôle, par exemple, si, après paiement, l'utilisateur voulait ajouter de la capacité à son infrastructure informatique.

"Selon les analyses, seule une poignée de clients ont suivi le lien et sont revenus sur notre site Web", a déclaré Sergey Belkin , responsable du développement chez 1cloud.ru. - Cela est dû en partie au fait que le client a dû cliquer sur le lien "Retour à la boutique en ligne". Et ce malgré le fait que notre service ne soit pas une boutique en ligne. »

De plus, nous avons voulu réduire au minimum le nombre de champs remplis par l'utilisateur, en ne laissant que ceux qui sont vraiment nécessaires à l'opération. Pour accomplir cette tâche, nous avons choisi la passerelle de paiement CloudPayments, dont les employés ont d'abord attiré notre attention avec des réponses de support technique rapides et complètes.

De plus, cette passerelle de paiement avait un bureau de représentation au Kazakhstan. Cela a permis de mettre en place un nouveau mode de paiement pour notre service d'hébergement oblako.kz . Sinon, tous nos transferts du Kazakhstan vers la Russie (ou vice versa) seraient soumis à une commission supplémentaire.

CloudPayments a suggéré d'utiliser un script spécial chekout . Il vous permet de mettre en œuvre le formulaire de paiement directement dans notre panneau de contrôle et de transférer les données complétées vers la passerelle de paiement sans les enregistrer de notre côté.

Pour implémenter le script, nous avons dû passer par une analyse de sécurité PCI DSS dans l'une des organisations accréditées - c'était l'exigence CloudPayments. La numérisation est nécessaire pour confirmer la conformité technique à la norme et exclure la possibilité de vol de données utilisateur lors du remplissage des formulaires sur le site.

L'audit de conformité PCI DSS a été réalisé par ARinteg. Nous leur avons envoyé une candidature dans laquelle nous avons indiqué notre souhait de subir un audit, rempli un questionnaire et fixé une date de vérification. Du côté ARinteg, la préparation de l'analyse prend environ une demi-journée (c'est-à-dire que vous pouvez numériser presque immédiatement), mais nous avons pris quatre à cinq jours supplémentaires pour préparer soigneusement notre infrastructure.

L'analyse a duré environ 15 heures, bien qu'il arrive que l'analyse prenne plusieurs jours. Les spécialistes ARinteg ont vérifié SSL et la protection contre les demandes d'injection et autres vulnérabilités sur notre site Web.

Nous n'avons pas réussi le test initial et nous avons reçu une liste de problèmes qui devaient être résolus. Tous étaient insignifiants, par exemple, il y avait une post-méthode qui a été utilisée lorsque l'utilisateur a évalué nos instructions étape par étape sur le site. Nous avons supprimé tous les commentaires et la deuxième tentative d'audit a réussi. Ensuite, nous pourrions passer à la mise en œuvre du script chekout.

Le script est enregistré sur notre site Web, recueille les données de la carte à partir du formulaire spécifié et en compose un cryptogramme pour le paiement via l'API CloudPayments. Cela ressemble à ceci:

this.createCryptogram = function () { var result = checkout.createCryptogramPacket(); if (result.success) { //   alert(result.packet); } else { //     ,  `result.messages` : // { name: "      ", cardNumber: "  " } //  `name`, `cardNumber`    `<input ... data-cp="cardNumber">` for (var msgName in result.messages) { alert(result.messages[msgName]); } } }; $(function () { /*  checkout */ checkout = new cp.Checkout( // public id    "test_api_00000000000000000000001", // ,     document.getElementById("paymentFormSample")); }); 

Le formulaire de saisie des données de carte bancaire ressemble à ceci:



Lors de la mise en place du script et du formulaire, nous avons pu réduire au minimum le nombre de champs renseignés par l'utilisateur. Ils n'ont laissé que ceux qui sont vraiment nécessaires à l'opération. Par exemple, les champs "Prénom" et "Nom" ont été supprimés. Comme nous l'ont expliqué les représentants de la passerelle de paiement, les banques ne vérifient pas ces données (seuls le numéro de carte, la date et le CVV sont importants), nous avons donc décidé de les omettre et de simplifier l'ensemble du processus.

En outre, nous avons clarifié les informations sur notre programme de rabais : avec un réapprovisionnement unique du compte d'un montant de 5000 roubles, 10% de celui-ci sont crédités sous forme de bonus, de 10000 roubles - 20%, plus de 100000 roubles - 25%. Nous avons également ajouté la possibilité d'enregistrer des données cartographiques pour les utilisateurs. Toutes ces informations sont stockées sur le côté de la passerelle de paiement CloudPayments sous forme cryptée.

Tâche 2: réaliser le paiement automatique

Il s'agit d'un paiement qui se produit automatiquement sous certaines conditions. Très souvent, cette fonctionnalité est utilisée par les services d'abonnement. Cependant, la plupart des passerelles de paiement n'offrent que l'option lorsque le réapprovisionnement automatique se produit selon un calendrier (à une date donnée). Il est important pour nous que la possibilité de reconstituer le compte soit automatiquement disponible à tout moment lorsque le client manque de fonds sur le compte (puisque nous travaillons sur le prépaiement). Par conséquent, pour implémenter le paiement automatique, nous avons utilisé la méthode utilisée lors du paiement à partir d'une carte «mémorisée» (à l'aide d'un jeton temporaire).

Cela fonctionne comme suit: après le premier paiement réussi effectué par l'utilisateur, la passerelle génère son jeton pour la paire de cartes de service et l'envoie dans une réponse de publication. Ce jeton est enregistré et, lors d'un paiement répété, il est déjà transféré, et non les données de la carte. Il s'avère que nous envoyons une demande à la passerelle, dans laquelle nous indiquons notre clé API (identifiant que la demande provient de 1cloud), le jeton et le montant. La passerelle vérifie si un tel jeton a été créé et si tout est en ordre, elle traite le paiement pour le montant spécifié.

La date à laquelle il est nécessaire d'effectuer un paiement automatique, nous calculons dynamiquement en fonction de la consommation actuelle de services par l'utilisateur et du solde du compte. Supposons qu'un client ait mille roubles au bilan et qu'il ait consommé deux roubles au cours des dix dernières minutes. Il est clair que la date approximative de la réduction à zéro interviendra à cinq cent dix minutes d'intervalle - soit environ 34 jours. Ainsi, nous pouvons effectuer un paiement automatique quelques jours avant la fin des fonds. Le client choisit la taille du paiement automatique indépendamment.

Et ensuite


Nous testons maintenant ces solutions et évaluons les résultats de leur mise en œuvre. Selon un vote des clients, la plupart sont assez variables. Nous étudierons plus en profondeur les retours sur le système, analyserons les données et, si nécessaire, effectuerons des ajustements.

PS Matériaux frais de notre blog d'entreprise:

Source: https://habr.com/ru/post/fr433948/


All Articles