Adăugarea procesării plăților Bitcoin pe site-ul dvs. Web

Bitcoin a început cu siguranță să devină mai important, iar cu o acoperire globală și taxe minime este o metodă de plată care merită luată în considerare.

În acest articol, vom arunca o privire la ceea ce este Bitcoin, precum și cum să începeți să le acceptați în aplicațiile dvs..


Ce este Bitcoin?

În primul rând, ce este Bitcoin? Pentru cei care nu cunosc, Bitcoin este o monedă de tip peer-to-peer, dezvoltată pentru a elimina necesitatea unei autorități de încredere terță parte și, în schimb, să se bazeze pe securitatea intrinsecă prin intermediul hashes-urilor criptografice.

Prin eliminarea unei autorități centrale (un guvern, o bancă, etc ...), veți reduce taxele și cerințele mai mici. Nu este nevoie să completați formulare sau să plătiți salariile oamenilor, deci, într-un fel, banii se asigură.

Nu voi intra în specific, dar, în esență, de fiecare dată când are loc un transfer de valută, banii se semnează cu cheile celor două părți și apoi se rupă, iar aceste tranzacții sunt atașate la jurnalul global. Acest lucru permite monedelor să fie trasate public înapoi, și pentru a vedea dacă banii într-adevăr aparțin unei persoane sau nu.


Avantaje dezavantaje

Acum, să aruncăm o privire asupra unora dintre avantajele și dezavantajele asociate utilizării Bitcoin:

avantaje:

  • Oricine o poate folosi la nivel global.
  • Oarecum anonimă.
  • Taxe minime.
  • Nu este necesară nicio configurare.

Dezavantaje:

  • Valoarea monedelor fluctuează.
  • Nu la fel de important ca alte opțiuni (CC, Paypal).

Avantajele se bazează pe un model similar, deoarece, pentru că nu există o autoritate centrală, oricine o poate folosi în orice moment fără a avea nevoie de nici o confirmare sau acceptare, plus taxele sunt destul de scăzute.

Acum dezavantajele sunt variate. Deoarece nu este la fel de important ca alte opțiuni de plată, nu cred că este exact unde trebuie să fie, pentru a fi singura opțiune de plată. Dar, prin toate mijloacele, dacă sunteți un suporter uriaș și doriți ca acest lucru să crească, puteți fi un serviciu Bitcoin, dar aș sugera, deocamdată, utilizarea acestuia alături de un alt serviciu care acceptă cardul de credit.

Celălalt dezavantaj este stabilitatea valorii Bitcoin; la începutul acestui an, valoarea unui bitcoin a fost de aproximativ 12-14 $ fiecare, în doar câteva luni monedele au crescut până la aproape 240 $ în aprilie și sunt în prezent în valoare de aproximativ 110-115 $ fiecare. Acest lucru este în contradicție enormă cu monedele tradiționale, pentru ca banii dvs. să aibă o creștere de 2000% a valorii și apoi o scădere de 50%, toate într-o perioadă de câteva luni se pare că ar trebui să fie un steag roșu.

curtoazie de blockchain.info

Este greu de spus cu siguranță, dacă este vorba doar de un bi-produs de a avea o monedă descentralizată sau dacă se datorează perioadei precoce a programului, dar este cu siguranță un motiv de îngrijorare.

Din fericire, majoritatea procesoarelor Bitcoin, precum cea pe care o voi folosi în acest articol, vă permit să transformați imediat Bitcoins-urile sau o parte din ele în valută obișnuită, cum ar fi dolari, imediat. De exemplu, puteți configura că 80% din Bitcoin-urile care intră trebuie să fie imediat convertite și transferate în contul dvs. bancar, eliminând acest element de risc.

În cele din urmă, puteți câștiga și pierde din aceste fluctuații, deci depinde de dvs. dacă doriți să pariați și să lăsați mai mult din Bitcoins sau să eliminați toate riscurile și să le convertiți.

Acestea sunt câteva servicii populare în jurul valorii de lucru ca Coinbase, BitPay, etc, dar cel pe care îl voi folosi în acest articol este BIPS.


Premisa

În acest articol vom construi o pagină de destinație simplă, în care puteți introduce în e-mail și faceți clic pe "achiziție", care vă va duce la pagina de plată. Pe pagina de plată, vi se va da o adresă Bitcoin pe care o puteți trimite și, odată ce ați plătit, veți primi articolul pe care l-ați achiziționat prin e-mail.

Aceste trei etape sunt complet separate, la fel ca în toate opțiunile de plată, dar se remarcă mai mult aici, deoarece nu puteți plăti direct din formularul de achiziție și trebuie să plătiți din propriul dvs. portofel Bitcoin.

Pentru această aplicație, voi folosi Slim pentru a oferi o mică structură, Mandrill pentru trimiterea produsului și, așa cum am menționat, BIPS ca procesor de plată pentru a pune în aplicare aspectul Bitcoin al lucrurilor.


Pregatirea

Deci, pentru a instala Slim, creați un composer.json fișier cu următoarele:

 "nume": "aplicație bitcoin", "necesită": "slim / slim": "2.2.0"

Atunci fugi compozitorul instala (presupunând că ați instalat un compozitor) pentru a instala dependențele.

Apoi, creați un public dosar cu un index.php fișier în interiorul acestuia, și a vizualizari pliant.

Structura dvs. ar trebui să arate astfel:

 public / -> index.php vendor / views / composer.json

Deschide acum index.php fișier și să configurați aplicația Slim:

  "... / vizionări"));

Solicităm autoloader-ul și apoi instanțializăm biblioteca Slim, până acum doar boilerplate. Apoi, să adăugăm ruta de domiciliu care va fi o pagină standard HTML cu formularul pentru a începe o achiziție:

 $ app-> get ('/', function () foloseste ($ app) $ app-> render ('home.php'););

Și apoi trebuie să adăugăm home.php vizualizați fișierul în sine la vizualizari pliant:

    Bitcoin App    

Cumpără asta

Aceasta este o ofertă grozavă pe care ar trebui să o achiziționați

Nimic prea fantezist, practic doar o formă de trimitere a e-mail-ului utilizatorului.

Ultima piesă de configurare pe care trebuie să o finalizăm este să vă înscrieți pentru BIPS și Mandrill (dacă o utilizați) și să generați chei API pentru ambele. În BIPS, mergeți la Comerciant și generați o chei API pentru facturi, iar pentru Mandrill mergeți la Certificatele SMTP și API pentru a genera o nouă cheie API.


Crearea unei facturi

Până în prezent avem o formă de bază care va trimite un e-mail de utilizator printr-o cerere POST, următorul pas este să luați e-mailul respectiv și să generați o factură pentru acesta.

Să adăugăm un traseu post la index.php , care va genera un apel API pentru a crea o factură nouă și pentru a redirecționa utilizatorul către acesta:

 $ app-> post ('/', functie () folositi ($ app) $ email = $ req = $ app-> request () "BIPS_API_KEY"; $ ch = curl_init ("https://bips.me/api/v1/invoice"); curl_setopt ($ ch, CURLOPT_POST, true); curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, , CURLOPT_HTTPAUTH, CURLAUTH_BASIC); curl_setopt ($ ch; CURLOPT_SSL_VERIFYHOST; 2); curl_setopt ($ ch, CURLOPT_SSL_VERIFYHOST; curl_setopt ($ ch, CURLOPT_POSTFIELDS, array ("preț" => 20, "valută" => "USD", "item" => "PDF Book", "custom" => json_encode $ email)))); $ invoiceUrl = curl_exec ($ ch); $ app-> redirect ($ invoiceUrl););

Există câteva lucruri de observat aici, pentru unul, tokenul API pe care l-ați generat pentru crearea facturilor, este "numele de utilizator" în autentificarea HTTP. Campurile POST pe care le trimitem sunt după cum urmează:

  • Preț - prețul obiectului (o valoare int sau float).
  • valută - o abreviere valutară ca USD, GBP, EUR sau BTC pentru prețurile din Bitcoin în sine.
  • articol - numele articolului, acesta este opțional, dar va apărea pe factură.
  • personalizat - un șir codat JSON care conține toate datele personalizate pe care doriți să le atașați facturii. Orice s-ar specifica aici va fi transferat din nou după ce utilizatorul plătește, astfel încât să puteți pune numere de referință interne sau chei la o bază de date, în exemplul nostru am pus email-ul deoarece nu stocăm alte date.

Apelul API va returna doar adresa URL la factura în sine, astfel încât să putem obține doar răspunsul și să redirecționăm direct la acesta.

Acum, spre deosebire de alte opțiuni de plată, cum ar fi un card de credit sau un PayPal, nu există o terță parte care să gestioneze taxa, astfel încât să nu puteți introduce doar numărul sau datele de conectare pentru a plăti. În schimb, acesta creează un portofel personalizat pentru fiecare tranzacție și vă oferă 15 minute pentru a transfera suma specificată în acel cont. Despre asta am vorbit mai devreme, că, cu Bitcoin, observați pașii diferiți în timpul procesului de plată mai mult, atunci ați face ceva cum ar fi achiziția cu un singur clic pe Amazon.

Pe de altă parte, avantajul unui sistem de genul acesta este securitatea înnăscută care vine fără a fi nevoie să faceți nimic. Nu aveți de-a face cu numerele cărților de credit sau cu plățile de procesare, astfel încât site-ul nu trebuie să fie la fel de sigur, ci doar să creați o nouă identitate sau portofel și dacă banii sunt transferați acolo, plata se încheie cu succes.


Finalizarea achiziției

Ultimul pas este de a face față cumpărării efective, odată ce plata a fost încheiată. Pentru a face acest lucru, trebuie să adăugați o adresă URL de apel invers și o cheie secretă în fila comerciant a panoului BIPS. O să-l direcționez către / IPN ruta, cu o cheie secreta CHEIE SECRETA.

Callback-ul este o cerere POST care conține toate informațiile de la cumpărare împreună cu datele personalizate pe care le-ați transmis și un hash pentru a verifica autenticitatea. Verificați cumpărarea de SHA-512 cu ajutorul cheii de tranzacție împreună cu secretul pe care îl configurați în panoul de administrare și verificați dacă se potrivește cu "hash" calculat în solicitarea apelului invers:

 $ app-> post ('/ ipn', functie () foloseste ($ app) // Slim Cerere obiect $ req = $ app-> request (); // Obtinerea unor variabile din cerere $ email = $ req- > post ('personalizat') ['email']; $ transactionKey = $ req-> post ('transaction') ['hash']; $ invoiceHash = $ req-> post ($) $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ $ === $ hash && $ status == 1) // Paid);

Cheia de tranzacție și secretul sunt doar anexate unul la celălalt și apoi le avem împreună. Ultimul bit verifică doar dacă starea este 1 (ceea ce înseamnă că a venit plata) și verificarea autenticității notificării.

Acum avem adresa utilizatorului și avem o confirmare a plății, astfel încât ultimul pas este să trimiteți utilizatorului un fel de element. Dacă construiți un serviciu de abonament sau un fel de element fizic, puteți doar să înregistrați plata utilizatorului într-o bază de date, dar să încheiați acest articol, să luăm o scurtă privire la trimiterea unui element cu Mandrill.

 dacă ($ invoiceHash === $ hash && $ status == 1) // Mandrill URL + cheie API $ url = "https://mandrillapp.com/api/1.0/messages/send.json"; $ apiKey = "MANDRILL_API_KEY"; // Obțineți șablon de e-mail $ view = $ app-> view (); $ template = $ vizualizare-> preluare ("email.php"); // Mesaj date POST $ messageData = array ("key" => $ apiKey, "message" => array ("html" => $ template, "subject" => "Thank you for Your Purchase :)" "=>" [email protected] "," from_name "=>" Numele tău "," to "=> array (array (" email "=> $ email)))); // Trimite cererea $ ch = curl_init ($ url); curl_setopt ($ ch, CURLOPT_POST, adevărat); curl_setopt ($ ch, CURLOPT_POSTFIELDS, json_encode ($ messageData)); curl_setopt ($ ch, CURLOPT_SSLVERSION, 3); curl_setopt ($ ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt ($ ch, CURLOPT_SSL_VERIFYHOST, 2); curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, true); curl_exec ($ ch); 

În codul de mai sus, tot ceea ce facem este pregătirea tuturor datelor și construirea cererii de mesaj JSON pentru a fi trimise la Mandrill API; trebuie să trimiteți cheia API, subiectul mesajului și mesajul, adresa de e-mail / numele și adresa e-mailului.

Pentru mesaj, folosim comenzile șablon construite în Slim și apoi folosim POST cererea răsuci și json_encode pentru a compila datele în JSON.

Apoi, să creăm fișierul șablon email.php (în interiorul dosarului de vizualizări). Puteți să puneți aproape orice doriți aici, deoarece este analizat ca un șablon normal Slim și tocmai returnez HTML-ul redat:

 

Multumesc pentru cumparaturile facute

Puteți descărca fișierul aici.

Tocmai am adăugat o rubrică cu un link către fișier. Dacă totul a mers bine, site-ul dvs. ar trebui să funcționeze pe deplin.


Concluzie

În acest articol am trecut prin procesul de creare a facturii, precum și a procesării plăților. Bitcoin poate părea un pic cam descurajant pentru a începe, dar, după cum puteți vedea, este mult mai simplu decât se va gândi, chiar și mai simplu decât alte opțiuni de plată în majoritatea cazurilor.

Știu că aceasta poate fi una dintre cele mai costisitoare demo-uri pentru a încerca, așa că am obținut o fotografie exclusivă de designerul de web talentat Melissa Keizer pe care îl puteți cumpăra în demo, dacă doriți.

Sper că v-ați bucurat de acest articol și vă mulțumesc că ați citit. Ca de obicei, dacă aveți întrebări, nu ezitați să vă lăsați un comentariu de mai jos, pe twitter sau pe canalul IRC Nettuts + pe freenode.

Cod