clear
reset
auto_response on
prompt on
load_script "util\pboc_global_fun.txt"
? "全局变量初始化"
g_pse = "1PAY.SYS.DDF01"
g_ppse = "2PAY.SYS.DDF01"
g_aid = a0 00 00 03 33 01 01
g_key_AC = 11223344006677881122334455007788
g_key_MAC = 8B4F854F0831FBF2635A212E4DDDB92A
g_key_ENC = 11220044556677881122330055667788
g_key_AC_SM = 11223344006677881122334455007788
g_key_MAC_SM = 8B4F854F0831FBF2635A212E4DDDB92A
g_key_ENC_SM = 11220044556677881122330055667788
g_input_9f02 = 000000001000
g_input_9f03 = 000000000000
g_input_95 = 0000000000
g_input_9f1a = 0156
g_input_5f2a = 0156
g_input_9f66 = 56000000
//-- 9F66 = 56 00 00 00
//--字节0
//--56 --- 0 1 0 1 0 1 1 0
//----bit 7 = 0 不支持非接触磁条 (MSD)
//----bit 6 = 1 支持非接触PBOC
//----bit 5 = 0 不支持非接触qPBOC
//----bit 4 = 1 支持接触PBOC
//----bit 3 = 0 终端具有联机能力
//----bit 2 = 1 支持联机PIN
//----bit 1 = 1 支持签名
//----bit 0 = 0 预留
//--字节1
//--00 --- 0 0 0 0 0 0 0 0
//----bit 7 = 0 不要求联机密文
//----bit 6 = 0 不要求CVM
//----bit 5 - 0 = 0 0 0 0 0 0 RFU
//--字节2
//--00 --- 0 0 0 0 0 0 0 0 RFU
//--字节3
//--00 --- 0 0 0 0 0 0 0 0
//----bit 7 = 0 终端仅支持“00”版本的fDDA
//----bit 6 - 0 = 0 0 0 0 0 0 0 RFU
g_input_9f33 = E0E8E8
g_input_9f4E = "庆丰包子铺月坛店"
g_input_9f4e = $g_input_9f4e " "
g_input_9f4e = hleft( $g_input_9f4e, 14 )
g_input_9f7a = 00 // 是否是电子现金
g_input_9c = 00 // 消费类型,我们不用管
g_input_8a = 3030
g_input_df69 = 00
g_input_df60 = 00
? "借贷记普通交易,消费10元"
? "选择pboc的Aid"
00 a4 04 00 ( $g_aid )
if sw != 9000
pause
endif
set resp
g_output_pdol = gettlv( $resp, 6f a5 9f38 )
g_output_9f4d = gettlv( $resp, 6f a5 bf0c 9f4d )
if $g_output_9f4d != ""
g_output_log_sfi = hmid( $g_output_9f4d, 00, 01 )
else
g_output_log_sfi = ""
endif
// 生成随机数,交易日期,交易时间
call make_something
call filling_dol( $g_output_pdol )
? "------------GPO"
80 a8 00 00 ( 83 ( $g_current_filling ) )
if sw != 9000
pause
endif
set resp
rr = gettlv( $resp, 80 )
g_output_aip = hleft( $rr, 02 )
g_output_afl = hmid( $rr, 02 )
? "------------读记录"
call read_all_record( $g_output_afl )
? "------------GAC1"
g_output_cdol1 = gettlv( $g_output_all_record, 8c )
call filling_dol( $g_output_cdol1 )
80 ae 80 00 ( $g_current_filling )
if sw != 9000
pause
endif
set resp
rr = gettlv( $resp, 80 )
g_output_cid = hleft( $rr, 01 )
g_output_atc = hmid( $rr, 01, 02 )
g_output_ac = hmid( $rr, 03, 08 )
g_output_other = hmid( $rr, 0b )
g_output_cvr = hmid( $g_output_other, 03, 04 )
call calc_ac1( $g_output_cvr )
if $g_output_ac != $the_calc_ac
?
? "GAC1 外部计算ac与卡内不一致"
pause
else
? "GAC1 外部计算ac与卡内一致"
endif
? "------------发卡行认证"
call issuer_auth( $g_input_8a, $the_calc_ac )
if sw ! = 90 00
pause
endif
? "------------GAC2"
g_output_cdol2 = gettlv( $g_output_all_record, 8d )
call filling_dol( $g_output_cdol2 )
80 ae 40 00 ( $g_current_filling )
if sw != 9000
pause
endif
if sw != 9000
pause
endif
set resp
rr = gettlv( $resp, 80 )
g_output_cid = hleft( $rr, 01 )
g_output_atc = hmid( $rr, 01, 02 )
g_output_ac = hmid( $rr, 03, 08 )
g_output_other = hmid( $rr, 0b )
g_output_cvr = hmid( $g_output_other, 03, 04 )
call calc_ac2( $g_output_cvr )
if $g_output_ac != $the_calc_ac
?
? "GAC2 外部计算ac与卡内不一致"
pause
else
? "GAC2 外部计算ac与卡内一致"
endif
? "------------读交易日志"
if $g_output_log_sfi == ""
? "没有交易日志"
else
? "有交易日志"
call check_last_trade_log( $g_output_log_sfi )
endif
? "借贷记联机交易成功"
end