📄 unit_pubfunc.pas
字号:
if (recv_buf[recv_buf[2]+1]<>$90)OR(recv_buf[recv_buf[2]+2]<>$0) then
begin
ReturnCode.SW1:= recv_buf[recv_buf[2]+1];
ReturnCode.SW2:= recv_buf[recv_buf[2]+2];
ShowSW1SW2( ReturnCode, '增加修改透支限额密钥失败' );
Result:= -1;
end;
Result:=0;
end;
function CreatePubAppFile: SmallInt;
var
send_buf: array[0..100] of Byte;
recv_buf: array[0..100] of Byte;
ReturnValue: SmallInt;
i: integer;
begin
FillChar( send_buf, sizeof(send_buf), 0 );
FillChar( recv_buf, sizeof(send_buf), 0 );
send_buf[0]:= $00 ;
send_buf[1]:= $00 ;
send_buf[2]:= $0c ;
send_buf[3]:= $80 ;
send_buf[4]:= $e0 ;
send_buf[5]:= $02 ;
send_buf[6]:= $00 ;
send_buf[7]:= $07 ;
send_buf[8]:= $00 ;
send_buf[9]:= $15 ;
send_buf[10]:= $00 ;
send_buf[11]:= $0f ;
send_buf[12]:= $0f ;
send_buf[13]:= $00 ;
send_buf[14]:= $2e ;
send_buf[15]:= $00 ;
for i:=0 to send_buf[2]+2 do
send_buf[send_buf[2]+3]:= send_buf[i] XOR send_buf[send_buf[2]+3];
ReturnValue:= cpu_protocol( icdev, send_buf[2]+4, send_buf[0], recv_buf[0] );
if( ReturnValue<>0 ) then
begin
Result:= ReturnValue;
Exit;
end;
if (recv_buf[recv_buf[2]+1]<>$90)OR(recv_buf[recv_buf[2]+2]<>$0) then
begin
ReturnCode.SW1:= recv_buf[recv_buf[2]+1];
ReturnCode.SW2:= recv_buf[recv_buf[2]+2];
ShowSW1SW2( ReturnCode, '建立公共应用文件失败');
Result:= -1;
end;
Result:=0;
end;
function UpdatePubAppFile: SmallInt;
var
send_buf: array[0..100] of Byte;
recv_buf: array[0..100] of Byte;
ReturnValue: SmallInt;
i: integer;
begin
FillChar( send_buf, sizeof(send_buf), 0 );
FillChar( recv_buf, sizeof(send_buf), 0 );
send_buf[0]:= $00 ;
send_buf[1]:= $00 ;
send_buf[2]:= $34 ;
send_buf[3]:= $00 ;
send_buf[4]:= $d6 ;
send_buf[5]:= $00 ;
send_buf[6]:= $00 ;
send_buf[7]:= $2e ;
send_buf[8]:= $36 ;
send_buf[9]:= $38 ;
send_buf[10]:= $35 ;
send_buf[11]:= $38 ;
send_buf[12]:= $35 ;
send_buf[13]:= $30 ;
send_buf[14]:= $30 ;
send_buf[15]:= $30 ;
send_buf[16]:= $30 ;
send_buf[17]:= $30 ;
send_buf[18]:= $20 ;
send_buf[19]:= $d6 ;
send_buf[20]:= $e9 ;
send_buf[21]:= $ba ;
send_buf[22]:= $a3 ;
send_buf[23]:= $c5 ;
send_buf[24]:= $a9 ;
send_buf[25]:= $b4 ;
send_buf[26]:= $e5 ;
send_buf[27]:= $d0 ;
send_buf[28]:= $c5 ;
send_buf[29]:= $d3 ;
send_buf[30]:= $c3 ;
send_buf[31]:= $ba ;
send_buf[32]:= $cf ;
send_buf[33]:= $d7 ;
send_buf[34]:= $f7 ;
send_buf[35]:= $c9 ;
send_buf[36]:= $d7 ;
for i:=0 to send_buf[2]+2 do
send_buf[send_buf[2]+3]:= send_buf[i] XOR send_buf[send_buf[2]+3];
ReturnValue:= cpu_protocol( icdev, send_buf[2]+4, send_buf[0], recv_buf[0] );
if( ReturnValue<>0 ) then
begin
Result:= ReturnValue;
Exit;
end;
if (recv_buf[recv_buf[2]+1]<>$90)OR(recv_buf[recv_buf[2]+2]<>$0) then
begin
ReturnCode.SW1:= recv_buf[recv_buf[2]+1];
ReturnCode.SW2:= recv_buf[recv_buf[2]+2];
ShowSW1SW2( ReturnCode, '写公共应用文件失败' );
Result:= -1;
end;
Result:=0;
end;
function CreateEmpInfoFile: SmallInt;
var
send_buf: array[0..100] of Byte;
recv_buf: array[0..100] of Byte;
ReturnValue: SmallInt;
i: integer;
begin
FillChar( send_buf, sizeof(send_buf), 0 );
FillChar( recv_buf, sizeof(send_buf), 0 );
send_buf[0]:= $00 ;
send_buf[1]:= $00 ;
send_buf[2]:= $0c ;
send_buf[3]:= $80 ;
send_buf[4]:= $e0 ;
send_buf[5]:= $02 ;
send_buf[6]:= $00 ;
send_buf[7]:= $07 ;
send_buf[8]:= $00 ;
send_buf[9]:= $16 ;
send_buf[10]:= $00 ;
send_buf[11]:= $0f ;
send_buf[12]:= $0f ;
send_buf[13]:= $00 ;
send_buf[14]:= $56 ;
send_buf[15]:= $00 ;
for i:=0 to send_buf[2]+2 do
send_buf[send_buf[2]+3]:= send_buf[i] XOR send_buf[send_buf[2]+3];
ReturnValue:= cpu_protocol( icdev, send_buf[2]+4, send_buf[0], recv_buf[0] );
if( ReturnValue<>0 ) then
begin
Result:= ReturnValue;
Exit;
end;
if (recv_buf[recv_buf[2]+1]<>$90)OR(recv_buf[recv_buf[2]+2]<>$0) then
begin
ReturnCode.SW1:= recv_buf[recv_buf[2]+1];
ReturnCode.SW2:= recv_buf[recv_buf[2]+2];
ShowSW1SW2( ReturnCode, '建立客户信息文件失败' );
Result:= -1;
end;
Result:=0;
end;
function UpdateEmpInfoFile: SmallInt;
var
send_buf: array[0..100] of Byte;
recv_buf: array[0..100] of Byte;
char_buf: array[0..200] of char;
ReturnValue: SmallInt;
i: integer;
Data: String;
begin
FillChar( send_buf, sizeof(send_buf), 0 );
FillChar( recv_buf, sizeof(send_buf), 0 );
FillChar( char_buf, sizeof(char_buf), 0 );
StrPCopy( char_buf, Format('%10s %6s %-10s %1s %-20s %1s %14s %-17s',
[ EmployeeInfo.JGM, EmployeeInfo.GYH,
EmployeeInfo.XM, EmployeeInfo.ZJLX,
EmployeeInfo.ZJHM, EmployeeInfo.KZT,
EmployeeInfo.KH, EmployeeInfo.BL
]));
send_buf[0]:= $00 ;
send_buf[1]:= $00 ;
send_buf[2]:= $5+$56 ;
send_buf[3]:= $00 ;
send_buf[4]:= $d6 ;
send_buf[5]:= $00 ;
send_buf[6]:= $00 ;
send_buf[7]:= $56 ;
for i:=0 to Length(char_buf)-1 do
send_buf[8+i]:=Ord(char_buf[i]);
for i:=0 to send_buf[2]+2 do
send_buf[send_buf[2]+3]:= send_buf[i] XOR send_buf[send_buf[2]+3];
ReturnValue:= cpu_protocol( icdev, send_buf[2]+4, send_buf[0], recv_buf[0] );
if( ReturnValue<>0 ) then
begin
Result:= ReturnValue;
Exit;
end;
if (recv_buf[recv_buf[2]+1]<>$90)OR(recv_buf[recv_buf[2]+2]<>$0) then
begin
ReturnCode.SW1:= recv_buf[recv_buf[2]+1];
ReturnCode.SW2:= recv_buf[recv_buf[2]+2];
ShowSW1SW2( ReturnCode, '写员工信息文件失败' );
Result:= -1;
end;
Result:=0;
end;
//建立交易明细文件
function CreateDetailFile: SmallInt;
var
send_buf: array[0..100] of Byte;
recv_buf: array[0..100] of Byte;
ReturnValue: SmallInt;
i: integer;
begin
FillChar( send_buf, sizeof(send_buf), 0 );
FillChar( recv_buf, sizeof(send_buf), 0 );
send_buf[0]:= $00 ;
send_buf[1]:= $00 ;
send_buf[2]:= $0c ;
send_buf[3]:= $80 ;
send_buf[4]:= $e0 ;
send_buf[5]:= $02 ;
send_buf[6]:= $00 ;
send_buf[7]:= $07 ;
send_buf[8]:= $00 ;
send_buf[9]:= $18 ;
send_buf[10]:= $03 ;
send_buf[11]:= $0f ;
send_buf[12]:= $f0 ;
send_buf[13]:= $0a ;
send_buf[14]:= $17 ;
send_buf[15]:= $00 ;
for i:=0 to send_buf[2]+2 do
send_buf[send_buf[2]+3]:= send_buf[i] XOR send_buf[send_buf[2]+3];
ReturnValue:= cpu_protocol( icdev, send_buf[2]+4, send_buf[0], recv_buf[0] );
if( ReturnValue<>0 ) then
begin
Result:= ReturnValue;
Exit;
end;
if (recv_buf[recv_buf[2]+1]<>$90)OR(recv_buf[recv_buf[2]+2]<>$0) then
begin
ReturnCode.SW1:= recv_buf[recv_buf[2]+1];
ReturnCode.SW2:= recv_buf[recv_buf[2]+2];
ShowSW1SW2( ReturnCode, '增加交易明细信息文件失败');
Result:= -1;
end;
Result:=0;
end;
//建立电子钱包EP文件
function CreateEPFile: SmallInt;
var
send_buf: array[0..100] of Byte;
recv_buf: array[0..100] of Byte;
ReturnValue: SmallInt;
i: integer;
begin
FillChar( send_buf, sizeof(send_buf), 0 );
FillChar( recv_buf, sizeof(send_buf), 0 );
send_buf[0]:= $00 ;
send_buf[1]:= $00 ;
send_buf[2]:= $0c ;
send_buf[3]:= $80 ;
send_buf[4]:= $e0 ;
send_buf[5]:= $02 ;
send_buf[6]:= $00 ;
send_buf[7]:= $07 ;
send_buf[8]:= $00 ;
send_buf[9]:= $01 ;
send_buf[10]:= $06 ;
send_buf[11]:= $00 ;
send_buf[12]:= $00 ;
send_buf[13]:= $00 ;
send_buf[14]:= $00 ;
send_buf[15]:= $00 ;
for i:=0 to send_buf[2]+2 do
send_buf[send_buf[2]+3]:= send_buf[i] XOR send_buf[send_buf[2]+3];
ReturnValue:= cpu_protocol( icdev, send_buf[2]+4, send_buf[0], recv_buf[0] );
if( ReturnValue<>0 ) then
begin
Result:= ReturnValue;
Exit;
end;
if (recv_buf[recv_buf[2]+1]<>$90)OR(recv_buf[recv_buf[2]+2]<>$0) then
begin
ReturnCode.SW1:= recv_buf[recv_buf[2]+1];
ReturnCode.SW2:= recv_buf[recv_buf[2]+2];
ShowSW1SW2( ReturnCode, '增加电子钱包文件失败');
Result:= -1;
end;
Result:=0;
end;
//建立电子存折文件ED文件
function CreateEDFile: SmallInt;
var
send_buf: array[0..100] of Byte;
recv_buf: array[0..100] of Byte;
ReturnValue: SmallInt;
i: integer;
begin
FillChar( send_buf, sizeof(send_buf), 0 );
FillChar( recv_buf, sizeof(send_buf), 0 );
send_buf[0]:= $00 ;
send_buf[1]:= $00 ;
send_buf[2]:= $0c ;
send_buf[3]:= $80 ;
send_buf[4]:= $e0 ;
send_buf[5]:= $02 ;
send_buf[6]:= $00 ;
send_buf[7]:= $07 ;
send_buf[8]:= $00 ;
send_buf[9]:= $02 ; //电子存折文件标识
send_buf[10]:= $07 ; //电子存折文件类型
send_buf[11]:= $00 ;
send_buf[12]:= $00 ;
send_buf[13]:= $00 ;
send_buf[14]:= $00 ;
send_buf[15]:= $00 ;
for i:=0 to send_buf[2]+2 do
send_buf[send_buf[2]+3]:= send_buf[i] XOR send_buf[send_buf[2]+3];
ReturnValue:= cpu_protocol( icdev, send_buf[2]+4, send_buf[0], recv_buf[0] );
if( ReturnValue<>0 ) then
begin
Result:= ReturnValue;
Exit;
end;
if (recv_buf[recv_buf[2]+1]<>$90)OR(recv_buf[recv_buf[2]+2]<>$0) then
begin
ReturnCode.SW1:= recv_buf[recv_buf[2]+1];
ReturnCode.SW2:= recv_buf[recv_buf[2]+2];
ShowSW1SW2( ReturnCode, '增加电子存折文件失败');
Result:= -1;
end;
Result:=0;
end;
function CreateDFEnd: SmallInt;
var
send_buf: array[0..100] of Byte;
recv_buf: array[0..100] of Byte;
ReturnValue: SmallInt;
i: integer;
begin
FillChar( send_buf, sizeof(send_buf), 0 );
FillChar( recv_buf, sizeof(send_buf), 0 );
send_buf[0]:= $00 ;
send_buf[1]:= $00 ;
send_buf[2]:= $07 ;
send_buf[3]:= $80 ;
send_buf[4]:= $e0 ;
send_buf[5]:= $01 ;
send_buf[6]:= $01 ;
send_buf[7]:= $02 ;
//文件标识符
send_buf[8]:= $2f ;
send_buf[9]:= $01 ;
send_buf[10]:= $0 ;
for i:=0 to send_buf[2]+2 do
send_buf[send_buf[2]+3]:= send_buf[i] XOR send_buf[send_buf[2]+3];
ReturnValue:= cpu_protocol( icdev, send_buf[2]+4, send_buf[0], recv_buf[0] );
if( ReturnValue<>0 ) then
begin
Result:= ReturnValue;
Exit;
end;
if (recv_buf[recv_buf[2]+1]<>$90)OR(recv_buf[recv_buf[2]+2]<>$0) then
begin
ReturnCode.SW1:= recv_buf[recv_buf[2]+1];
ReturnCode.SW2:= recv_buf[recv_buf[2]+2];
ShowSW1SW2( ReturnCode, '完成DF失败');
Result:= -1;
end;
Result:=0;
end;
function CreateMFEnd: SmallInt;
var
send_buf: array[0..100] of Byte;
recv_buf: array[0..100] of Byte;
ReturnValue: SmallInt;
i: integer;
begin
FillChar( send_buf, sizeof(send_buf), 0 );
FillChar( recv_buf, sizeof(send_buf), 0 );
send_buf[0]:= $00 ;
send_buf[1]:= $00 ;
send_buf[2]:= $07 ;
send_buf[3]:= $80 ;
send_buf[4]:= $e0 ;
send_buf[5]:= $00 ;
send_buf[6]:= $01 ;
send_buf[7]:= $02 ;
//文件标识符
send_buf[8]:= $3f ;
send_buf[9]:= $00 ;
send_buf[10]:= $00 ;
for i:=0 to send_buf[2]+2 do
send_buf[send_buf[2]+3]:= send_buf[i] XOR send_buf[send_buf[2]+3];
ReturnValue:= cpu_protocol( icdev, send_buf[2]+4, send_buf[0], recv_buf[0] );
if( ReturnValue<>0 ) then
begin
Result:= ReturnValue;
Exit;
end;
if (recv_buf[recv_buf[2]+1]<>$90)OR(recv_buf[recv_buf[2]+2]<>$0) then
begin
ReturnCode.SW1:= recv_buf[recv_buf[2]+1];
ReturnCode.SW2:= recv_buf[recv_buf[2]+2];
ShowSW1SW2( ReturnCode, '完成MF失败');
Result:= -1;
end;
Result:=0;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -