Je suis en train de mettre en œuvre un script de traitement de carte de crédit, la plupart fournis par la passerelle marchande. Le code appelle des fonctions dans une classe et renvoie une chaîne basée sur la réponse. La fin du code php J'utilise (détails retiré bien sûr) avec des informations exemple:Assistance avec le script de traitement CC
<?php
$gw = new gwapi;
$gw->setLogin("username", "password");
$gw->setBilling("John","Smith","Acme, Inc.","888","Suite 200", "Beverly Hills",
"CA","77777","US","555-555-5555","555-555-5556","[email protected]",
"www.example.com");
// "CA","90210","US","[email protected]");
$gw->setOrder("1234","Big Order",1, 2, "PO1234","65.192.14.10");
$r = $gw->doSale("1.00","4111111111111111","1010");
print $gw->responses['responsetext'];
?>
où setlogin me permet de vous connecter, setbilling prend l'échantillon information des consommateurs, pour définir prend le numéro de commande et la description, dosale prend le montant facturé, le numéro de cc et la date d'expiration.
lorsque toutes les variables sont envoyés validé puis envoyés pour traitement, une chaîne est retournée dans le format suivant:
réponse = 1 & responseText = SUCCESS & Authcode = 123456 & TransactionID = 23456 & avsresponse = M = & orderid & type = vente & RESPONSE_CODE = 100
où:
- réponse = transaction approuvée ou refusé
- texte de réponse = réponse textuelle
- Authcode = autorisation de transaction Code
- TransactionID = passerelle de paiement tran id
- avsresponse = avs code de réponse
- orderid = ID de la commande d'origine transmis demande de transit
- RESPONSE_CODE = cartographie numérique de réponse processeur
Je suis en train de résoudre les cas suivants:
- Comment puis-je prendre les données qui sont passé en arrière et l'afficher correctement sur la page - Si la transaction a échoué ou si le code AVS ne correspond pas à mon goût ou si quelque chose de est faux, une erreur est affichée à le consommateur; si la transaction traitée, ils sont à une page d'achèvement et la transaction id est envoyé en session en tant que sortie pour le consommateur
- Si la valeur RESPONSE_CODE correspond à une table des valeurs, certaines actions sont prises, à savoir si le code = 100, prendre à page succès, si le code = 300 impression erreur spécifique à la page originale client, etc.
Je suis un peu terrifié qu'un programmeur qui ne peut pas comprendre comment analyser une chaîne gère les informations de carte de crédit. –
@Matti - merci pour la confiance. Je travaille pour une organisation que j'ai aidé à obtenir la conformité PCI et a travaillé dans la gestion de projet/développement de produits pour les 3 dernières années. Nous avons laissé une partie de notre équipe de programmation partir et j'ai pris la balle pour aider à faire fonctionner un de nos sites partenaires. Peut-être qu'au lieu de m'insulter, vous pourriez fournir des conseils sur les meilleures pratiques ou toute expérience antérieure, car votre commentaire ne fait rien pour cette question – JM4
Et à ce titre - l'une des questions les plus populaires sur S.O. C'est pourquoi les programmeurs «novices» ont peur de faire avancer leurs techniques et c'est à cause de réponses comme ça. Les programmeurs avancés traitent les nouveaux venus comme s'ils étaient stupides. Si ce forum était seulement pour les niveaux avancés de questions, ils auraient dû en faire un critère dès le début. – JM4