161 lines
5.7 KiB
XML
161 lines
5.7 KiB
XML
<?xml version='1.0' encoding='UTF-8'?>
|
|
<Application name="lps" code="010" trace="yes">
|
|
|
|
<!--缴纳他人话费-->
|
|
<Transaction code="2150120" log_switch='1'>
|
|
|
|
<DynSentence name='QRY_LPSTCRD_SUBNUM'>
|
|
<Sentence>
|
|
SELECT SUB_AC,USR_NO,MAIN_AC 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>
|
|
<Set>CRD_VER=SUBSTR($PIN_DAT,3,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>
|
|
<Set>QU_IN.MBL_NO=$MBL_NO</Set>
|
|
<!-- 查询用户主账号 -->
|
|
<Exec func="URM:QueryUser">
|
|
<Arg name="_I_GWA" value="GWA"/>
|
|
<Arg name="_I_INP_DAT" value="QU_IN"/>
|
|
<Arg name="_O_OUT_DAT" value="QU_OUT"/>
|
|
</Exec>
|
|
<If condition="NOT(IS_SUCC(@O.MSG_CD))">
|
|
<Exec func="PUB:GWASetMsg">
|
|
<Arg name="MsgCd" value="@O.MSG_CD" />
|
|
</Exec>
|
|
<Return/>
|
|
</If>
|
|
<Set>MAIN_AC=@O.QU_OUT.AC_NO</Set>
|
|
</If>
|
|
<ElseIf condition="~RetCod!=0">
|
|
<Exec func="PUB:GWASetMsg">
|
|
<Arg name="MsgCd" value="LPS00001" />
|
|
<Arg name="MsgDat" value="系统异常,交易失败"/>
|
|
</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))">
|
|
<Exec func="PUB:GWASetMsg">
|
|
<Arg name="MsgCd" value="@O.MSG_CD" />
|
|
</Exec>
|
|
<Return/>
|
|
</If>
|
|
|
|
<!--解密报文-->
|
|
<Call package="LPS_PUB" function="PasswordMessageDecrypt">
|
|
<Input>CMD_CD|SUB_AC|PIN_DAT|MAIN_AC|</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" />
|
|
<Arg name="MsgDat" value="报文解密失败!"/>
|
|
</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>
|
|
|
|
<!--支付密码校验-->
|
|
<Set>INP_DAT.PAY_PSWD_IN=@O.STK_AREA.PAY_PSW</Set>
|
|
<Set>INP_DAT.MBL_NO=$MBL_NO</Set>
|
|
<Set>GWA.BUS_CNL=STK</Set>
|
|
<Set>GWA.SYS_CNL=SMS</Set>
|
|
<Call package="URM_PUB" function="CHK_PAY_PSWD">
|
|
<Input>GWA|INP_DAT|</Input>
|
|
<Output>OUT_DAT|MSG_CD|</Output>
|
|
</Call>
|
|
<If condition="NOT(IS_SUCC(@O.MSG_CD))">
|
|
<Exec func="PUB:GWASetMsg">
|
|
<Arg name="MsgCd" value="@O.MSG_CD" />
|
|
<Arg name="MsgDat" value="支付密码校验出错"/>
|
|
</Exec>
|
|
<Return/>
|
|
</If>
|
|
|
|
<!--线下缴话费-->
|
|
<Set>PE_USR_ID=@O.STK_AREA.OPP_MBL</Set>
|
|
<Set>PE_AMT=@O.STK_AREA.TX_AMT</Set>
|
|
<Exec func="PUB:CallThirdService" error="IGNORE">
|
|
<Arg name="HTxnCd" value="5011030" />
|
|
<Arg name="ObjSvr" value="OPESPTC1" />
|
|
<Arg name="In" value="MBL_NO|PE_USR_ID|PE_AMT|GWA|" />
|
|
<Arg name="Out" value="PE_AMT|PAY_AMT|CASH_AVL_AMT|NON_CASH_AVL_AMT|GWA"/>
|
|
</Exec>
|
|
<If condition="~RetCod!=0">
|
|
<Exec func="PUB:GWASetMsg">
|
|
<Arg name="MsgCd" value="LPS40081" />
|
|
<Arg name="MsgDat" value="缴话费失败"/>
|
|
</Exec>
|
|
<Return/>
|
|
</If>
|
|
|
|
<If condition="NOT(IS_SUCC($GWA.MSG_CD))">
|
|
<Exec func="PUB:GWASetMsg">
|
|
<Arg name="MsgCd" value="$GWA.MSG_CD" />
|
|
<Arg name="MsgDat" value="缴话费失败"/>
|
|
</Exec>
|
|
<Return/>
|
|
</If>
|
|
|
|
<Exec func="PUB:GWASetMsg">
|
|
<Arg name="MsgCd" value="LPS00000" />
|
|
<Arg name="MsgDat" value="交易成功"/>
|
|
</Exec>
|
|
|
|
</FlowCtrl>
|
|
</Transaction>
|
|
|
|
</Application>
|