Integrera Bitcoin Payment Gateway till OpenCart Del 1

I denna serie ska vi se på att bygga ett Bitcoin betalningssystem i vår installation av OpenCart. Innan vi börjar, rekommenderar jag att du övar den grundläggande OpenCart-modulen om du inte känner till hur du bygger egna moduler.

När du är klar ska du ha tillräckligt med kunskap för att fortsätta utveckla mer avancerade moduler. I den här serien är det precis vad vi strävar efter att göra.

Komma igång

Innan vi börjar bygga förlängningen, ställer du in OpenCart på din lokala maskin. Hämta sedan BitPay API-biblioteket från artikelfästet och placera det i din butiksrots som visas i följande skärmdump:

För att konfigurera och konfigurera vår Bitcoin Payment Module behöver vi ett admingränssnitt. För att göra detta följer vi MVC-mönstret för att implementera vår adminpanel.

1. Skapa administratörskontrollen

  1. Navigera till admin / styrenheten / betalning
  2. Skapa en PHP-fil och namnge den bitpay.php
  3. Öppna filen i din favorit IDE och skapa en klass enligt OpenCart-klassnamnkonventionen, till exempel: klass ControllerPaymentBitpay utökar Controller
  4. Inne i kontrollerklassen anger du standardvärdet index fungera. 
  5. Sedan, inuti den här funktionen, börjar du skriva koden enligt nedan.

1.1 Laddar språk och modeller

$ This-> språk-> last (betalning / bitpay '); $ This-> last> modell ( 'lokalisering / BREV'); // Laddar modellen för att få ordning Orderstatus

1.2 Ställa in sidtitel

För att ange Sidtitel för dokumentet använder vi följande kod:

$ This-> dokument-> setTitle ($ this-> språk-> get ( 'text_title')); // Ställa in rubrikrubrikens titel

1,3. Parsing Controllers Elements to View

/ * Tilldela och analysera värdena från * / $ this-> data ['heading_title'] = $ this-> language-> get ('text_title'); $ this-> data ['text_enabled'] = $ this-> language-> get ('text_enabled'); // får standard språktext $ this-> data ['text_disabled'] = $ this-> language-> get ('text_disabled'); // får standard språktext $ 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åktext $ this-> data ['button_cancel'] = $ this-> language-> get ('button_cancel'); // får standard språktext $ this-> data ['tab_general'] = $ this-> language-> get ('tab_general'); // får standard språktext / * Avsluta textöverföring * / 

1,4. Routing Spara och Avbryt knappar

Följande kod används för att tilldela åtgärd / spara och avbryta webbadresser som triggar:

$ this-> data ['action'] = HTTPS_SERVER. 'index.php? route = betalning /'.$ this-> payment_module_name.' & token = '. $ This-> Session-> data [ 'token']; $ this-> data ['cancel'] = HTTPS_SERVER. 'index.php? route = extension / payment & token ='. $ This-> Session-> data [ 'token']; 

1,5. Kommer att få tillgängliga orderstatus

Följande kod får alla orderstatuser från lokaliseringsmodellen (som är förkodad till OpenCart) och analyserar den för visningen:

$ this-> data ['order_statuses'] = $ this-> model_localisation_order_status-> getOrderStatuses (); 

1,6. Hämtar data från databasen

Vår sparprocess kommer i modellavsnittet. Emellertid är följande kod ansvarig för att hämta denna moduldata (om någon) och analysera den för visning.

/ * Hämta de fältvärden som sparas i databasen * / $ 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'); / * Databasfält som hämtar slutar * / 

1.6 Rendering av visningsskärmen

Följande kod lägger till barn i vår visningsmall och gör den till användarvyn.

$ this-> template = 'payment / bitpay.tpl'; // Mall Tilldela $ this-> children = array ('common / header', 'common / footer'); // Ange listan med mall childeren $ this-> response-> setOutput ($ this-> render (TRUE), $ this-> config-> get ('config_compression')); // Rendering av mallutmatningen

2. Skapa administrationsvy

  1. Navigera till admin / view / mall / betalning
  2. Skapa en fil och namnge den bitpay.tpl
  3. Du kan placera din egen HTML. I mitt fall har jag gjort det med hjälp av följande steg.

2,1. Lägga till rubrikbarn

För att ladda den rubrik som vi passerade som barn på 1,6:

 

2.2 varningsblok

Varning Block är en div sektion som kommer att visa användarvarningar om något:

 

2.3 Den fullständiga mallen

Den fullständiga HTML-filen kommer att se ut som nedan:

'; ">
*

Vid denna tidpunkt är vi färdiga med modulens layout. Nu är det dags att spara moduldata i databasen. Så vi lägger lite kod inuti regulatorn för detta ändamål.

Spara data

Inuti din regulators standardfunktion, placera någon serialiseringskod enligt nedan:

om (($ this-> request-> server ['REQUEST_METHOD'] == 'POST') && ($ this-> validera ())) // Kontrollera om data kommer via post och validera det $ this- > model_setting_setting-> editSetting ($ this-> payment_module_name, $ this-> request-> post); // Spara alla data i databasen $ this-> session-> data ['success'] = $ this-> language-> get ('text_success'); // Succesidentifierare $ this-> omdirigera (HTTPS_SERVER. 'Index.php? Route = extension / payment & token ='. $ This-> session-> data ['token']); // Omdirigering till listan över betalningsmoduler

Inledning Validering

Följande är valideringsfunktionen som validerar nödvändiga data:

privat $ error = array (); // Alla fel sparas i den här listan. Privata funktioner Validera () // Användarmodul Tillstånd Kontrollera om (! $ This-> user-> hasPermission ('modify', 'payment /'.$ this-> payment_module_name)) $ this-> error ['warning'] = $ this-> language-> get ('error_permission');  // Användarmodul Tillståndskontroll Avsluta // Kontrollera om API-nyckeln inte är tom om (! $ This-> request-> posta ['bitpay_api_key']) $ this-> error ['api_key'] = $ this- > språk-> get ( 'error_api_key');  // Api Check slutar här // Om det inte finns något fel returnerar funktionen True else False if (! $ This-> error) return TRUE;  annars returnera FALSE;  // Boolean Check slutar här

Vi är klara att skapa betalningsmodullayouten för instrumentbrädan, och du borde kunna testa drivrutinspanelen. Kom ihåg att bevilja tillstånd till administratörsanvändaren före provningen.

Slutsats

I den här artikeln introducerade vi den administrativa delen av betalningsmodulen. Observera att det är en bra idé att ge webbplatsadministratören mer kontroll via ett gränssnitt än att säga att de måste skriva in kod.

I nästa artikel genomför vi betalningsmodulen med avseende på fronten. Under tiden kan du skicka några frågor eller kommentarer via formuläret nedan.