2016-04-19 9 views
0

Ich stelle nicht viele Fragen, wie ich für mich selbst forschen möchte, aber das hat mich ratlos. Ich habe eine bestehende Codeigniter2 (CI) -Anwendung und versuche, eine vorhandene API für ein Zahlungssystem (MangoPay) zu integrieren. Ich habe es als eine Bibliothek hinzugefügt und es auch in autoload.php vorgeladen, es wird ohne Fehler enthalten. Meine Frage betrifft die Einrichtung der Klassenstruktur und die Adressierung der Klasse aus meiner Anwendung.Verwenden einer vorhandenen API mit Codeigniter 2

Nun, wenn Sie diese Arbeit von einer einfachen alten PHP-Datei zu erhalten, würde der Code wie folgt aussehen (und btw es funktioniert auf meinem Rechner ohne Problem aus einer einfachen PHP-Datei)

<?php 
require_once('../vendor/autoload.php'); 
$mangoPayApi = new MangoPay\MangoPayApi(); 
$mangoPayApi->Config->ClientId = 'user_id'; 
$mangoPayApi->Config->ClientPassword = 'password_here'; 
$mangoPayApi->Config->TemporaryFolder = 'c:\\wamp\\tmp/'; 

$User = new MangoPay\UserNatural(); 
$User->Email = "[email protected]"; 
$User->FirstName = "Bob"; 
$User->LastName = "Briant"; 
$User->Birthday = 121271; 
$User->Nationality = "FR"; 
$User->CountryOfResidence = "ZA"; 
$result = $mangoPayApi->Users->Create($User); 
var_dump($result); 
?> 

Also, ich habe eine neue Klasse im Bibliotheksordner erstellt und wenn ich var_dump() den Inhalt von MangoPayApi wie unten beschrieben habe, wirft es alle möglichen Sachen, die beweisen, dass es funktioniert (dh keine PHP Fehler).

<?php if (!defined('BASEPATH')) exit('No direct script access allowed'); 
require_once('/vendor/autoload.php'); 
class MangoPayService { 

    private $mangoPayApi; 
private $user; 

    public function __construct() 
    { 
     $this->mangoPayApi = new MangoPay\MangoPayApi(); 
     $this->mangoPayApi->Config->ClientId = 'user_id_here'; 
     $this->mangoPayApi->Config->ClientPassword = 'password_here'; 
     $this->mangoPayApi->Config->TemporaryFolder = 'c:\\wamp\\tmp/';  
     //var_dump($mangoPayApi); 
    } 

Ich dachte, ich könnte nur eine Methode in der Klasse wie dieser und acces es wie

in meiner Anwendung

function add_user(){ 
     //CREATE NATURAL USER 

      $this->user = new user(); 
      $user->Email = '[email protected]'; 
      $user->FirstName = "John"; 
      $user->LastName = "Smith"; 
      $user->Birthday = 121271; 
      $user->Nationality = "FR"; 
      $user->CountryOfResidence = "ZA"; 

     $add_userResult = $this->mangoPayApi->Users->Create($user); 
     var_dump($add_userResult); 
    } 

schreiben

<?php echo $this->mangopayservice->add_user() ?> 

Aber ich bekomme Fehler Fatal error: Class ' Benutzer 'nicht gefunden in C: \ wamp \ www \ mpapp \ application \ libraries \ MangoPayService.php in Zeile 25 (was ist das-> user = neuer Benutzer(); diese Zeile)

Kann jemand erklären, wie man dieses Szenario richtig einrichtet und wie man es richtig mit der API integriert.

Wenn ich etwas bekommen kann, um einen Benutzer einfach zu erstellen, wenn eine Seite geöffnet wird, denke ich, ich kann es von dort aus mit der Lösung als Roadmap arbeiten.

Ich werde den gesamten Integrationscode schreiben, sobald ich verstehe, wie das funktioniert.

Vielen Dank im Voraus

Antwort

1

MangoPay erfordert eine NaturalUser Klasse. Sie versuchen, eine user Klasse zu instanziieren.

Ersetzen Sie einfach Ihre erste Zeile der add_user Funktion mit:

$user = new MangoPay\UserNatural(); 
+0

i Michiel bin, könnte ich dich küssen ... oder zumindest kaufen Sie ein Bier oder drei. Ich danke dir sehr. Du bist ein Diamant: D –

Verwandte Themen