public async Task <string> GetEncryptedCredentialsAsync()
        {
            var credentials = await credentialResolver.GetCredentialsAsync();

            var plainText    = $"{credentials.ConsumerKey}:{credentials.ConsumerSecret}";
            var bytes        = Encoding.UTF8.GetBytes(plainText);
            var base64String = Convert.ToBase64String(bytes);

            return(base64String);
        }
        public async Task PushToPhoneAsync(Transaction transaction)
        {
            var credentials = await credentialResolver.GetCredentialsAsync();

            var lipaNaMpesaOnline = new LipaNaMpesaOnline
            {
                BusinessShortCode = transaction.BusinessShortCode.ToString(),
                Amount            = transaction.Amount.ToString(),
                PhoneNumber       = transaction.RequesterPhoneNumber.ToString(),
                CallBackURL       = mPesaSettings.StkCallBackUrl,
                AccountReference  = string.IsNullOrEmpty(transaction.AccountReference) ? "NA" : transaction.AccountReference,
                TransactionDesc   = string.IsNullOrEmpty(transaction.Description) ? "NA" : transaction.Description,
                Passkey           = credentials.PassKey,
                TransactionType   = transaction.TransactionType
            };


            var response = await tokenizedApiCaller.CallEndpoint <GenericResponse>(
                relativePath : "mpesa/stkpush/v1/processrequest",
                HttpMethod.Post,
                lipaNaMpesaOnline
                );
        }