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

129 lines
4.4 KiB
XML

<?xml version='1.0' encoding='UTF-8'?>
<Application name="MPS" code="010" trace="yes">
<!--银行卡充值 调用的充值交易可能不对 需找相关人员求证-->
<Transaction code="2150010" log_switch ='1'>
<DynSentence name="QRY_LPSTCRD_SUBAC">
<Sentence>
SELECT SUB_AC FROM LPSTCRD WHERE MBL_NO=?
</Sentence>
<Fields>MBL_NO|</Fields>
</DynSentence>
<FlowCtrl>
<Set>CMD_CD=SUBSTR($PIN_DAT,1,2)</Set>
<Set>CRD_VER=SUBSTR($PIN_DAT,3,2)</Set>
<!--读取应用序列号-->
<Exec func="PUB:ReadRecord" error="IGNORE">
<Arg name="SqlCmd" value="QRY_LPSTCRD_SUBAC"/>
</Exec>
<If condition="~RetCod!= 0" >
<Exec func="PUB:GWASetMsg">
<Arg name="MsgCd" value="LPS00001" />
</Exec>
<Return/>
</If>
<!--验证报文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))">
<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>PIN_DAT = @O.PIN_DAT</Set> <!--解密成功,将解密报文赋给PIN_DAT节点-->
<!--报文解析-->
<Call package="LPS_PUB" function="MessageParse">
<Input>CMD_CD|PIN_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>
<!-- 绑定信用卡充值-->
<If condition="IS_EQUAL_STRING(@O.STK_AREA.SUB_CMD_CD,01)">
<Exec func="PUB:CallThirdService" error="IGNORE">
<Arg name="HTxnCd" value="2021200"/>
<Arg name="ObjSvr" value="OPWMPPD1"/>
<Arg name="In" value="MBL_NO|APL_PPD_AMT|CAP_TYP|CRD_BND_TYP|CAP_CARD_NO|"/>
<Arg name="Out" value="CASH_AVL_AMT|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>
</If>
</If>
<!--绑定借记卡充值-->
<ElseIf condition="IS_EQUAL_STRING(@O.STK_AREA.SUB_CMD_CD,02)">
<Exec func="PUB:CallThirdService" error="IGNORE">
<Arg name="HTxnCd" value="2021200"/>
<Arg name="ObjSvr" value="OPWMPPD1"/>
<Arg name="In" value="MBL_NO|APL_PPD_AMT|CAP_TYP|CRD_BND_TYP|CAP_CARD_NO|"/>
<Arg name="Out" value="CASH_AVL_AMT|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>
</If>
</ElseIf>
<!-- 调用充提模块【充提 信用卡充值】-->
<ElseIf condition="IS_EQUAL_STRING(@O.STK_AREA.SUB_CMD_CD,03)">
<Exec func="PUB:CallThirdService" error="IGNORE">
<Arg name="HTxnCd" value="2021200"/>
<Arg name="ObjSvr" value="OPWMPPD1"/>
<Arg name="In" value="MBL_NO|APL_PPD_AMT|CAP_TYP|CRD_BND_TYP|CAP_CARD_NO|"/>
<Arg name="Out" value="CASH_AVL_AMT|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>
</If>
</ElseIf>
<Set>SMS_CD=LPS009</Set>
<Call package="LPS_PUB" function="SendShortMessage"/>
<Exec func="PUB:GWASetMsg">
<Arg name="MsgCd" value="LPS00000" />
</Exec>
</FlowCtrl>
</Transaction>
</Application>