Я не задаю много вопросов, потому что люблю исследовать для себя, но это поставило меня в тупик.
У меня есть приложение Codeigniter2 (CI), и я пытаюсь интегрировать существующий API для платежной системы (MangoPay). Я добавил его как библиотеку, а также предварительно загрузил его в autoload.php, он включен без ошибок.
Мой вопрос касается настройки структуры класса и обращения к классу из моего приложения.
Теперь, если бы вы работали из простого старого PHP-файла, код выглядел бы так (и, между прочим, он работает на моей машине без проблем из простого php-файла)
<?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);
?>
Итак, я создал новый класс в папке библиотек, и если бы я должен был var_dump () содержимое mangoPayApi, как показано ниже, он выбрасывает все виды вещей, которые доказывают, что он работает (то есть без ошибок PHP).
<?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);
}
Я думал, что мог бы просто написать метод в классе, как это
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);
}
и получает доступ к нему в моем приложении, как
<?php echo $this->mangopayservice->add_user() ?>
Но я получаю ошибки. Неустранимая ошибка: класс «пользователь» не найден в C: \ wamp \ www \ mpapp \ application \ library \ MangoPayService.php в строке 25 (это this-> user = new user (); эта строка)
Может кто-нибудь объяснить, как правильно настроить этот сценарий и как правильно интегрировать с API.
если я могу получить что-то для создания пользователя просто при открытии страницы, я думаю, что смогу отработать это с помощью решения в качестве дорожной карты.
Я напишу весь код интеграции, как только пойму, как заставить это работать.
Заранее спасибо
MangoPay требует NaturalUser
учебный класс. Вы пытаетесь создать экземпляр user
учебный класс.
Просто замените свою первую строку add_user
функция с:
$user = new MangoPay\UserNatural();
Других решений пока нет …