J'essaie d'installer un système de base sur mon site pour accepter les cartes de crédit en vue d'un traitement différé. Ce que je vais faire, c'est collecter un ensemble de commandes/cartes de crédit pour un groupe de personnes, puis après un certain temps, je devrai traiter ces cartes et en facturer les frais.
Cela permet à un groupe de personnes de passer leur commande individuellement, sachant que leur carte sera traitée dans un délai de X jours, une fois que tout le monde a placé sa commande auprès du groupe.
Ma question est la suivante: quelle serait la meilleure façon de procéder? Je veux m'assurer d'accepter les cartes Visa/Master Card/American Express et éventuellement la Discover Card. De plus, avec ce système, serait-il possible d'accepter les informations Pay Pal afin que je puisse ensuite traiter cela au lieu d'une carte de crédit pour leur compte Pay Pal?
En outre, quel est le meilleur moyen de stocker ces cartes de crédit. De toute évidence, une base de données sécurisée et une page utilisant SSL pour soumettre leur commande, mais que dois-je tous accepter? Il est évident que le numéro de carte, le CVV, le mois d’expiration, l’année d’expiration, peuvent tous être normalisés dans une base de données. Et que recommanderiez-vous pour chiffrer/déchiffrer ces cartes? Je devrai les décrypter pour les traiter plus tard.
Tout conseil sur l'une de mes questions serait génial.
La réponse courte sur le stockage des détails de carte de crédit: NE PAS
Voir Stocker les détails de la carte de crédit pour une bonne discussion.
Évitez de stocker les données de carte de crédit si possible. Tout un tas de problèmes juridiques l’entourent (par exemple, il n’existe quasiment aucune situation dans laquelle vous pouvez stocker le CVV), et vous vous exposez à la responsabilité si votre site est piraté.
Si vous devez suivre cette voie, vous devez commencer par vous familiariser avec PCI DSS , qui est la norme en matière de stockage des données de carte (et légalement obligatoire au Royaume-Uni). Vous devrez également vérifier auprès de votre hôte afin de vous assurer qu’il est conforme à la norme PCI (c’est-à-dire qu’il dispose des niveaux de sécurité physique nécessaires pour protéger les serveurs sur lesquels ces données seront stockées).
Certaines passerelles de paiement offrent une sorte de fonction autoriser-maintenant-payer plus tard, dans laquelle vous leur envoyez les détails de la carte et leur montant, puis elles renvoient un jeton unique que vous pouvez stocker en toute sécurité. Vous soumettez ensuite à nouveau ce jeton à une date ultérieure si et quand vous souhaitez effectuer la transaction. De cette façon, vous pouvez toujours offrir votre paiement en différé sans devoir stocker vous-même de données sensibles, c'est donc ce que je vous recommanderais d'examiner.
Edit : Je crois qu'Autorize.net est une grande passerelle américaine. Grâce à leur API "Intégration avancée", ils disposent d'un mode autorisation seulement qui fait ce que je décris ci-dessus. , bien que le jeton ne dure que 30 jours maximum. Alors peut-être que cela pourrait fonctionner pour vous.
Voici le problème avec faire quelque chose comme ça. Vous ne pouvez pas charger la carte de la personne à l'avance ... pour que vous <> la conserviez ... peut-être par une autorisation, peut-être en utilisant une société émettrice de cartes pour effectuer une sauvegarde, mais certainement pas sur votre propre serveur .... de toute façon, la personne va finaliser l’achat quelques jours plus tard et vient d’acheter un nouveau PC, ce qui efface leur limite de crédit jusqu’à 5 $. Maintenant quoi? Il leur manque 95 $ d'un hypothétique achat de 100 $ que le système leur a permis de faire il y a plusieurs jours. Pas un bon événement d'interface utilisateur.
Ma société traite quotidiennement les refacturations. Ils puent. Tant du point de vue de la programmation que du point de vue du service à la clientèle. Je ne peux pas vous dire combien de fois nous avons entendu "Je n'ai pas autorisé cela ..." Oh, mais en petits caractères dit que vous l'avez fait!
Paypal pourrait travailler pour cette méthode différée. Mais de tant de points de vue différents, je ne toucherais pas une transaction en retard avec un processeur de paiement comme PayFlow.
Je ne sais pas pourquoi cette très vieille question a été bousculée, mais si quelqu'un tombe sur cette question, j'ajouterai quelque chose qui n'existait pas à l'époque mais qui peut être très utile.
Pour ceux qui cherchent à faire cela et qui n'ont pas encore choisi de processeur de carte de crédit, vous pouvez envisager d'utiliser Stripe .
Leurs API (complètes et bien documentées) vous permettent de stocker les informations de carte de crédit sur leur plate-forme, sans que les données ne passent jamais par les vôtres (vous éviterez ainsi toutes les exigences d'audit de sécurité PCI DSS), mais avec la carte de crédit. l'entrée étant toujours complètement intégrée à votre site Web.
Stripe retourne ensuite un jeton pour la carte (ou le client, car vous pouvez stocker plusieurs cartes pour un seul client), et vous pouvez ensuite l'utiliser à chaque fois que vous devez traiter une charge.
Utilisez un service tel que Customer Information Manager d’Autorize.Net . Il est conçu pour faire exactement ce que vous voulez. Il stocke les informations de carte de crédit pour vous sous forme de profil client. Vous vous référez ensuite à ce profil pour effectuer des achats futurs sans avoir à nouveau besoin des informations de carte de crédit du client.