Deci, doriți să acceptați cărți de credit online?

Până de curând, acceptarea cărților de credit pe un site web era scumpă și complicată. Dar asta a fost înainte de Stripe: o companie de prelucrare a cărților de credit extrem de diferite și insane minunate. Astăzi, vă voi arăta cum să începeți să acceptați cărți în 30 de minute sau mai puțin - fără a cheltui un ban.

Tutorial publicat

La fiecare câteva săptămâni, revizuim câteva postări preferate ale cititorului nostru de-a lungul istoriei site-ului. Acest tutorial a fost publicat pentru prima oară în iunie 2012.


Modelele folosite pentru a fi

Fără Stripe, acceptarea cărților de credit pe un site web este o întreprindere masivă. În primul rând, trebuie să deschideți un "cont de comerciant", care este ca un cont bancar obișnuit, dar cu mai multe taxe. Apoi, aveți nevoie de un "gateway de plată" - deoarece procesarea cărților de credit aparent are loc într-o dimensiune separată, unde bancherii conduc cu un pumn de fier, iar Lindsey Lohan are o carieră de succes. Și apoi vin leeches: 25 dolari taxa lunară. Taxa de instalare de 99 $. Taxa anuală de 50 USD. $ 0.35 eșuat taxa de tranzacție (plătiți atunci când cardul clientului nu reușește să treacă!). $ 0.25 + 2.0% comision de tranzacție de succes. 2,00 dolari taxa de lot. Tată de 5,00 dolari-nevoie-a-noi-porsche comision. E ridicol. Cel mai popular procesor de carduri este Autorize.net, iar cei de la acea companie (și numeroșii revânzători) petrec în fiecare zi gândindu-se la modalități noi, ridicole de a-ți lua banii.


Introduceți Stripe

Setarea durează aproximativ cinci minute.

Din păcate, asta este ilegal să răpească CEO-ul autorize.net, să-l slather în sos de grătar și să-l arunce într-o groapă de bresili de miere. Dar, puteți face următorul lucru bun: nu folosiți serviciul său. Treceți la Stripe. Nu veți avea nevoie de un cont de comerciant sau de un gateway de plată. Stripe va depune bani în orice bancar doriți. Sunt taxe zero. Setarea durează aproximativ cinci minute. (Da, serios.) Și plătiți exact un singur lucru: 2,9% + 0,30 $ pentru fiecare tranzacție cu cartea de succes. (Deci, dacă vindeți ceva pentru 30 de dolari, păstrați 28,83 $, iar Stripe primește 1,17 $.) Site-ul este simplu și intuitiv, iar personalul este foarte util. Singurul dezavantaj este că Stripe nu este disponibil în prezent în afara Statelor Unite. (Notă: Stripe nu acceptă carduri de credit din străinătate, este doar că nu vă puteți înscrie pentru un cont Stripe în afara S.U.A.) Lucrează pe extinderea în alte țări.

Restul acestui tutorial va detalia modul de implementare a Stripe pe site-ul dvs. cu PHP și Javascript (jQuery). Serviciul are, de asemenea, API-uri pentru Ruby, Python, Java și alte platforme. Deși s-ar putea să pară că există mult de lucru înainte, într-adevăr nu există; veți fi în plină desfășurare în cel mai scurt timp. Să începem:


Pasul 0: Instalați un certificat SSL

Avem de-a face cu informații despre cărțile de credit, deci, bineînțeles, trebuie să asigurăm conexiunea utilizatorului cu serverul nostru. Facem acest lucru folosind un certificat SSL și nu este opțional. Nu numai utilizatorii se așteaptă să vadă protocolul "https: //" pe o pagină de comandă, Stripe o cere. Dar nu vă faceți griji: implementarea SSL este foarte simplă. Aproape toți furnizorii de servicii de găzduire oferă instalare automată a certificatelor SSL. Pur și simplu cumpărați certificatul prin intermediul furnizorului dvs. și îl instalează și configurează automat pentru dvs. Nu trebuie să faceți altceva pe site-ul dvs. Dacă formularul dvs. de comandă se află la http://mydomain.com/order.php, pur și simplu trimiteți clientului la adresa https://mydomain.com/order.php și conexiunea va fi securizată cu noul dvs. certificat SSL. Asta e!

Notă: există o excepție. Dacă pagina dvs. de comandă încarcă resurse cum ar fi foi de stil, scripturi sau imagini utilizând o adresă URL absolută (spre deosebire de cea relativă), va trebui să vă asigurați că acele adrese URL utilizează protocolul "https: //". De exemplu, dacă includeți o imagine pe pagina dvs. de comandă securizată, veți primi un avertisment în browser că pagina conține elemente atât securizate, cât și nesigure:

 

Pentru a remedia acest lucru, încărcați imaginea dintr-o adresă sigură, cum ar fi:

 

Nu aveți nevoie să vă faceți griji în legătură cu această problemă pentru urlări relative (cum ar fi "... /images/someImage.jpg") deoarece serverul dvs. va încărca automat aceste elemente în siguranță.


Pasul 1: Creați un cont

Vizitați Stripe.com și creați un nou cont. Odată ce ați trecut promptul inițial pentru numele de utilizator / parola, faceți clic pe meniul "Contul dvs." din partea dreaptă sus și deschideți panoul "Setări cont", care este prezentat mai jos. Mai întâi, asigurați-vă că ați setat un bun "Descriptor de declarație". Aceasta este ceea ce clienții vor vedea în declarațiile cărții de credit. Un descriptor bun îi ajută pe client să-și amintească ce a cumpărat, astfel încât să nu-și smulgă tranzacția pentru fraudă și să anuleze taxa. (Când se întâmplă acest lucru, se numește o "taxare" și veți plăti o taxă de 15 USD în plus față de pierderea vânzării, deci asigurați-vă că ați stabilit descriptorul dvs.). Mai apoi, specificați contul bancar la care doriți să depuneți banii . Sunteți bineveniți să folosiți a mea. În sfârșit, aruncați o privire la fila "API Keys". Vom folosi aceste lucruri în curând, așa că păstrați-le la îndemână.


Pasul 2: Creați formularul de plată

Următorul lucru de care avem nevoie este un formular pe care clienții noștri îl completează pentru a plasa o comandă de card de credit cu noi. Astăzi, vom folosi această pagină foarte simplificată PHP, numită "buy.php":

       

Formular de plată

Nume:

Numele de familie:

Adresa de email:

Numărul cărții de credit:

Data expirării:

CVC:

Există trei lucruri de reținut despre fragmentul de cod de mai sus.

  1. Mai întâi, am setat acțiunea formularului la "javascript:" mai degrabă decât să oferim o cale către un script de pe server. (Veți vedea de ce în doar un minut.)
  2. În al doilea rând, există un fragment scurt de PHP care în mod automat populează domeniul nostru de expirare ani cu următorii 20 de ani, astfel încât să nu trebuiască să îl actualizăm manual în viitor.
  3. În al treilea rând, nici unul dintre câmpurile de formate nu are un set de parametri "nume". Acest lucru este esențial pentru că va împiedica trimiterea pe server a valorii câmpului (cum ar fi numărul cărții de credit) atunci când formularul este trimis. Vom vorbi de ce este important acest lucru în doar un minut.

Cât de multe informații ar trebui să colectez?

Singurul lucru pe care l-ai absolvit trebuie sa trebuie să perceapă o carte de credit sunt numărul cardului și data de expirare. Dar ar trebui să colectați întotdeauna cel puțin câteva informații suplimentare. Iată de ce: dacă un client contestă taxa de pe cardul dvs., vi se va cere să dovediți că au făcut, de fapt, plasați o comandă cu dvs..

Cu cât mai multe informații colectați, cu atât mai ușor va fi să dovedești că clientul (spre deosebire de un hoț de identitate) a plasat comanda pe site-ul dvs..


Ce urmează: Imaginea mare

Bine, am instalat SSL și am primit un formular de plată. Să presupunem că vom plăti clientului 20 $ pentru această comandă. (În realitate, ați calcula totalul pe baza a ceea ce a comandat clientul, etc. Asta depinde de dvs.) Când el completează formularul și apasă butonul de trimitere, se întâmplă trei lucruri în această ordine:

  1. Folosind Javascript (jQuery), colectăm fiecare valoare a câmpului de formular. Transmitem aceste informații direct la serverul Stripe folosind Stripe.js.
  2. Serverul Stripe va asigura că datele cardului de credit sunt bine formate, pregătesc o tranzacție și ne trimit înapoi un "jeton de o singură utilizare".
  3. Transmitem tokenul la un script de server de pe propriul server, care contactează Stripe din nou și declanșează încărcarea efectivă pe cardul de credit. Asta e!

De ce face acest lucru?

Securitate. Informațiile utilizatorului cardului de credit nu ating niciodată serverul nostru. Transmitem-o direct la Stripe pe partea clientului folosind Javascript. Serverul Stripe preia această informație și pregătește o tranzacție. "Tokenul" pe care îl trimite înapoi NU conține detaliile cardului de credit, dar nu conține un cod care ne permite să declanșăm tranzacția pe care Stripe a pregătit-o la final. Astfel, putem transfera în siguranță acest simbol către serverul propriu, fără a risca securitatea detaliilor cărții de credit a utilizatorului.

Notă: în timp ce tu poate sa utilizați Stripe fără procesul token, I tare descuraja-o. Dacă treci detaliile cărții de credit brute pe propriul server, trebuie să fii cu grijă să le protejezi și există multe modalități de a înșela. De exemplu, jurnalele de erori ale serverului ar putea înregistra cu ușurință informații sensibile, deci trebuie să le curățați în siguranță și în mod regulat. Dacă aveți un plan de găzduire partajat, probabil că nu aveți controlul necesar pentru a face acest lucru. În plus, dacă serverul dvs. este vreodată compromis, s-ar putea să fiți dat în judecată în urma ucigașilor. Și dacă faci ceva într-adevăr cum ar fi magazinul de informații necriptate carte într-o bază de date, voi conduce personal la casa ta și te va bate cu un cactus. Redă-l în siguranță; utilizați procesul token.


Pasul 3: Colectați valorile formularului

Creați un nou fișier Javascript, numit "buy-controller.js". Să începem să codificăm acel fișier cu câteva verificări de bază de validare:

 function showErrorDialogWithMessage (mesaj) // Pentru tutorial, vom face doar o alerta. Ar trebui să personalizați această funcție pentru a // prezenta mesaje de eroare "destul de" pe pagina dvs. alertă (mesaj); // Re-activați butonul de comandă astfel încât utilizatorul să poată încerca din nou $ ('buy-submit-button') removeAttr ("dezactivat");  $ (document) .ready (functie () $ ('# buy-form'). ) .attr ("dezactivat", "dezactivat"); var_Name = $ ('# first-name' $ ('# email') val (); var cardNumber = $ ('# card-number'). Câmpurile de prim și de ultimul nume: asigurați-vă că nu sunt goale în cazul în care (fName === "") showErrorDialogWithMessage ("Introduceți numele dvs. de familie" "Introduceți numele dvs. de familie"); returnați; // Validați adresa de e-mail: var emailFilter = / ^ ([a-zA-Z0-9_\.\-])+\@(([-zA- (E-mail === "") showErrorDialogWithMessage ("Vă rugăm introduceți adresa dvs. de e-mail . "); retur; altfel dacă (! emailFilter.test (email)) showErrorDialogWithMessage (" Adresa ta de e-mail nu este validă " așa că asigurați-vă că nu sunt goale dacă (cardNumber === "") showErrorDialogWithMessage ("Introduceți numărul cardului dvs."); întoarcere;  if (cardCVC === "") showErrorDialogWithMessage ("Introduceți codul de securitate al cardului dvs."); întoarcere;  // Boom! Am trecut validarea de bază, așa că suntem gata să trimitem informațiile la // Stripe pentru a crea un jeton! (Vom adăuga în curând acest cod.)); );

Apoi, trebuie să adăugăm acest nou fișier JavaScript la element al paginii noastre "buy.php". Vom adăuga, de asemenea, "Stripe.js", care este un fișier găzduit pe serverul Stripe, care ne permite să contactăm Stripe din partea clientului pentru a transmite detaliile cărții de credit și pentru a primi simbolul nostru. (Rețineți că încărcăm Stripe.js folosind protocolul "https: //"!) Modificați elementul "buy.php" pentru a arăta astfel:

     

Taste API

Înainte de a putea trimite informații lui Stripe, trebuie să-i spunem lui Stripe cumva cine suntem. Pentru a face acest lucru, folosim o pereche de "chei", care sunt șiruri unice care identifică contul nostru. Pentru a localiza aceste chei, accesați panoul Setări cont Stripe și extrageți fila API Keys, ilustrată aici:

După cum puteți vedea, există în total patru chei în două seturi: "Test" și "Live". Utilizați setul de testare în timpul dezvoltării, astfel încât să puteți verifica codul fără să încărcați carduri. Când sunteți gata să desfășurați un site Web, înlocuiți pur și simplu tastele de testare cu cele live. Există două chei în fiecare set: "publicabil" și "secret". (Vom folosi cheia "secret" în scriptul nostru de pe server după ce primim un jeton de la Stripe.) Pentru moment, luați cheie de testare publicabilă și adăugați-l la elementul HEAD al "buy.php" astfel:

      

Avertizare: TREBUIE să includeți Stripe.js ÎNAINTE de a stabili cheia care poate fi publicată. În plus, fii foarte atent că nu iei un site în direct fără a trece la cheile "live"! În sfârșit, fiți sigur că vă păstrați cheile secrete în siguranță secret!


Pasul 4: Solicitați un jeton

Înapoi în partea de jos a "buy-controller.js", suntem gata să adăugăm codul care solicită un jeton din Stripe. Sunt doar câteva rânduri:

 // Boom! Am trecut validarea de bază, solicitați astfel un token din Stripe: Stripe.createToken (număr: cardNumber, cvc: cardCVC, exp_month: $ ('# expirație-lună') val (), exp_year: $ (' an); val (), stripeResponseHandler); // Previne acțiunea implicită de trimitere pe formularul return false;

Funcția "createToken" (care este definită în Stripe.js) acceptă doi parametri. Primul este un obiect cu detaliile cărții de credit. Al doilea este numele funcției de apel invers care va fi invocată atunci când serverul Stripe termină pregătirea tranzacției și returnează tokenul. În acest caz, funcția noastră de apel invers este numită "stripeResponseHandler". Să adăugăm această funcție în partea de sus a "buy-controller.js":

 function stripeResponseHandler (stare, răspuns) if (response.error) // Stripe.js nu a reușit să genereze un jeton. Mesajul de eroare va explica de ce. // De obicei, este pentru că clientul a confruntat greșit informațiile despre carduri. // Ar trebui să personalizați acest lucru pentru a prezenta mesajul într-o manieră destul de bună: alertă (response.error.message);  altfel // Stripe.js a generat un jeton cu succes. Suntem gata să percepem cardul! var token = răspuns.id; var primul nume = $ ("# first-name") val (); var lastName = $ ("# last-name") val (); var email = $ ("# email") val (); // Trebuie să știm ce sumă să percepem. Să presupunem $ 20.00 pentru tutorial. // În mod evident, calculați acest lucru pe cont propriu: preț var = 20; // Efectuați apelul către server-script pentru a procesa comanda. // Transmiteți informația despre token și non-sensibil. var request = $ .ajax (tip: "POST", url: "pay.php", dataType: "json", data: "stripeToken": token, "firstName" email ": e-mail," preț ": preț); request.done (functie msg) if (msg.result === 0) // Particularizeaza aceasta sectiune pentru a prezenta un mesaj de succes si a afisa ce ar trebui sa fie afisat userului. cu succes! "); altceva // Cardul NU a fost incarcat cu succes, dar am interfacut cu Stripe // foarte bine.Este probabil o problema cu cardul de credit al utilizatorului.// Personalizati aceasta sectiune pentru a prezenta o alerta de avertizare (" Cardul de credit al utilizatorului nu a reușit. ");); request.fail (functie (jqXHR, textStatus) // Nu am facut apelul AJAX la pay.php Ceva nu merge bine la sfarsitul nostru // Nu ar trebui sa se intample in mod normal, dar trebuie sa ne descurcam daca da. ("Eroare: nu am putut apela pay.php pentru a procesa tranzacția.");); 

Această funcție verifică mai întâi pentru a vedea dacă a apărut o eroare la crearea jetonului. Dacă Stripe.js nu reușește să returneze un jeton valid, de obicei, clientul a introdus incorect unele dintre informațiile din cardul de credit. S-ar putea să fi greșit un număr sau să fi selectat data de expirare greșită. Din fericire, mesajul de eroare care vine împreună cu răspunsul vă va spune exact de ce nu sa produs crearea de jetoane. Stripe garantează că acest mesaj de eroare este potrivit pentru afișare, dar nu este verbose. Așteptați să vedeți șiruri de caractere, cum ar fi "data de expirare nevalidă" sau "CVC incorectă", decât propozițiile complete.

Dacă, pe de altă parte, tot ce a fost validat și Stripe a creat un simbol, suntem gata să dăm tokenul spre scriptul nostru de pe server și să plasăm taxa. În codul de mai sus, folosim funcția Ajax a jQuery pentru a face acest lucru. Transmitem tokenul, precum și câteva informații pe care ar trebui să le înregistrăm într-o bază de date: numele clientului și adresa de e-mail. În cele din urmă, trebuie să știm cât de mulți bani să percepem cardul. Presupunem 20 de dolari astăzi, dar ar trebui să treci o valoare calculată din coșul de cumpărături etc. Am aruncat toate aceste informații într-un obiect JSON și vom face apelul Ajax la scriptul nostru de pe server, "pay.php" ( pe care o vom crea mai jos). Apoi, ne uităm pur și simplu la răspuns și prezentăm utilizatorului un mesaj de succes sau de eroare. În mod evident, personalizați acest cod pentru a se potrivi designului site-ului dvs..


Pasul 5: Creați un script de server

Singurul lucru pe care trebuie să-l facem este să creăm scriptul PHP de la server care declanșează încărcarea pe cardul clientului nostru. În primul rând, avem nevoie de biblioteca PHP a lui Stripe. Pentru ao descărca, accesați site-ul Stripe, faceți clic pe linkul "Documentație" din partea dreaptă sus, apoi alegeți secțiunea "Biblioteci API". (Sau puteți merge direct acolo făcând clic aici.) Derulați în jos pe pagină până când vedeți secțiunea PHP, care arată astfel:

Descărcați cea mai recentă versiune și dezarhivați-o. Veți vedea două elemente: "Stripe.php" și un folder numit "Stripe" care conține o grămadă de alte fișiere PHP. Aruncați aceste două elemente în dosarul site-ului dvs. Web.

Acum, creați un nou fișier numit "pay.php". Vom începe să codificăm acest fișier cu câteva chestii de bază:

  1, 'errorMessage' => mesaj $); echo json_encode ($ a);  // facturare prin card de credit requ_once ('Stripe.php'); // modificați această cale spre locul unde ați pus biblioteca PHP Stripe! $ trialAPIKey = "oRU5rYklVzp94Ab0RbBTP0soVdlaEtvm"; // Acestea sunt cheile SECRET! $ liveAPIKey = "4BYrmtvwLb8iiiq9KIdbnRh5KCeSfPsX"; Stripe :: setApiKey ($ trialAPIKey); // Schimbați pentru a schimba între medii live și de test // Obțineți toate valorile din formularul $ token = $ _POST ['stripeToken']; $ email = $ _POST ['e-mail']; $ firstName = $ _POST ['firstName']; $ lastName = $ _POST ['lastName']; $ price = $ _POST ['prețul']; $ priceInCents = $ pret * 100; // Stripe necesită exprimarea sumei în centi

În partea de sus, avem o funcție simplă pe care o vom apela ori de câte ori scriptul nostru lovește o eroare. Returnează un obiect JSON cu două elemente: "result" și "errorMessage". Acest obiect JSON este trimis înapoi la "buy-controller.js" (unde am folosit funcția jQuery AJAX pentru a apela acest script de pe server). Acolo, putem verifica valoarea "rezultatului" pentru a vedea ce sa întâmplat. Dacă este 0, scriptul de plată a fost terminat cu succes. Dacă este 1, scriptul a lovit o eroare și putem folosi elementul "errorMessage" pentru a raporta ce sa întâmplat cu utilizatorul.

Apoi, aducem biblioteca PHP a lui Stripe pe care am descărcat-o mai devreme. Nu este nimic prea complicat aici; asigurați-vă că actualizați calea în instrucțiunea require la locația relativă a bibliotecii Stripe PHP. După asta, avem și amândoi SECRET Chei API. Noi numim funcția "setApiKey" (care face parte din biblioteca PHP a lui Stripe) și o transmitem cheia de încercare. Combinat cu cheia "publicabilă" pe care am stabilit-o mai devreme, Stripe are acum toate informațiile necesare pentru a ne confirma identitatea și a asocia această tranzacție cu contul nostru. Desigur, atunci când luăm site-ul în direct, vom schimba această afirmație pentru a folosi $ liveAPIKey!

Avertisment: Nu uitați să treceți la cheile API-ului LIVE când publicați site-ul dvs.! Trebuie să comutați atât cheia "publicabilă" în elementul HEAD din "buy.php" și cheia "secret", care apare în "pay.php", de mai sus.

Și, în sfârșit, luăm toate datele pe care le-am transmis de la apelul AJAX în "buy-controller.js". Rețineți că Stripe ne cere să specificăm suma taxei în centi. Aici, am trecut valoarea în dolari, așa că înmulțim cu 100 pentru ao converti în cenți.

Încărcați cardul

Iată restul codului pentru pay.php:

 încercați // Trebuie să avem toate aceste informații pentru a continua. Dacă lipsește, oprește-te. dacă (! isset ($ token)) aruncă o nouă excepție ("Eroare de pe site: token-ul de tip Stripe nu a fost generat corect sau trimis scriptului handlerului de plăți. dacă (! isset ($ email)) aruncă o nouă excepție ("Eroare la adresa site-ului web: Adresa de e-mail a fost NULL în scriptul handlerului de plăți. dacă (! isset ($ firstName)) aruncă o nouă excepție ("Eroare de pe site: primul nume a fost NULL în scriptul handlerului de plăți. dacă (! isset ($ lastName)) aruncă o nouă excepție ("Eroare de pe site: LastName a fost NULL în scriptul handlerului de plăți. dacă (! isset ($ priceInCents)) aruncă o nouă excepție ("Eroare de pe site: prețul a fost NULL în scriptul handlerului de plăți. încercați // să creați taxa pe serverele Stripe. ACEASTĂ VA ACCEPTA CARTEA! $ charge = Stripe_Charge :: creați (array ("suma" => $ priceInCents, "currency" => "usd", "card" => $ token, "description" => $ email)); // Dacă nu a fost aruncat nici o excepție, taxa a avut succes! // Aici puteți să înregistrați informațiile despre utilizator într-o bază de date, să trimiteți prin e-mail o chitanță etc. // Returnați un cod rezultat din '0' și orice alte informații doriți. // Acest lucru este accesibil jQuery Ajax retur apel-handler în "buy-controller.js" $ array = array ('rezultat' => 0, 'email' => $ email, 'pret' => message '=>' Mulțumesc, tranzacția a avut succes! '); echo json_encode ($ array);  catch (Stripe_Error $ e) // Taxa a eșuat din anumite motive. Mesajul lui Stripe va explica de ce. $ message = $ e-> getMessage (); returnErrorWithMessage ($ mesaj);  captură (Excepție $ e) // Una sau mai multe variabile au fost NULL $ message = $ e-> getMessage (); returnErrorWithMessage ($ mesaj); ?>

Surprinzător de simplu, nu? Mai întâi, verificăm că niciuna dintre variabilele noastre nu este nulă. Deși nu avem nevoie de toți aceștia pentru a încărca cardul, este posibil să dorim să înregistrăm aceste informații într-o bază de date sau să le folosim pentru a trimite o confirmare prin e-mail clientului, așa că nu vrem să procedăm dacă nu este disponibil.

Apoi, folosim "Stripe_Charge :: crea ()"metoda care face parte din biblioteca Stripe PHP.Aceasta este linia care incarca de fapt cardul utilizatorului (sau incearca oricum) Primele doua elemente ale matricei sunt explicative. unde trecem tokenul pe care l-am cerut de la Stripe mai devreme, al patrulea element, "descriere", este foarte important, indiferent ce trecem aici este ceea ce vom vedea când ne vom conecta la Stripe și vom vedea tranzacțiile noastre. clientul care a plasat această comandă. O adresă de e-mail este cel mai bun pariu, deoarece mulți clienți ar putea avea același nume.

De ce ar putea să nu se perceapă taxa la acest punct?

Dacă am reușit să obținem cu succes un jeton de la Stripe, de ce ar fi o taxă de eșec în acest moment? Răspunsul este că validarea Stripe efectuate mai devreme a verificat doar că datele cardului de credit au fost bine formate; nu a efectuat o tranzacție prin intermediul rețelelor de carduri de credit. Este posibil ca cardul clientului să depășească limita sa. Sau, dacă este un card de debit, este posibil să nu existe suficienți bani în contul clientului pentru a acoperi această achiziție. De asemenea, ar putea fi faptul că compania de cărți de credit pur și simplu semnalează tranzacția ca neobișnuită și necesită aprobarea de către client pentru ao permite (ceea ce mi sa întâmplat cu posesorii de carduri American Express). În astfel de situații, cardul va valida corect atunci când solicităm un jeton, dar eșuează atunci când încercăm să îl încărcăm efectiv. Din fericire, Stripe face foarte ușor să se ocupe de aceste eșecuri. Pur și simplu folosim blocuri de încercare / captare, după cum vedeți mai sus.

Încarcă cardul ultima!

Dacă acel client este eu, sunteți în căutarea unui cactus.

Dacă site-ul dvs. are nevoie de lucruri, cum ar fi generarea unui număr de serie pentru o licență software, ar trebui să faceți acest lucru înainte de a încărca cardul clientului. Dacă încărcați mai întâi cardul și apoi site-ul dvs. nu reușește să genereze un serial din orice motiv, clientul dvs. va fi bifat. (În cazul în care clientul respectiv este eu, sunteți în căutarea unui cactus.) S-ar putea chiar suna compania de carduri de credit să anuleze taxa, ceea ce are drept rezultat o taxă de 15 USD și pierderea unei vânzări. Deci, jucați-vă în siguranță: asigurați-vă că aveți totul pregătit să mergeți ÎNAINTE de a încărca clientul!

Asta e! Acesta este codul de care aveți nevoie pentru a încărca un card de credit pe site-ul dvs. web. Restul articolului acoperă câteva detalii suplimentare despre utilizarea Stripe pe care s-ar putea să-l găsiți la îndemână:


Testarea și depanarea

Când folosim cheile API "test", putem folosi numere speciale de cărți de credit care îi forțează pe Stripe să returneze un anumit tip de răspuns, astfel încât să putem testa foarte bine codul nostru. Iată numerele speciale:

  • 4242-4242-4242-4242: Simulați o tranzacție cu cartea de succes
  • 4000-0000-0000-0002: Forțați un răspuns "refuzat de carte"
  • 4242-4242-4242-4241: Forțați un răspuns "număr nevalid de carte"

În modul de testare, orice număr CVC de 3 sau 4 cifre este considerat valabil. Orice data de expirare care este în viitor este valabilă. Puteți trece un număr CVC din două cifre pentru a testa cazul de eroare. De asemenea, puteți trece orice dată în trecut pentru a testa răspunsul de expirare nevalid. În cele din urmă, dacă doriți să testați răspunsul "suma nevalidă", pur și simplu treceți orice sumă care nu este integrată (cum ar fi 1,35) ca sumă de taxat.

Pentru informații exhaustive despre testul Stripe, puteți vizita pagina de documentare.


Abonamente, stocarea informațiilor despre carduri și altele

Stripe vă permite să efectuați mai multe plăți unice pe cardul unui client. Puteți seta un abonament care să perceapă cardului o sumă specificată la un interval de alegere. Aplicațiile API pe care trebuie să le faceți sunt parte din biblioteca PHP a Stripe și site-ul web conține documentație excelentă care vă va ajuta să faceți acest proces.

Ce se întâmplă dacă doriți să stocați informații despre cărțile de credit, astfel încât clienții să nu trebuiască să-l introducă de fiecare dată când vizitează site-ul dvs.? Stripe vă permite să faceți asta și dvs.! Pur și simplu creați un obiect "client" în același mod în care am creat un simbol. Acest obiect conține toate datele sensibile care aparțin unui anumit client. Stripe va stoca in siguranta aceste informatii la sfarsitul lor (ceea ce inseamna ca nu trebuie sa riscati un bataie de cactusi) si puteti factura utilizatorul ori de cate ori doriti pur si simplu solicitand obiectul "client" corespunzator, la fel ca si cu tokenul. Din nou, toate API-urile fac parte din biblioteca PHP a lui Stripe, iar site-ul web vă va îndruma.


Vezi în acțiune

Deci, asta e: Stripe pe scurt! Dacă doriți să vedeți un exemplu de funcționare a ceea ce tocmai am acoperit cu puțin mai multă complexitate și design, swing pe această pagină și inspectați sursa. (Indiciu: va arăta familiar). În caz contrar, dacă aveți întrebări, lăsați un comentariu de mai jos, consultați Pagina de suport pentru Stripe sau găsiți-mă pe Twitter: @bdkjones. Multumesc si noroc!

Cod