Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 16 additions & 7 deletions UPS_PHP_AuthCode_Sdk/src/AuthCodeService.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
class AuthCodeService
{
private $httpClient;

public function __construct($httpClient)
{
$this->httpClient = $httpClient;
Expand All @@ -33,7 +34,8 @@ public function login($queryParams = null)
}
}

public function get_access_token($client_id, $client_secret, $redirect_uri, $auth_code) {
public function get_access_token($client_id, $client_secret, $redirect_uri, $auth_code)
{
try {
$body = array(
"grant_type" => "authorization_code",
Expand All @@ -47,7 +49,8 @@ public function get_access_token($client_id, $client_secret, $redirect_uri, $aut
}
}

public function post_for_token_info($url, $body, $clientId, $clientSecret) {
public function post_for_token_info($url, $body, $clientId, $clientSecret)
{
try {
$httpHeaders = array(
"Content-Type: application/x-www-form-urlencoded",
Expand All @@ -67,7 +70,8 @@ public function post_for_token_info($url, $body, $clientId, $clientSecret) {
}
}

public function get_access_token_from_refresh_token($client_id, $client_secret, $refresh_token) {
public function get_access_token_from_refresh_token($client_id, $client_secret, $refresh_token)
{
try {
$body = array(
"grant_type" => "refresh_token",
Expand All @@ -79,7 +83,9 @@ public function get_access_token_from_refresh_token($client_id, $client_secret,
return $this->api_error_response(AuthCodeConstants::INTERNAL_SERVER_ERROR);
}
}
public function build_url_with_query_params($base_url, $query_params) {

public function build_url_with_query_params($base_url, $query_params)
{
if ($query_params == null) {
return $base_url;
}
Expand Down Expand Up @@ -109,7 +115,8 @@ public function api_response($response)
return api_error_response($response);
}

public function api_error_response($json_data) {
public function api_error_response($json_data)
{
$error_response = json_decode(str_replace("'", '"', $json_data));
//checking error object format
if(isset($error_response->response->errors)){
Expand All @@ -123,12 +130,14 @@ public function api_error_response($json_data) {
return (new UpsOauthResponse(null, $api_error_info))->to_dict();
}

public function login_response($redirect_uri) {
public function login_response($redirect_uri)
{
$login_info = new LoginInfo($redirect_uri);
return (new UpsOauthResponse($login_info->to_dict(), null))->to_dict();
}

public function login_error_response($json_data) {
public function login_error_response($json_data)
{
$error_response = json_decode($json_data);
$login_error_info = new ErrorModel(
$error_response->response->errors[0]->code,
Expand Down
6 changes: 4 additions & 2 deletions UPS_PHP_AuthCode_Sdk/src/HttpClient.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,10 @@
namespace UpsPhpAuthCodeSdk;
require_once 'AuthCodeConstants.php';

class HttpClient {
public function post($url, $headers, $postFields, $requestType) {
class HttpClient
{
public function post($url, $headers, $postFields, $requestType)
{
$ch = curl_init();
if($requestType == 'GET'){
curl_setopt($ch, CURLOPT_URL, $url);
Expand Down
8 changes: 6 additions & 2 deletions UPS_PHP_AuthCode_Sdk/src/TokenInfo.php
Original file line number Diff line number Diff line change
Expand Up @@ -28,13 +28,17 @@ public function to_dict() {
}
}

class LoginInfo {
class LoginInfo
{
public $redirect_uri;

public function __construct($redirect_uri)
{
$this->redirect_uri = $redirect_uri;
}
public function to_dict() {

public function to_dict()
{
return array(
"redirect_uri" => $this->redirect_uri
);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
<?php
namespace UpsPhpClientCredentialSdk;
class ClientCredentialConstants {

class ClientCredentialConstants
{
const BASE_URL = "https://onlinetools.ups.com/security/v1/oauth/token";
const TIMED_OUT = '{"response":{"errors":[{"code":"10500","message":"Request Timed out."}]}}';
const INTERNAL_SERVER_ERROR = '{"response":{"errors":[{"code":"10500","message":"Unable to redirect: Response or RequestUri is null."}]}}';
Expand Down
91 changes: 46 additions & 45 deletions UPS_PHP_ClientCredential_Sdk/src/ClientCredentialService.php
Original file line number Diff line number Diff line change
Expand Up @@ -21,34 +21,34 @@ public function __construct($httpClient)
}

public function getAccessToken($clientId, $clientSecret, $headers, $customClaims)
{
try {
$url = $this->jwtTokenUrlGlobal;
{
try {
$url = $this->jwtTokenUrlGlobal;

$postFields = $this->buildPostFormData($customClaims);
$authorization = "Basic " . base64_encode("$clientId:$clientSecret");
$postFields = $this->buildPostFormData($customClaims);
$authorization = "Basic " . base64_encode("$clientId:$clientSecret");

$options = [
"Content-Type: application/x-www-form-urlencoded",
"Authorization: $authorization"
];
$options = [
"Content-Type: application/x-www-form-urlencoded",
"Authorization: $authorization"
];

$response = $this->httpClient->post($url, array_merge($options, $this->convertHeadersToArray($headers)), $postFields);
$response = $this->httpClient->post($url, array_merge($options, $this->convertHeadersToArray($headers)), $postFields);

error_log("HTTP response: " . print_r($response, true));
error_log("HTTP response: " . print_r($response, true));

if ($response['status_code'] == 200) {
return $this->apiResponse($response['response']);
} else {
return $this->apiErrorResponse($response['response']);
}
} catch (\Exception $ex) {
if ($ex instanceof \Exception) {
return $this->apiErrorResponse(ClientCredentialConstants::TimedOut);
if ($response['status_code'] == 200) {
return $this->apiResponse($response['response']);
} else {
return $this->apiErrorResponse($response['response']);
}
} catch (\Exception $ex) {
if ($ex instanceof \Exception) {
return $this->apiErrorResponse(ClientCredentialConstants::TimedOut);
}
return $this->apiErrorResponse(ClientCredentialConstants::InternalServerError);
}
return $this->apiErrorResponse(ClientCredentialConstants::InternalServerError);
}
}

private function buildPostFormData($customClaims)
{
Expand Down Expand Up @@ -82,36 +82,37 @@ public function apiResponse($response)


public function apiErrorResponse($jsonData)
{
$responseStr = $jsonData;
$errorResponse = json_decode(str_replace("'", '"', $responseStr), true);

error_log("Parsed error response: " . print_r($errorResponse, true));

$errorResponseObj = new ErrorResponse();

if (is_array($errorResponse)) {
if (isset($errorResponse['errors'])) {
foreach ($errorResponse['errors'] as $error) {
if (isset($error['code']) && isset($error['message'])) {
$errorResponseObj->addErrorMessage($error['code'], $error['message']);
} else {

error_log("Error entry missing code or message: " . print_r($error, true));
{
$responseStr = $jsonData;
$errorResponse = json_decode(str_replace("'", '"', $responseStr), true);

error_log("Parsed error response: " . print_r($errorResponse, true));

$errorResponseObj = new ErrorResponse();

if (is_array($errorResponse)) {
if (isset($errorResponse['errors'])) {
foreach ($errorResponse['errors'] as $error) {
if (isset($error['code']) && isset($error['message'])) {
$errorResponseObj->addErrorMessage($error['code'], $error['message']);
} else {

error_log("Error entry missing code or message: " . print_r($error, true));
}
}
} else {
$errorResponseObj->addErrorMessage('Unknown', '' . json_encode($errorResponse));
}
} else {
$errorResponseObj->addErrorMessage('Unknown', '' . json_encode($errorResponse));
error_log("Error response is not an array: " . print_r($errorResponse, true));
$errorResponseObj->addErrorMessage('Unknown', 'Error response is not an array');
}
} else {
error_log("Error response is not an array: " . print_r($errorResponse, true));
$errorResponseObj->addErrorMessage('Unknown', 'Error response is not an array');
}

error_log("Populated ErrorResponse: " . print_r($errorResponseObj->to_dict(), true));
error_log("Populated ErrorResponse: " . print_r($errorResponseObj->to_dict(), true));

return new UPSOauthResponse(null, $errorResponseObj);
}
return new UPSOauthResponse(null, $errorResponseObj);
}

private function convertHeadersToArray($headers)
{
$headerArray = [];
Expand Down
3 changes: 2 additions & 1 deletion UPS_PHP_ClientCredential_Sdk/src/HttpClient.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@ class HttpClient
{
private $timeout;

public function __construct($timeout = 15) {
public function __construct($timeout = 15)
{
$this->timeout = $timeout;
}

Expand Down
39 changes: 26 additions & 13 deletions UPS_PHP_ClientCredential_Sdk/src/TokenInfo.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,55 +11,68 @@ class TokenInfo {

// Getters and Setters

public function getIssuedAt() {
public function getIssuedAt()
{
return $this->issued_at;
}

public function setIssuedAt($issued_at) {
public function setIssuedAt($issued_at)
{
$this->issued_at = $issued_at;
}

public function getTokenType() {
public function getTokenType()
{
return $this->token_type;
}

public function setTokenType($token_type) {
public function setTokenType($token_type)
{
$this->token_type = $token_type;
}

public function getClientId() {
public function getClientId()
{
return $this->client_id;
}

public function setClientId($client_id) {
public function setClientId($client_id)
{
$this->client_id = $client_id;
}

public function getAccessToken() {
public function getAccessToken()
{
return $this->access_token;
}

public function setAccessToken($access_token) {
public function setAccessToken($access_token)
{
$this->access_token = $access_token;
}

public function getExpiresIn() {
public function getExpiresIn()
{
return $this->expires_in;
}

public function setExpiresIn($expires_in) {
public function setExpiresIn($expires_in)
{
$this->expires_in = $expires_in;
}

public function getStatus() {
public function getStatus()
{
return $this->status;
}

public function setStatus($status) {
public function setStatus($status)
{
$this->status = $status;
}

public function to_dict() {
public function to_dict()
{
return array(
"issued_at" => $this->getIssuedAt(),
"token_type" => $this->getTokenType(),
Expand Down
1 change: 1 addition & 0 deletions UPS_PHP_ClientCredential_Sdk/src/UPSOauthResponse.php
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ public function addErrorMessage($code, $message)
$error->setMessage($message);
$this->errors[] = $error;
}

public function to_dict()
{
$errorsArray = [];
Expand Down