I denne serien skal vi se på å bygge et Bitcoin betalingssystem i vår installasjon av OpenCart. Før vi begynner, anbefaler jeg at du trener den grunnleggende OpenCart-modulutviklingen hvis du ikke er kjent med hvordan du bygger dine egne moduler.
Når du er ferdig, bør du ha nok kunnskap til å fortsette med å utvikle mer avanserte moduler. I denne serien er det akkurat det vi tar sikte på å gjøre.
Før du begynner å bygge utvidelsen, sett opp OpenCart på din lokale maskin. Deretter laster du ned BitPay API-biblioteket fra artikkelvedlegget og legger det i butikkroten din som vist i følgende skjermdump:
For å konfigurere og sette opp vår Bitcoin Payment Module, trenger vi et admingrensesnitt. For å gjøre dette, følger vi MVC-mønsteret for å implementere administrasjonspanelet.
admin / controller / betaling
. bitpay.php
. klassen ControllerPaymentBitpay utvider kontrolleren
. index
funksjon. $ Dette-> Språk> load ( 'betaling / bitpay'); $ Dette-> last> modell ( 'lokalisering / order_status'); // lasting av modellen for å få systembestillingsstatuser
For å angi sidetittel for dokumentet bruker vi følgende kode:
$ Dette-> dokument-> setTitle ($ dette-> Språk> får ( 'text_title')); // Angi tittel for dokumentoverskriften
/ * Tilordne og analysere de fra verdiene * / $ this-> data ['heading_title'] = $ this-> language-> get ('text_title'); $ this-> data ['text_enabled'] = $ this-> language-> get ('text_enabled'); // får standard språktekst $ this-> data ['text_disabled'] = $ this-> language-> get ('text_disabled'); // får standard språktekst $ this-> data ['text_high'] = $ this-> language-> get ('text_high'); $ this-> data ['text_medium'] = $ this-> language-> get ('text_medium'); $ this-> data ['text_low'] = $ this-> language-> get ('text_low'); $ this-> data ['api_key'] = $ this-> language-> get ('text_api_key'); $ this-> data ['confirmed_status'] = $ this-> language-> get ('text_confirmed_status'); $ this-> data ['invalid_status'] = $ this-> language-> get ('text_invalid_status'); $ this-> data ['transaction_speed'] = $ this-> language-> get ('text_transaction_speed'); $ this-> data ['test_mode'] = $ this-> language-> get ('text_test_mode'); $ this-> data ['status'] = $ this-> language-> get ('text_status'); $ this-> data ['sort_order'] = $ this-> language-> get ('text_sort_order'); $ this-> data ['button_save'] = $ this-> language-> get ('button_save'); // får standard språktekst $ this-> data ['button_cancel'] = $ this-> language-> get ('button_cancel'); // får standard språktekst $ this-> data ['tab_general'] = $ this-> language-> get ('tab_general'); // får standard språktekst / * Avslutte tekstoppgave * /
Følgende kode brukes til å tilordne handling / lagre og avbryte nettadresser utløser:
$ this-> data ['action'] = HTTPS_SERVER. 'index.php? route = payment /'.$ this-> payment_module_name.' & token = '. $ Dette-> økt-> data [ 'token']; $ this-> data ['cancel'] = HTTPS_SERVER. 'index.php? route = forlengelse / betaling & token ='. $ Dette-> økt-> data [ 'token'];
Følgende kode får alle ordrestatusene fra lokaliseringsmodellen (som er forhåndskodet i OpenCart) og analyserer den for visningen:
$ this-> data ['order_statuses'] = $ this-> model_localisation_order_status-> getOrderStatuses ();
Vår lagringsprosess kommer i modellavsnittet. Imidlertid er følgende kode ansvarlig for å hente denne moduldata (hvis noen) og analysere den for visning.
/ * Henter feltverdiene lagret i Database * / $ this-> data ['bitpay_api_key'] = $ this-> config-> get ('bitpay_api_key'); $ this-> data ['bitpay_confirmed_status_id'] = $ this-> config-> get ('bitpay_confirmed_status_id'); $ this-> data ['bitpay_invalid_status_id'] = $ this-> config-> get ('bitpay_invalid_status_id'); $ this-> data ['bitpay_transaction_speed'] = $ this-> config-> get ('bitpay_transaction_speed'); $ this-> data ['bitpay_test_mode'] = $ this-> config-> get ('bitpay_test_mode'); $ this-> data ['bitpay_status'] = $ this-> config-> get ('bitpay_status'); $ this-> data ['bitpay_sort_order'] = $ this-> config-> get ('bitpay_sort_order'); / * Database felt henter endene * /
Følgende kode legger til barn i vår visningsmal og gjør den til brukervisningen.
$ this-> template = 'payment / bitpay.tpl'; // Mal tilordne $ this-> children = array ('common / header', 'common / footer'); // Gi listen over mal childeren $ this-> response-> setOutput ($ this-> render (TRUE), $ this-> config-> get ('config_compression')); // Gjenopprette malutgangen
admin / view / mal / betaling
. bitpay.tpl
. For å laste toppteksten vi passerte som barn på 1.6:
Advarselsblokk er en div-seksjon som vil vise brukeradvarsler hvis noen:
Den komplette HTML-filen vil se ut som nedenfor:
'; ">
På dette tidspunktet er vi ferdige med moduloppsettet. Nå er det på tide å lagre moduldata i databasen. Så vi skal sette en liten kode inne i kontrolleren til dette formålet.
Inne i regulatorens standardfunksjon, plasser noen serialiseringskode som vist nedenfor:
hvis (($ this-> request-> server ['REQUEST_METHOD'] == 'POST') && ($ this-> valider ())) // Kontroller om dataene kommer gjennom innlegg og valider det $ this- > model_setting_setting-> editSetting ($ this-> payment_module_name, $ this-> request-> post); // lagrer alle dataene i databasen $ this-> session-> data ['success'] = $ this-> language-> get ('text_success'); // Suksessidentifikator $ this-> omdirigere (HTTPS_SERVER. 'Index.php? Route = forlengelse / betaling & token ='. $ This-> session-> data ['token']); // Omadressering til betalingsmodullisten
Følgende er valideringsfunksjonen som validerer de nødvendige dataene:
privat $ error = array (); // Alle feil blir lagret i denne gruppen. Private funksjonen validere () // Brukermodul Tillatelse Sjekk om (! $ Dette-> bruker-> harPermission ('modifiser', 'betaling /'.$ dette-> betaling_modulnavn)) $ this-> error ['warning'] = $ this-> language-> get ('error_permission'); // Brukermodul Tillatelse Sjekk Ends // Sjekk om API-nøkkelen ikke er tom hvis (! $ This-> request-> post ['bitpay_api_key']) $ this-> feil ['api_key'] = $ this- > språk> get ( 'error_api_key'); // Api Check slutter her // Hvis det ikke er noen feil, returnerer funksjonen True else False hvis (! $ This-> error) return TRUE; ellers returnere FALSE; // Boolsk kontroll slutter her
Vi er ferdige med å opprette betalingsmodullayout for instrumentbrettet, og du bør kunne teste kjøre administrasjonspanelet. Husk å gi tillatelse til administrasjonsbrukeren før testing.
I denne artikkelen introduserte vi den administrative delen av betalingsmodulen. Vær oppmerksom på at det er en god ide å gi administratoren mer nettsted via et grensesnitt enn å si at de må skrive inn kode.
I neste artikkel implementerer vi betalingsmodulen med hensyn til forenden. I mellomtiden er du velkommen til å skyte spørsmål eller kommentarer via skjemaet nedenfor.