2009-07-18 11 views
4

J'ai reçu un certain nombre de demandes de clients souhaitant prendre en ligne le numéro de carte de crédit d'un client, puis traiter le paiement en magasin à un point de vente de terminal. Je me demande quelle est la meilleure méthode pour le faire.Prendre des informations de carte de crédit en ligne sans traitement - comment le faire?

Je ne veux pas stocker le numéro de carte de crédit sur le serveur en texte brut et je ne veux pas envoyer un email avec le numéro en texte brut.

Les clients ne souhaitent pas s'inscrire à un compte de paiement en ligne en raison du coût plus élevé et supplémentaire d'un processeur de paiement en ligne. En outre, les deux clients ne peuvent pas facturer en ligne, car le total va probablement changer en raison de produits en rupture de stock ou de problèmes avec la demande des clients.

Quelles autres options ai-je?

Je vais utiliser PHP. Je suis aussi au Canada si les règles ont un effet sur la méthode que je devrais utiliser.

+0

Cela fonctionnera bien jusqu'au premier rejet de débit. Vous n'aurez pas de signature dans le fichier et votre processeur se demandera pourquoi. Il y a une raison pour laquelle les taux sont plus élevés pour les transactions en ligne que pour les cartes présentes. – jrockway

+0

Un client a le signe du client lorsqu'il vient chercher son produit (une location de VR). L'autre client prend souvent les numéros de cartes par téléphone sans signature et n'a pas de problème. Typiquement, je serais d'accord avec vous. Les deux clients ne peuvent pas facturer en ligne parce que le total va probablement changer en raison de produits en rupture de stock ou des problèmes avec la demande des clients. –

Répondre

3

J'ai résolu ce problème en créant un frontend pour GPG et en permettant au propriétaire du site Web de générer ses propres clés GPG. Ensuite, toutes les données de carte de crédit sont cryptées par GPG et ne peuvent être décryptées qu'avec la clé privée du propriétaire du site Web, ce qui, pour plus de sécurité, peut être évité si vous le souhaitez.

1

Vous pouvez stocker les données de carte de crédit dans une base de données MySql (autre peut fonctionner mais je ne suis pas familier) en utilisant la fonction MySql AES_ENCRYPT pour crypter le numéro de carte, puis AES_DECRYPT lors de la récupération. Utilisez une clé forte et supprimez l'entrée dans la base de données une fois qu'ils sont traités.

Il peut y avoir un moyen de faire l'AES en/décryptage avec PHP, mais je ne suis pas au courant d'une façon native.

3

Je recommande d'utiliser Authorize.net (seulement parce que c'est ce que j'ai utilisé). Vous pouvez poster les informations de la carte de crédit à Authorize.net pour capturer (AUTH_CAPTURE je crois) les informations de carte de crédit à facturer. Votre client peut alors se connecter au terminal virtuel Authorize.net et facturer ou annuler chaque paiement en fonction de l'inventaire disponible.

NE PAS de stocker des informations de carte de crédit, même si elles sont cryptées, dans une base de données accessible via Internet. Je ne sais pas où la conformité PCI commence et se termine, mais je sais que si votre client stocke des informations de carte de crédit, ils doivent être conformes à la norme PCI par les fournisseurs de crédit qu'ils acceptent. La conformité PCI est une douleur, et l'approche que je recommande est le moyen le plus simple que j'ai trouvé. Et avec un minimum de maux de tête pour le client.

+0

J'aimerais que ce soit une option. –

+0

Je sais que cela ne répond pas directement à la question, mais il se rapporte directement à cette réponse: Si vous faites une autorisation, elle met en attente les fonds, même si vous ne finissez pas de charger la carte. Avec tout le monde branché - dans leurs relevés bancaires en ligne ces jours-ci, c'est un cauchemar du service à la clientèle parce qu'ils pensent que vous les avez facturés quand vous ne l'avez pas fait. Le meilleur moyen est d'utiliser un service (comme Customer Information Manager de Authorize.net) qui est conçu pour stocker les informations pour une utilisation ultérieure. – grossvogel

3

Il existe un grand nombre de processeurs de paiement disponibles que je recommanderais d'utiliser une machine POS. La plupart des commentaires sont PayPal, Authorize.net, CyberSource ... ont tous des API de programmation pour vous permettre d'interfacer avec votre site. Deuxièmement, j'utilise le cryptage Rijndael, car je crois que c'est le moyen le plus sûr de stocker des données de carte. Je fais de grands efforts pour cacher la clé de cryptage en dehors de la configuration web (fichier séparé, clé reg, etc). Dernière, mais probablement le plus important, est que vous devriez fortement regarder la certification de conformité de PCI (industrie de carte de paiement) (https://www.pcisecuritystandards.org/). Je crois que cela devient rapidement une obligation (si ce n'est déjà fait) d'accepter des données de carte en ligne. À l'avenir, il peut y avoir une amende pour ceux qui ne se conforment pas à la réglementation.

1

Votre meilleur pari est d'utiliser le cryptage asymétrique. Génère une paire de clés publique et privée RSA. Placez la clé privée dans un emplacement SECURE. Mettez la clé publique sur votre serveur web.Lorsque les clients souhaitent soumettre les détails de leur carte de paiement, appuyez sur la clé publique. Chiffrer les données à l'aide de la clé publique, côté client. Dans OpenSSL, regardez les routines Envelope (EVP _ **). De cette façon, la seule façon de récupérer les données de la carte de crédit en texte brut sera de déchiffrer en utilisant la clé privée d'ordinateur connectée à Internet, jamais sécurisée, jamais mise en ligne, jamais sécurisée.

Vous pouvez créer une application autonome assez simple qui fonctionne avec OpenSSL. Compte tenu de la petite quantité de données que vous souhaitez crypter, je pense que c'est une solution assez pratique.

Une solution plus efficace, mais plus complexe, consiste à chiffrer les données AES avec un client côté clé. Puis cryptez cette clé AES comme ci-dessus (remplacez la carte de crédit par la clé AES dans la solution ci-dessus.)

0

Je sais que vous avez demandé une solution qui n'implique pas de processeur de paiement, mais il y a un processeur de carte de crédit appelé CurePay au Canada. que de ce que j'ai entendu est relativement bon marché (je ne l'utilise pas moi-même). www.curepay.com. Cela pourrait valoir la peine de leur donner un cri, au moins pour en savoir plus sur les prix.

En outre, je semble me souvenir de quelque chose au sujet d'une sorte de conformité autour de prendre des numéros de carte de crédit. Stocker des cartes de crédit ou les traiter «incorrectement» peut vous exposer à des problèmes juridiques. Ne pas essayer de vous faire peur, juste s'assurer que vous envisagez vraiment des choses comme ça avec la solution que vous allez avec.

1

Le stockage de la carte de crédit sera soumis à la conformité PCI. Les règles et les règlements de PCI sont ornementés et détaillés. Ce n'est pas un problème simple. Si je devais le refaire, je chercherais à acheter un chariot conforme à la norme PCI et à l'installer et à en finir.