CustomSecurityHeaderType GetCustomSecurityHeader(IPaymentGatewaySettings settings)
 {
     CustomSecurityHeaderType result = new CustomSecurityHeaderType();
     result.Credentials.Username = settings.Username;
     result.Credentials.Password = settings.Password;
     result.Credentials.Signature = Properties.PayPalExpress.Default.Signature;
     result.Credentials.Subject = String.Empty;
     return result;
 }
 PayPalAPIAAInterfaceClient GetPayPalAAInterfaceClient(IPaymentGatewaySettings settings)
 {
     PayPalAPIAAInterfaceClient result;
     if (settings.TestMode)
         result = new PayPalAPIAAInterfaceClient("PayPalAPIAASandbox");
     else
         result = new PayPalAPIAAInterfaceClient("PayPalAPIAA");
     return result;
 }
 GetExpressCheckoutDetailsResponseType GetExpressCheckoutDetailsRequest(IPaymentGatewaySettings settings, string token)
 {
     GetExpressCheckoutDetailsReq req = new GetExpressCheckoutDetailsReq();
     GetExpressCheckoutDetailsResponseType result = null;
     var request = new GetExpressCheckoutDetailsRequestType();
     req.GetExpressCheckoutDetailsRequest = request;
     request.Token = token;
     request.Version = API_VERSION;
     var service = GetPayPalAAInterfaceClient(settings);
     CustomSecurityHeaderType customSecurityHeader = new CustomSecurityHeaderType();
     GetExpressCheckoutDetailsResponseType response = service.GetExpressCheckoutDetails(ref customSecurityHeader, req);
     result = response;
     return response;
 }