Files
ctg-app-ui/lps/etc/pkg/LPS_CHECKTRANSACTIONTAC_PKG.XML
2021-01-12 22:04:24 +08:00

55 lines
2.2 KiB
XML

<?xml version='1.0' encoding='UTF-8'?>
<Package>
<!--验证交易数据TAC-->
<Function name="CheckTransactionTAC">
<Input>SUB_AC|TAC_AMT|TAC_POS_TX_TYP|TAC_OCSM_TRM|TAC_OCSM_TRM_SEQ|TAC_OTX_DT|TAC_OTX_TM|TAC|</Input>
<Output>MSG_CD|</Output>
<Process>
<!--加密机参数设置-->
<Set>MK_VER=01</Set>
<Set>MK_IDX=21</Set>
<Set>MK_DVS_NUM=2</Set>
<Set>MK_DVS_DAT=STRCAT($MK_VER,SUBSTR($SUB_AC,7,14))</Set>
<Set>GC_KEY_FLG=2</Set>
<Set>GC_DAT=00000000</Set> <!-- 不使用过程密钥此字段可以填入任意非空值 -->
<Set>MAC_PAD_FLG=1</Set>
<Set>MAC_IV_DAT=0000000000000000</Set>
<Set>MAC_DAT=STRCAT($TAC_AMT,$TAC_POS_TX_TYP,$TAC_OCSM_TRM,$TAC_OCSM_TRM_SEQ,$TAC_OTX_DT,$TAC_OTX_TM)</Set>
<Set>MAC_DAT_LEN=DIV(STRLEN($MAC_DAT),2)</Set>
<Set>MAC_LEN_FLG=1</Set>
<!--调用加密机接口进行交易数据MAC校验-->
<Exec func="HSM:HsmMACVerify4C">
<Arg name="MkVer" value="$MK_VER"/>
<Arg name="MkIndex" value="$MK_IDX"/>
<Arg name="MkDvsNum" value="$MK_DVS_NUM"/>
<Arg name="MkDvsData" value="$MK_DVS_DAT"/>
<Arg name="GCKEY_Flag" value="$GC_KEY_FLG"/>
<Arg name="GCDATA" value="$GC_DAT"/>
<Arg name="MACPadflag" value="$MAC_PAD_FLG"/>
<Arg name="MacIvData" value="$MAC_IV_DAT"/>
<Arg name="MACdata" value="$MAC_DAT"/>
<Arg name="MACdataLen" value="$MAC_DAT_LEN"/>
<Arg name="MAClenFlag" value="$MAC_LEN_FLG"/>
<Arg name="MAC" value="$TAC"/>
</Exec>
<If condition="~RetCod!=0">
<Exec func="PUB:CmpSetMsg">
<Arg name="MsgCd" value="LPS81017"/>
<Arg name="MsgDat" value="验证交易TAC失败"/>
</Exec>
<Return/>
</If>
<!--交易成功-->
<Exec func="PUB:CmpSetMsg">
<Arg name="MsgCd" value="LPS00000"/>
<Arg name="MsgDat" value="验证交易MAC成功"/>
</Exec>
</Process>
</Function>
</Package>