2010-01-29 6 views
3

Je dois prendre les détails de carte de crédit de l'utilisateur pour le paiement via paypal. La première fois que l'utilisateur entre les détails de la carte, le paiement est effectué via paypal pro. Si la carte n'est pas valide, le paiement ne sera pas effectué. Le paiement sera effectué uniquement si la carte est valide.comment vérifier si la carte de crédit est valide ou non pour paypal

La première fois que l'utilisateur entre une carte valide les détails et le paiement est effectué, si cet utilisateur modifie les détails de la carte de crédit à ce moment, je dois vérifier à nouveau si la carte est paypal ou non.

Alors, y a-t-il des API qui vérifient uniquement les détails de la carte de crédit et ne traitent aucun paiement?

Je cours php et mysql.

Merci.

Avinash

Répondre

4

Avec Paypal, vos options sont très limitées. Si vous utilisez Paypal Pro, vous pouvez vérifier que la carte existe et est légitime en faisant une autorisation seulement pour 0,00 $. Si vous utilisez les autres méthodes de paiement proposées par Paypal, vous ne pourrez pas le faire.

Vos autres options seraient alors de vérifier que la carte contient au moins des informations valides. Vous pouvez vérifier que le numéro de carte est légitime en utilisant le Luhn algorithm. Tous les numéros de cartes de crédit sont émis selon un modèle qui peut être vérifié à l'aide de cet algorithme. Il ne peut pas confirmer que la carte est valide, mais elle éliminera les faux numéros de carte de crédit. Vous devez également vérifier que la date d'expiration n'est pas expirée et que le code CVV ne comporte que trois chiffres pour Visa, MasterCard et Discover Card et quatre chiffres pour American Express.

Si vous avez besoin de code pour valider le numéro de carte par rapport à l'algorithme de Luhn, faites-le moi savoir et je peux ajouter ma réponse pour l'inclure.

EDIT (code ajouté algorithme Luhn en PHP):

function passes_luhn_check($cc_number) { 
    $checksum = 0; 
    $j = 1; 
    for ($i = strlen($cc_number) - 1; $i >= 0; $i--) { 
     $calc = substr($cc_number, $i, 1) * $j; 
     if ($calc > 9) { 
      $checksum = $checksum + 1; 
      $calc = $calc - 10; 
     } 
     $checksum += $calc; 
     $j = ($j == 1) ? 2 : 1; 
    } 
    if ($checksum % 10 != 0) { 
     return false; 
    } 
    return true; 
} 

Utilisation:

$valid_cc = passes_luhn_check('4427802641004797'); // returns true 
$valid_cc = passes_luhn_check('4427802641004798'); // returns false 
+0

oui vous s'il vous plaît, ce sera bon pour moi pour l'obtenir. – Avinash

+0

L'algoritme de Luhn aide, mais cette vérification est bien connue (y compris le côté obscur ...) – robertnl

+0

@Avinash - J'ai ajouté du code PHP qui vérifie un numéro de carte de crédit par rapport à l'algorithme de Luhn. @robertnl - L'algorithme de Luhn est un bon moyen de s'assurer qu'un numéro de carte incorrect n'a pas été fourni sans avoir à payer votre passerelle et les fournisseurs de compte marchand pour valider une carte de crédit. Ce n'est pas une solution complète mais le meilleur que vous pouvez faire gratuitement. –

0

Sans savoir beaucoup sur Paypal j'imagine qu'ils ont une sorte d'API d'autorisation où vous pouvez faire une autorisation 0,00 $ pour voir si la carte est valide.

Rappelez-vous les exigences PCI lors du stockage des détails de carte de crédit.

0

Quels détails de la carte de crédit peuvent être modifiés par le client qui ont un impact sur les données que vous avez stockées. Si le client change quelque chose de substantiel comme son nom de gaufrage, alors l'émetteur donne une nouvelle carte au client. De votre point de vue, cela devrait être une nouvelle carte (même si le numéro de carte n'a pas changé).

Si vous enregistrez d'autres détails, vous économisez trop. De mon point de vue (je travaille chez un émetteur), n'allez pas dans le sens des autorisations de 0.00 $. Si vous voulez facturer le client, faites votre autorisation. Pas Paypall, mais l'émetteur va gérer l'autorisation. Et à la fin, seul l'émetteur sait si la carte est valide ou non.

Questions connexes