Esta biblioteca pode ser usada para conectar e realizar operações na API HMRC https://developer.service.hmrc.gov.uk/api-documentation.
Para APIs globais como Hello World, você pode usar a classe HelloWorldRequest para lidar com a chamada da API.
<?php
$ request = new HMRC Hello HelloWorldRequest ;
// Response is instant of HMRCResponse class
$ response = $ request -> fire ();
return $ response -> getBody ();Para chamadas de API restritas ao aplicativo, como Hello Application. Primeiro defina o token do servidor usando a classe ServerToken e então você pode usar a classe HelloApplicationRequest para chamar a 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 ();Para chamadas de API restritas ao usuário, consulte a próxima seção.
A maneira mais fácil de aprender sobre isso é executando o servidor local usando o comando php -S localhost:8080 na raiz desta biblioteca. E então navegue até http://localhost:8080/examples/index.php no seu navegador. Não se esqueça de configurar as credenciais dentro do arquivo samples/config.php.
<?php
$ clientId = ' clientid ' ;
$ clientSecret = ' clientsecret ' ;
$ serverToken = ' servertoken ' ;Você pode obter o token de acesso criando o provedor HMRC Oauth2 e redirecionando para autorizar o URL (veja example/oauth2/create-access-token.php por exemplo).
<?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 ); Após a autorização do usuário na página de autorização do HMRC, ele será redirecionado de volta para $callbackUri , que no exemplo acima, o arquivo callback.php.
Conteúdo de callback.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 ; Você precisa usar a classe HMRCOauth2AccessToken para obter e definir o token de acesso. A classe que fizer a solicitação obterá o token de acesso desta classe.
Depois de obter o token de acesso e salvá-lo dentro de HMRCOauth2AccessToken , podemos começar a chamar a API restrita ao usuário. Por exemplo, aqui está a solicitação para cumprimentar o endpoint do usuário.
<?php
$ request = new HMRC Hello HelloUserRequest ;
$ response = $ request -> fire ();
return $ response -> getBody (); No modo padrão, esta biblioteca se comunicará com o ambiente sandbox do HMRC. Se você quiser usar o ambiente ativo, poderá chamá-lo por meio Environment singleton.
<?php
HMRC Environment Environment:: getInstance ()-> setToLive ();O contribuidor é mais que bem-vindo para ajudar a desenvolver esta biblioteca, todos os métodos importantes devem ter teste de unidade.
Para executar o teste, basta chamar o comando composer test no terminal.