Files
ctg-app-ui/cap/etc/chkpkg/PPD_CUP_FILE_VERIFY_PKG.XML
2021-01-12 22:04:24 +08:00

80 lines
3.1 KiB
XML

<?xml version="1.0" encoding='UTF-8'?>
<Package>
<!--交通对账:对账文件入库-->
<Function name="PPD_CUP_FILE_VERIFY">
<Output>MSG_CD|</Output>
<Process>
<Set>SrcDir=STRCAT(GETENV(HWORKDIR),/data/pwm/recv/CUP/)
</Set> <!-- 对账文件目录 -->
<!-- 检验对账文件 -->
<Exec func="PUB:IsValidFile">
<Arg name="FileName" value="STRCAT($SrcDir,$FIL_NM)" />
</Exec>
<!-- 打开对账文件 -->
<Exec func="PUB:OpenFile" error="IGNORE">
<Arg name="FileName" value="STRCAT($SrcDir,$FIL_NM)" />
<Arg name="Mode" value="r" />
</Exec>
<If condition="~RetCod!=0">
<!-- @msg 打开ChinaPay对账文件失败 -->
<Exec func="PUB:CmpSetMsg">
<Arg name="MsgCd" value="PWM22165" />
</Exec>
<Return />
</If>
<Else>
<Set>LINE_NO=0</Set>
<While>
<Exec func="PUB:GetFileLine" error="IGNORE">
<Arg name="FieldName" value="LINEBUFF" />
</Exec>
<If condition="~RetCod=0">
<Set>LINE_NO=ADD($LINE_NO,1)</Set>
<If condition="$LINE_NO &lt; 2">
<Continue />
</If>
</If>
<ElseIf condition="~RetCod=1">
<!-- 文件读取完毕 -->
<Break />
</ElseIf>
<Else>
<!-- @msg ChinaPay对账文件为空或者不完整 -->
<Exec func="PUB:CmpSetMsg">
<Arg name="MsgCd" value="PWM22181" />
</Exec>
<Exec func="PUB:CloseFile" />
<Return />
</Else>
<Set>INP_DAT.SIG_DAT=SUBSTR($LINEBUFF,1,SUB(STRLEN($LINEBUFF),256))
</Set>
<Set>INP_DAT.CHK_VAL=SUBSTR($LINEBUFF,ADD(STRLEN($INP_DAT.SIG_DAT),1),256)
</Set>
<!-- 银联对账文件明细验签 -->
<Call package="PWM" function="CHINAPAY_VERIFYSIGATURE">
<Input>INP_DAT</Input>
<Output>MSG_CD</Output>
</Call>
<If condition="IS_SUCC(@O.MSG_CD)=0">
<Exec func="PUB:CmpSetMsg">
<Arg name="MsgCd" value="@O.MSG_CD" />
</Exec>
<Return />
</If>
</While>
<!--关闭文件-->
<Exec func="PUB:CloseFile" />
</Else>
<!-- 交易成功 -->
<Exec func="PUB:CmpSetMsg">
<Arg name="MsgCd" value="PWM00000" />
</Exec>
</Process>
</Function>
</Package>