該程式庫可用於連接 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 ();
用於應用程式限制的 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 Provider 並重定向到授權 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 ();
在預設模式下,該程式庫將與 HMRC 的sandbox
環境進行對話。如果你想使用即時環境,你可以透過Environment
單例來呼叫它。
<?php
HMRC Environment Environment:: getInstance ()-> setToLive ();
非常歡迎貢獻者幫助開發這個庫,所有重要的方法都應該有單元測試。
要執行測試,只需在終端機上呼叫composer test
命令。