Эту библиотеку можно использовать для подключения и выполнения операций с API HMRC https://developer.service.hmrc.gov.uk/api-documentation.
Для глобального API, такого как Hello World, вы можете использовать класс HelloWorldRequest для обработки вызова API.
<?php
$ request = new HMRC Hello HelloWorldRequest ;
// Response is instant of HMRCResponse class
$ response = $ request -> fire ();
return $ response -> getBody ();
Для вызова API, ограниченного приложением, например Hello Application. Сначала установите токен сервера с помощью класса ServerToken, а затем вы можете использовать класс HelloApplicationRequest для вызова API.
<?php
// ServerToken is singleton so please use getInstance() method to get an instance and then use set method on it
HMRC ServerToken ServerToken:: getInstance ()-> set ( $ _GET [ ' server_token ' ]);
$ request = new HMRC Hello HelloApplicationRequest ;
$ response = $ request -> fire ();
return $ response -> getBody ();
Информацию о вызове API, ограниченном пользователем, см. в следующем разделе.
Самый простой способ узнать об этом — запустить локальный сервер с помощью команды php -S localhost:8080
в корне этой библиотеки. Затем перейдите по адресу http://localhost:8080/examples/index.php в своем браузере. Не забудьте настроить учетные данные в файле example/config.php.
<?php
$ clientId = ' clientid ' ;
$ clientSecret = ' clientsecret ' ;
$ serverToken = ' servertoken ' ;
Вы можете получить токен доступа, создав поставщика HMRC Oauth2 и перенаправив его на URL-адрес авторизации (см., например, example/oauth2/create-access-token.php).
<?php
$ callbackUri = " http://localhost:8080/examples/oauth2/callback.php " ;
$ _SESSION [ ' client_id ' ] = $ _GET [ ' client_id ' ];
$ _SESSION [ ' client_secret ' ] = $ _GET [ ' client_secret ' ];
$ _SESSION [ ' callback_uri ' ] = $ callbackUri ;
$ _SESSION [ ' caller ' ] = " /examples/index.php " ;
$ provider = new HMRC Oauth2 Provider (
$ _GET [ ' client_id ' ],
$ _GET [ ' client_secret ' ],
$ callbackUri
);
$ scope = [ HMRC Scope Scope:: VAT_READ , HMRC Scope Scope:: HELLO , HMRC Scope Scope:: VAT_WRITE ];
$ provider -> redirectToAuthorizationURL ( $ scope );
После того, как пользователь предоставит авторизацию на странице авторизации HMRC, он будет перенаправлен обратно на $callbackUri
, который в приведенном выше примере является файлом callback.php.
Содержимое обратного вызова.php
<?php
$ provider = new HMRC Oauth2 Provider (
$ _SESSION [ ' client_id ' ],
$ _SESSION [ ' client_secret ' ],
$ _SESSION [ ' callback_uri ' ]
);
// Try to get an access token using the authorization code grant.
$ accessToken = $ provider -> getAccessToken ( ' authorization_code ' , [
' code ' => $ _GET [ ' code ' ]
]);
HMRC Oauth2 AccessToken:: set ( $ accessToken );
header ( " Location: /examples/index.php " );
exit ;
Вам нужно использовать класс HMRCOauth2AccessToken
, чтобы получить и установить токен доступа. Класс, выполняющий запрос, получит токен доступа от этого класса.
После получения токена доступа и сохранения его внутри HMRCOauth2AccessToken
мы можем начать вызывать API, ограниченный пользователем. Например, вот запрос к конечной точке пользователя hello.
<?php
$ request = new HMRC Hello HelloUserRequest ;
$ response = $ request -> fire ();
return $ response -> getBody ();
В режиме по умолчанию эта библиотека будет взаимодействовать с sandbox
средой HMRC. Если вы хотите использовать живую среду, вы можете вызвать ее через Environment
Singleton.
<?php
HMRC Environment Environment:: getInstance ()-> setToLive ();
Участник может помочь в разработке этой библиотеки, все важные методы должны иметь модульное тестирование.
Чтобы запустить тест, просто вызовите команду composer test
на терминале.