Advertisement
MarcelloGrechi

CrednetStructs

Apr 9th, 2012
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 6.98 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Runtime.InteropServices;
  6.  
  7. namespace QueryCrednet
  8. {
  9.     public static class CrednetStructs
  10.     {
  11.         [StructLayout (LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
  12.         public struct InputLayout
  13.         {
  14.             [MarshalAs (UnmanagedType.ByValArray, SizeConst = 4 )]
  15.             public char[] m_transactionCode ; // RE01
  16.  
  17.             [MarshalAs (UnmanagedType.ByValArray, SizeConst = 4)]
  18.             public char[] m_contractedTransactionCode ; // RX21
  19.  
  20.             [MarshalAs (UnmanagedType.ByValArray, SizeConst = 12)]
  21.             public char[] m_releaseCode ;  // VERSAO-02.09
  22.  
  23.             [MarshalAs (UnmanagedType.ByValArray, SizeConst = 16)]
  24.             public char[] m_accessKey ; // LOGON (08) + PASSWORD (08)
  25.  
  26.             [MarshalAs (UnmanagedType.ByValArray, SizeConst = 15)]
  27.             public char[] m_userDocument ; // DOCUMENT(9) + ZEROS(4) + DIGITS(2)
  28.  
  29.             [MarshalAs (UnmanagedType.ByValArray, SizeConst = 6)]
  30.             public char[] m_stationCode ;
  31.  
  32.             [MarshalAs (UnmanagedType.ByValArray, SizeConst = 1)]
  33.             public char[] m_accessMethod ; // 1 = String de dados, 2 = HOST to HOST
  34.  
  35.             [MarshalAs (UnmanagedType.ByValArray, SizeConst = 4)]
  36.             public char[] m_callingMethod ; // Fill only if accessMethod = 2
  37.  
  38.             [MarshalAs (UnmanagedType.ByValArray, SizeConst = 30)]
  39.             public char[] m_reservedArea ; // Area reserved for Serasa use
  40.  
  41.             [MarshalAs (UnmanagedType.ByValArray, SizeConst = 1)]
  42.             public char[] m_documentType ; // F = Fisica , J = Juridica
  43.  
  44.             [MarshalAs (UnmanagedType.ByValArray, SizeConst = 15)]
  45.             public char[] m_documentToQuery ;
  46.  
  47.             [MarshalAs (UnmanagedType.ByValArray, SizeConst = 2)]
  48.             public char[] m_queryOptions; // CH, PP or PR
  49.  
  50.             [MarshalAs (UnmanagedType.ByValArray, SizeConst = 1)]
  51.             public char[] m_dataIdentification; // 0 , 1 ou 2
  52.  
  53.             [MarshalAs (UnmanagedType.ByValArray, SizeConst = 3)]
  54.             public char[] m_bankCode;
  55.  
  56.             [MarshalAs (UnmanagedType.ByValArray, SizeConst = 4)]
  57.             public char[] m_agencyNumber ;
  58.  
  59.             [MarshalAs (UnmanagedType.ByValArray, SizeConst = 15)]
  60.             public char[] m_accountNumber ;
  61.  
  62.             [MarshalAs (UnmanagedType.ByValArray, SizeConst = 6)]
  63.             public char[] m_initialCheckNumber;
  64.  
  65.             [MarshalAs (UnmanagedType.ByValArray, SizeConst = 1)]
  66.             public char[] m_initialCheckDigit;
  67.  
  68.             [MarshalAs (UnmanagedType.ByValArray, SizeConst = 6)]
  69.             public char[] m_finalCheckNumber;
  70.  
  71.             [MarshalAs (UnmanagedType.ByValArray, SizeConst = 1)]
  72.             public char[] m_finalCheckDigit;
  73.  
  74.             [MarshalAs (UnmanagedType.ByValArray, SizeConst = 30)]
  75.             public char[] m_initialCMC7 ;
  76.  
  77.             [MarshalAs (UnmanagedType.ByValArray, SizeConst = 30)]
  78.             public char[] m_finalCMC7;
  79.  
  80.             [MarshalAs (UnmanagedType.ByValArray, SizeConst = 15)]
  81.             public char[] m_checkValue;
  82.  
  83.             [MarshalAs (UnmanagedType.ByValArray, SizeConst = 8)]
  84.             public char[] m_endingDate;
  85.  
  86.             [MarshalAs (UnmanagedType.ByValArray, SizeConst = 4)]
  87.             public char[] m_DDDNumber ;
  88.  
  89.             [MarshalAs (UnmanagedType.ByValArray, SizeConst = 8)]
  90.             public char[] m_phoneNumber;
  91.  
  92.             [MarshalAs (UnmanagedType.ByValArray, SizeConst = 9)]
  93.             public char[] m_CEP;
  94.  
  95.             [MarshalAs (UnmanagedType.ByValArray, SizeConst = 2)]
  96.             public char[] m_UF;
  97.  
  98.             [MarshalAs (UnmanagedType.ByValArray, SizeConst = 46)]
  99.             public char[] m_reservedForExpansion;
  100.  
  101.             [MarshalAs (UnmanagedType.ByValArray, SizeConst = 1)]
  102.             public char[] m_headerEnding ;
  103.  
  104.  
  105.             public InputLayout (string logon, string password,string docNumber,string docType = "F")
  106.             {
  107.                 m_transactionCode           = "RE01".ToCharArray();
  108.                 m_contractedTransactionCode = "RX21".ToCharArray ();
  109.                 m_releaseCode               = "VERSAO-02.09".ToCharArray ();
  110.                 m_accessKey                 = "9378863723022012".ToCharArray ();
  111.                 m_userDocument              = "107530217000006".ToCharArray (); // My CPF
  112.                 m_stationCode               = new String (' ',6).ToCharArray ();  
  113.                 m_accessMethod              = "1".ToCharArray ();
  114.                 m_callingMethod             = new String (' ', 4).ToCharArray ();
  115.                 m_reservedArea              = new String (' ', 30).ToCharArray ();
  116.                 m_documentType              = "F".ToCharArray ();
  117.                 m_documentToQuery           = "000010753021706".ToCharArray ();
  118.                 m_queryOptions              = "PP".ToCharArray ();
  119.                 m_dataIdentification        = "0".ToCharArray ();
  120.                 m_bankCode                  = new String (' ', 3).ToCharArray ();
  121.                 m_agencyNumber              = new String (' ', 4).ToCharArray ();
  122.                 m_accountNumber             = new String (' ', 15).ToCharArray ();
  123.                 m_initialCheckNumber        = new String (' ', 6).ToCharArray ();
  124.                 m_initialCheckDigit         = new String (' ', 1).ToCharArray ();
  125.                 m_finalCheckNumber          = new String (' ', 6).ToCharArray ();
  126.                 m_finalCheckDigit           = new String (' ', 1).ToCharArray ();
  127.                 m_initialCMC7               = new String (' ', 30).ToCharArray ();
  128.                 m_finalCMC7                 = new String (' ', 30).ToCharArray ();
  129.                 m_checkValue                = new String (' ', 15).ToCharArray ();
  130.                 m_endingDate                = new String (' ', 8).ToCharArray ();
  131.                 m_DDDNumber                 = new String (' ', 4).ToCharArray ();
  132.                 m_phoneNumber               = new String (' ', 8).ToCharArray ();
  133.                 m_CEP                       = new String (' ', 9).ToCharArray ();
  134.                 m_UF                        = new String (' ', 2).ToCharArray ();
  135.                 m_reservedForExpansion      = new String (' ', 46).ToCharArray ();
  136.                 m_headerEnding              = new String (' ', 1).ToCharArray ();
  137.  
  138.             }
  139.         }
  140.  
  141.  
  142.         public static string StructureToString (Object bodyMessage)
  143.         {
  144.             byte[] bodyBuffer ;
  145.             bodyBuffer = new byte[Marshal.SizeOf(bodyMessage)];
  146.  
  147.             GCHandle handle = GCHandle.Alloc(bodyBuffer, GCHandleType.Pinned);
  148.             try
  149.             {
  150.                 Marshal.StructureToPtr(bodyMessage, handle.AddrOfPinnedObject(), false);
  151.  
  152.                 return Encoding.ASCII.GetString (bodyBuffer, 0, bodyBuffer.Length);
  153.             }
  154.             finally
  155.             {
  156.                 handle.Free();
  157.             }
  158.         }
  159.  
  160.     }
  161. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement