Esta biblioteca se puede utilizar para conectarse y realizar operaciones en la API de HMRC https://developer.service.hmrc.gov.uk/api-documentation.
Para API globales como Hello World, puede usar la clase HelloWorldRequest para manejar la llamada API.
<?php
$ request = new HMRC Hello HelloWorldRequest ;
// Response is instant of HMRCResponse class
$ response = $ request -> fire ();
return $ response -> getBody ();
Para llamadas API restringidas a aplicaciones, como Hello Application. Primero configure el token del servidor usando la clase ServerToken y luego puede usar la clase HelloApplicationRequest para llamar a la 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 llamadas API restringidas por usuarios, consulte la siguiente sección.
La forma más sencilla de aprender sobre esto es ejecutando el servidor local usando el comando php -S localhost:8080
en la raíz de esta biblioteca. Y luego navegue hasta http://localhost:8080/examples/index.php en su navegador. No olvide configurar las credenciales dentro del archivo ejemplos/config.php.
<?php
$ clientId = ' clientid ' ;
$ clientSecret = ' clientsecret ' ;
$ serverToken = ' servertoken ' ;
Puede obtener el token de acceso creando el proveedor HMRC Oauth2 y redireccionándolo a la URL autorizada (consulte ejemplo/oauth2/create-access-token.php, por ejemplo).
<?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 );
Después de que el usuario conceda la autorización en la página de autorización de HMRC, se redirigirá nuevamente a $callbackUri
, que en el ejemplo anterior, es el archivo callback.php.
Contenido 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 ;
Debe utilizar la clase HMRCOauth2AccessToken
para obtener y configurar el token de acceso. La clase que realiza la solicitud obtendrá el token de acceso de esta clase.
Después de obtener el token de acceso y guardarlo dentro de HMRCOauth2AccessToken
, podemos comenzar a llamar a la API restringida por usuarios. Por ejemplo, aquí está la solicitud para saludar al punto final del usuario.
<?php
$ request = new HMRC Hello HelloUserRequest ;
$ response = $ request -> fire ();
return $ response -> getBody ();
En el modo predeterminado, esta biblioteca se comunicará con el entorno sandbox
de HMRC. Si desea utilizar un entorno en vivo, puede llamarlo a través de Environment
singleton.
<?php
HMRC Environment Environment:: getInstance ()-> setToLive ();
Los contribuyentes son más que bienvenidos para ayudar a desarrollar esta biblioteca; todos los métodos importantes deben tener pruebas unitarias.
Para ejecutar la prueba, simplemente llame al comando composer test
en la terminal.