Files
2021-01-12 22:04:24 +08:00

121 lines
4.1 KiB
XML

<?xml version='1.0' encoding='UTF-8'?>
<Application name="lps" code="010" trace="yes">
<!--充值卡充值 -->
<Transaction code="2150020" log_switch='1'>
<DynSentence name='QRY_LPSTCRD_SUBNUM'>
<Sentence>
SELECT SUB_AC, CRD_VER FROM LPSTCRD WHERE MBL_NO=? AND CRD_STS!='2'
</Sentence>
<Fields>MBL_NO|</Fields>
</DynSentence>
<DynSentence name='QRY_LPSTSUBAC_INFO'>
<Sentence>
SELECT SUB_AC FROM LPSTSUBAC WHERE MBL_NO=?
</Sentence>
<Fields>MBL_NO|</Fields>
</DynSentence>
<FlowCtrl>
<!-- 接收报文-->
<Set>CMD_CD=SUBSTR($PIN_DAT,1,2)</Set>
<!--从手机钱包卡信息表中读取应用序列号-->
<Exec func="PUB:ReadRecord" error="IGNORE">
<Arg name="SqlCmd" value="QRY_LPSTCRD_SUBNUM" />
</Exec>
<If condition="~RetCod=2">
<Exec func="PUB:ReadRecord">
<Arg name="SqlCmd" value="QRY_LPSTSUBAC_INFO" />
</Exec>
<If condition="~RetCod=2">
<Exec func="PUB:GWASetMsg">
<Arg name="MsgCd" value="URM20211" />
<Arg name="MsgDat" value="主账户未开通" />
</Exec>
<Return/>
</If>
<ElseIf condition="~RetCod!=0">
<Exec func="PUB:GWASetMsg">
<Arg name="MsgCd" value="LPS00001" />
</Exec>
<Return/>
</ElseIf>
</If>
<ElseIf condition="~RetCod!=0">
<Exec func="PUB:GWASetMsg">
<Arg name="MsgCd" value="LPS00001" />
</Exec>
<Return/>
</ElseIf>
<!--报文MAC校验-->
<Call package="LPS_PUB" function="CheckMessageMAC">
<Input>SUB_AC|PIN_DAT|</Input>
<Output>MSG_CD|</Output>
</Call>
<If condition="NOT(IS_SUCC(@O.MSG_CD))"> <!--MAC校验失败-->
<Exec func="PUB:GWASetMsg">
<Arg name="MsgCd" value="@O.MSG_CD" />
</Exec>
<Return/>
</If>
<!--解密报文-->
<Call package="LPS_PUB" function="MessageDecrypt">
<Input>CMD_CD|CRD_VER|SUB_AC|PIN_DAT|</Input>
<Output>PIN_DAT|MSG_CD|</Output>
</Call>
<If condition="NOT(IS_SUCC(@O.MSG_CD))">
<Exec func="PUB:GWASetMsg">
<Arg name="MsgCd" value="@O.MSG_CD" />
</Exec>
<Return/>
</If>
<Set>TXN_DAT=@O.PIN_DAT</Set>
<!--报文解析-->
<Call package="LPS_PUB" function="MessageParse">
<Input>CMD_CD|TXN_DAT|</Input>
<Output>MSG_CD|STK_AREA|</Output>
</Call>
<If condition="NOT(IS_SUCC(@O.MSG_CD))">
<!--报文解析失败-->
<Exec func="PUB:GWASetMsg">
<Arg name="MsgCd" value="@O.MSG_CD" />
</Exec>
<Return/>
</If>
<Set>CRD_NO=@O.STK_AREA.CRD_NO</Set>
<!-- 调用充提模块充值卡充值交易 -->
<Exec func="PUB:CallThirdService" error="IGNORE">
<Arg name="HTxnCd" value="2023500" />
<Arg name="ObjSvr" value="OPWMPPD2" />
<Arg name="In" value="MBL_NO|CRD_NO|GWA|"/>
<Arg name="Out" value="NON_CASH_AVL_AMT|GWA|"/>
</Exec>
<If condition="~RetCod=0">
<If condition="NOT(IS_SUCC($GWA.MSG_CD))">
<Exec func="PUB:GWASetMsg">
<Arg name="MsgCd" value="$GWA.MSG_CD"/>
</Exec>
<Return/>
</If>
<Exec func="PUB:GWASetMsg">
<Arg name="MsgCd" value="LPS00000" />
<Arg name="MsgDat" value="充值交易成功"/>
</Exec>
</If>
<Else>
<Exec func="PUB:GWASetMsg">
<Arg name="MsgCd" value="LPS00001"/>
</Exec>
<Return/>
</Else>
</FlowCtrl>
</Transaction>
</Application>