Unicode C
Unicode C
Check PayPal Access Token Expiration
See more PayPal Examples
Checks to see if the PayPal access token expired.Chilkat Unicode C Downloads
#include <C_CkJsonObjectW.h>
#include <C_CkDateTimeW.h>
void ChilkatSample(void)
{
BOOL success;
HCkJsonObjectW json;
HCkDateTimeW dateTime;
BOOL bLocalTime;
int dtNow;
int dtCreate;
int numSeconds;
int expires_in;
success = FALSE;
// Note: Requires Chilkat v9.5.0.64 or greater.
// This requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
// In the example linked here: PayPal OAuth2 Token,
// we fetched a PayPal access token and saved it to a JSON file.
// We also recorded the current date/time.
// Load this JSON file and compare the current date/time with the fetch date/time
// and the "expires_in" value to see if the token is expired.
json = CkJsonObjectW_Create();
success = CkJsonObjectW_LoadFile(json,L"qa_data/tokens/paypal.json");
if (success != TRUE) {
wprintf(L"Failed to load access key json file.\n");
CkJsonObjectW_Dispose(json);
return;
}
// Get the current date/time.
dateTime = CkDateTimeW_Create();
bLocalTime = FALSE;
dtNow = CkDateTimeW_GetAsUnixTime(dateTime,bLocalTime);
// Get the access token create date/time
dtCreate = CkJsonObjectW_IntOf(json,L"tokenCreateTimeUtc");
// Find out how many seconds have elapsed.
numSeconds = dtNow - dtCreate;
// Get the expires_in value from the JSON.
expires_in = CkJsonObjectW_IntOf(json,L"expires_in");
wprintf(L"token age (in seconds) = %d\n",numSeconds);
wprintf(L"expires_in = %d\n",expires_in);
// If the token expired, or if it will expire in 5 minutes or less,
// get another token.
if (numSeconds < (expires_in - 300)) {
wprintf(L"The token is not yet expired. No need to fetch another.\n");
CkJsonObjectW_Dispose(json);
CkDateTimeW_Dispose(dateTime);
return;
}
wprintf(L"Time to fetch a new access token...\n");
// Get another token..
// See the example at Get PayPal OAuth2 Token
// to get another token..
CkJsonObjectW_Dispose(json);
CkDateTimeW_Dispose(dateTime);
}