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

64 lines
2.3 KiB
XML

<?xml version='1.0' encoding='UTF-8'?>
<Package>
<!--生成POS交易数据MAC-->
<Function name="CreatePosTransactionMAC">
<Input>SUB_AC|RDM_NO1|CRD_EMK_SEQ|TX_AMT|POS_TRM_ID|GWA|</Input>
<Output>OUT_DAT|MSG_CD|</Output>
<Process>
<!--交易设置-->
<Set>C_TX_DT=$GWA.TX_DT</Set>
<Set>C_TX_TM=$GWA.TX_TM</Set>
<!--加密机参数设置-->
<Set>MK_VER=01</Set>
<Set>MK_IDX=20</Set>
<Set>MK_DVS_NUM=2</Set>
<Set>MK_DVS_DAT=STRCAT($MK_VER,SUBSTR($SUB_AC,7,14))</Set>
<Set>GC_KEY_FLG=1</Set>
<Set>GC_DAT=STRCAT($RDM_NO1,$CRD_EMK_SEQ,8000)</Set>
<Set>MAC_PAD_FLG=1</Set>
<Set>MAC_IV_DAT=0000000000000000</Set>
<Set>MAC_DAT=STRCAT(TOUPPER($TX_AMT),02,$POS_TRM_ID,$C_TX_DT,$C_TX_TM)</Set>
<Set>MAC_DAT_LEN=DIV(STRLEN($MAC_DAT),2)</Set>
<Set>MAC_LEN_FLG=1</Set>
<!--调用加密机接口进行生成交易MAC-->
<Exec func="HSM:HsmMACGen4C">
<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="MAC" value="MAC2" />
<Arg name="MAClenFlag" value="$MAC_LEN_FLG" />
</Exec>
<If condition="~RetCod!=0">
<Exec func="PUB:CmpSetMsg">
<Arg name="MsgCd" value="LPS81020"/>
<Arg name="MsgDat" value="生成交易MAC失败"/>
</Exec>
<Return/>
</If>
<Set>OUT_DAT.MAC2=$MAC2</Set>
<Set>OUT_DAT.C_TX_DT=$C_TX_DT</Set>
<Set>OUT_DAT.C_TX_TM=$C_TX_TM</Set>
<!--交易成功-->
<Exec func="PUB:CmpSetMsg">
<Arg name="MsgCd" value="LPS00000"/>
<Arg name="MsgDat" value="生成报文MAC成功"/>
</Exec>
</Process>
</Function>
</Package>