Ejemplo de uso del handle PIX, que encapsula la conexión HTTP persistente y el material TLS, con las operaciones HTTP POST, PUT, GET y DELETE según el estándar PIX definido en el SPI (Sistema de Pagos Instantáneos).
using System;
using System.Text;
namespace PIXHandleRequest
{
class Program
{
private static String strAddr = "127.0.0.1";
private static String strUsrId = "master";
private static String strPwd = "12345678";
static void Main(string[] args)
{
String strKey = "key";
String strKeyCert = "key_cert";
String strPIXChain = "pix_chain";
String strUrl = "https://127.0.0.1:8000";
String[] pstrHeaderContents = { "Content-Type: application/xml; charset=utf-8" };
byte[] pbRequestData = Encoding.ASCII.GetBytes(
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?><xml>teste</xml>");
try
{
DinamoPixHttpSession.CacheMaxHandles = 8;
DinamoPixHttpSession.CacheIdleTtlSeconds = 300;
using (DinamoPixHttpSession session = new DinamoPixHttpSession(strAddr,
strUsrId,
strPwd,
strKey,
strKeyCert,
strPIXChain))
{
PIXHttpResponse response = session.Post(strUrl, pstrHeaderContents, pbRequestData, 30000, 0);
Console.Out.WriteLine("POST HTTP " + response.HttpCode + ", " + response.Body.Length + " bytes de corpo.");
response = session.Put(strUrl, pstrHeaderContents, pbRequestData, 30000, 0);
Console.Out.WriteLine("PUT HTTP " + response.HttpCode + ", " + response.Body.Length + " bytes de corpo.");
response = session.Get(strUrl, pstrHeaderContents, 30000, 0);
Console.Out.WriteLine("GET HTTP " + response.HttpCode + ", " + response.Body.Length + " bytes de corpo.");
response = session.Delete(strUrl, pstrHeaderContents, 30000, 0);
Console.Out.WriteLine("DELETE HTTP " + response.HttpCode + ", " + response.Body.Length + " bytes de corpo.");
PIXRequestDetails details = session.GetRequestDetails();
Console.Out.WriteLine("Tempo total: " + details.TotalTime + " ms.");
PIXHandleStats stats = session.GetStats();
Console.Out.WriteLine("Conexões TLS novas: " + stats.SslHookCount);
Console.Out.WriteLine("Assinaturas no HSM: " + stats.HsmSignCount);
Console.Out.WriteLine("Retomadas de sessão TLS: " + (stats.SslHookCount - stats.HsmSignCount));
}
PIXCacheStats cacheStats = DinamoPixHttpSession.GetCacheStats();
Console.Out.WriteLine("Conexões no cache: " + cacheStats.HandlesLive);
Console.Out.WriteLine("Pico de conexões no cache: " + cacheStats.HandlesHighWater);
DinamoPixHttpSession.ClearCache();
}
{
}
}
}
}
Classe de Excecao para erros do Dinamo.
Definição DinamoException.cs:10
override string Message
Definição DinamoException.cs:42
int ErrorCode
Definição DinamoException.cs:26
Namespace que denota um conjunto de funções para acesso ao HSM Dinamo e suas respectivas exceptions.
Definição DinamoClient.cs:12