이 라이브러리는 HMRC API https://developer.service.hmrc.gov.uk/api-documentation에 연결하고 작업을 수행하는 데 사용할 수 있습니다.
Hello World와 같은 전역 API의 경우 HelloWorldRequest 클래스를 사용하여 API 호출을 처리할 수 있습니다.
<?php
$ request = new HMRC Hello HelloWorldRequest ;
// Response is instant of HMRCResponse class
$ response = $ request -> fire ();
return $ response -> getBody ();
Hello Application과 같은 애플리케이션 제한 API 호출의 경우. 먼저 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 파일)로 다시 리디렉션됩니다.
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 ;
액세스 토큰을 가져오고 설정하려면 HMRCOauth2AccessToken
클래스를 사용해야 합니다. 요청을 수행하는 클래스는 이 클래스로부터 액세스 토큰을 얻습니다.
액세스 토큰을 가져와 HMRCOauth2AccessToken
내에 저장한 후 사용자 제한 API 호출을 시작할 수 있습니다. 예를 들어, 다음은 hello 사용자 엔드포인트에 대한 요청입니다.
<?php
$ request = new HMRC Hello HelloUserRequest ;
$ response = $ request -> fire ();
return $ response -> getBody ();
기본 모드에서 이 라이브러리는 HMRC의 sandbox
환경과 통신합니다. 라이브 환경을 사용하려면 Environment
싱글톤을 통해 호출할 수 있습니다.
<?php
HMRC Environment Environment:: getInstance ()-> setToLive ();
기여자는 이 라이브러리 개발에 도움을 주는 것을 환영합니다. 모든 중요한 메서드에는 단위 테스트가 있어야 합니다.
테스트를 실행하려면 터미널에서 composer test
명령을 호출하면 됩니다.