Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Runtime.InteropServices;
- namespace QueryCrednet
- {
- public static class CrednetStructs
- {
- [StructLayout (LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
- public struct InputLayout
- {
- [MarshalAs (UnmanagedType.ByValArray, SizeConst = 4 )]
- public char[] m_transactionCode ; // RE01
- [MarshalAs (UnmanagedType.ByValArray, SizeConst = 4)]
- public char[] m_contractedTransactionCode ; // RX21
- [MarshalAs (UnmanagedType.ByValArray, SizeConst = 12)]
- public char[] m_releaseCode ; // VERSAO-02.09
- [MarshalAs (UnmanagedType.ByValArray, SizeConst = 16)]
- public char[] m_accessKey ; // LOGON (08) + PASSWORD (08)
- [MarshalAs (UnmanagedType.ByValArray, SizeConst = 15)]
- public char[] m_userDocument ; // DOCUMENT(9) + ZEROS(4) + DIGITS(2)
- [MarshalAs (UnmanagedType.ByValArray, SizeConst = 6)]
- public char[] m_stationCode ;
- [MarshalAs (UnmanagedType.ByValArray, SizeConst = 1)]
- public char[] m_accessMethod ; // 1 = String de dados, 2 = HOST to HOST
- [MarshalAs (UnmanagedType.ByValArray, SizeConst = 4)]
- public char[] m_callingMethod ; // Fill only if accessMethod = 2
- [MarshalAs (UnmanagedType.ByValArray, SizeConst = 30)]
- public char[] m_reservedArea ; // Area reserved for Serasa use
- [MarshalAs (UnmanagedType.ByValArray, SizeConst = 1)]
- public char[] m_documentType ; // F = Fisica , J = Juridica
- [MarshalAs (UnmanagedType.ByValArray, SizeConst = 15)]
- public char[] m_documentToQuery ;
- [MarshalAs (UnmanagedType.ByValArray, SizeConst = 2)]
- public char[] m_queryOptions; // CH, PP or PR
- [MarshalAs (UnmanagedType.ByValArray, SizeConst = 1)]
- public char[] m_dataIdentification; // 0 , 1 ou 2
- [MarshalAs (UnmanagedType.ByValArray, SizeConst = 3)]
- public char[] m_bankCode;
- [MarshalAs (UnmanagedType.ByValArray, SizeConst = 4)]
- public char[] m_agencyNumber ;
- [MarshalAs (UnmanagedType.ByValArray, SizeConst = 15)]
- public char[] m_accountNumber ;
- [MarshalAs (UnmanagedType.ByValArray, SizeConst = 6)]
- public char[] m_initialCheckNumber;
- [MarshalAs (UnmanagedType.ByValArray, SizeConst = 1)]
- public char[] m_initialCheckDigit;
- [MarshalAs (UnmanagedType.ByValArray, SizeConst = 6)]
- public char[] m_finalCheckNumber;
- [MarshalAs (UnmanagedType.ByValArray, SizeConst = 1)]
- public char[] m_finalCheckDigit;
- [MarshalAs (UnmanagedType.ByValArray, SizeConst = 30)]
- public char[] m_initialCMC7 ;
- [MarshalAs (UnmanagedType.ByValArray, SizeConst = 30)]
- public char[] m_finalCMC7;
- [MarshalAs (UnmanagedType.ByValArray, SizeConst = 15)]
- public char[] m_checkValue;
- [MarshalAs (UnmanagedType.ByValArray, SizeConst = 8)]
- public char[] m_endingDate;
- [MarshalAs (UnmanagedType.ByValArray, SizeConst = 4)]
- public char[] m_DDDNumber ;
- [MarshalAs (UnmanagedType.ByValArray, SizeConst = 8)]
- public char[] m_phoneNumber;
- [MarshalAs (UnmanagedType.ByValArray, SizeConst = 9)]
- public char[] m_CEP;
- [MarshalAs (UnmanagedType.ByValArray, SizeConst = 2)]
- public char[] m_UF;
- [MarshalAs (UnmanagedType.ByValArray, SizeConst = 46)]
- public char[] m_reservedForExpansion;
- [MarshalAs (UnmanagedType.ByValArray, SizeConst = 1)]
- public char[] m_headerEnding ;
- public InputLayout (string logon, string password,string docNumber,string docType = "F")
- {
- m_transactionCode = "RE01".ToCharArray();
- m_contractedTransactionCode = "RX21".ToCharArray ();
- m_releaseCode = "VERSAO-02.09".ToCharArray ();
- m_accessKey = "9378863723022012".ToCharArray ();
- m_userDocument = "107530217000006".ToCharArray (); // My CPF
- m_stationCode = new String (' ',6).ToCharArray ();
- m_accessMethod = "1".ToCharArray ();
- m_callingMethod = new String (' ', 4).ToCharArray ();
- m_reservedArea = new String (' ', 30).ToCharArray ();
- m_documentType = "F".ToCharArray ();
- m_documentToQuery = "000010753021706".ToCharArray ();
- m_queryOptions = "PP".ToCharArray ();
- m_dataIdentification = "0".ToCharArray ();
- m_bankCode = new String (' ', 3).ToCharArray ();
- m_agencyNumber = new String (' ', 4).ToCharArray ();
- m_accountNumber = new String (' ', 15).ToCharArray ();
- m_initialCheckNumber = new String (' ', 6).ToCharArray ();
- m_initialCheckDigit = new String (' ', 1).ToCharArray ();
- m_finalCheckNumber = new String (' ', 6).ToCharArray ();
- m_finalCheckDigit = new String (' ', 1).ToCharArray ();
- m_initialCMC7 = new String (' ', 30).ToCharArray ();
- m_finalCMC7 = new String (' ', 30).ToCharArray ();
- m_checkValue = new String (' ', 15).ToCharArray ();
- m_endingDate = new String (' ', 8).ToCharArray ();
- m_DDDNumber = new String (' ', 4).ToCharArray ();
- m_phoneNumber = new String (' ', 8).ToCharArray ();
- m_CEP = new String (' ', 9).ToCharArray ();
- m_UF = new String (' ', 2).ToCharArray ();
- m_reservedForExpansion = new String (' ', 46).ToCharArray ();
- m_headerEnding = new String (' ', 1).ToCharArray ();
- }
- }
- public static string StructureToString (Object bodyMessage)
- {
- byte[] bodyBuffer ;
- bodyBuffer = new byte[Marshal.SizeOf(bodyMessage)];
- GCHandle handle = GCHandle.Alloc(bodyBuffer, GCHandleType.Pinned);
- try
- {
- Marshal.StructureToPtr(bodyMessage, handle.AddrOfPinnedObject(), false);
- return Encoding.ASCII.GetString (bodyBuffer, 0, bodyBuffer.Length);
- }
- finally
- {
- handle.Free();
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement