218 lines
8.0 KiB
XML
218 lines
8.0 KiB
XML
<?xml version='1.0' encoding='UTF-8'?>
|
|
<Application name="lps" trace="yes">
|
|
|
|
<!--贴片卡portal圈存-->
|
|
<Transaction code="2142040" log_switch="1">
|
|
<!-- 检查手机钱包状态 -->
|
|
<DynSentence name="QRY_LPSTCRD_CRDSTS">
|
|
<Sentence>
|
|
SELECT USR_NO, CRD_STS,CRD_TYP,SUB_AC,MAIN_AC FROM LPSTCRD WHERE MBL_NO=? and CRD_STS!=2
|
|
</Sentence>
|
|
<Fields>MBL_NO|</Fields>
|
|
</DynSentence>
|
|
|
|
<!-- 检查补登表-->
|
|
<DynSentence name="CHK_LPSTWEMK_CRDWAL">
|
|
<Sentence>
|
|
SELECT * FROM LPSTWEMK WHERE MBL_NO=? and PROC_RSL!='S'
|
|
</Sentence>
|
|
<Fields>MBL_NO|</Fields>
|
|
</DynSentence>
|
|
|
|
<FlowCtrl>
|
|
<!-- 交易初始化 -->
|
|
<Set>TX_AMT=$TXN_AMT</Set>
|
|
|
|
<!-- 支付密码检查 -->
|
|
<Set>INP_DAT.MBL_NO=$MBL_NO</Set>
|
|
<Set>INP_DAT.PAY_PSWD_IN=$PAY_PSWD</Set>
|
|
<Call package="URM" function="CHK_PAY_PSWD">
|
|
<Input>GWA|INP_DAT</Input>
|
|
<Output>OUT_DAT|MSG_CD</Output>
|
|
</Call>
|
|
<If condition="IS_SUCC(@O.MSG_CD)=0">
|
|
<Exec func="PUB:GWAAddMsg">
|
|
<Arg name="MsgCd" value="@O.MSG_CD"/>
|
|
<Arg name="MsgDat" value="支付密码检查失败"/>
|
|
</Exec>
|
|
<Return/>
|
|
</If>
|
|
|
|
<!--贴片卡销户合法性检查 -->
|
|
<!-- 检查是否开通手机钱包 -->
|
|
<Exec func="PUB:ReadRecord">
|
|
<Arg name="SqlCmd" value="QRY_LPSTCRD_CRDSTS"/>
|
|
</Exec>
|
|
<If condition="~RetCod=2">
|
|
<Exec func="PUB:GWASetMsg">
|
|
<Arg name="MsgCd" value="LPS20055"/>
|
|
<Arg name="MsgDat" value="尚未开通手机钱包"/>
|
|
</Exec>
|
|
<Return/>
|
|
</If>
|
|
<If condition="~RetCod=-1">
|
|
<Exec func="PUB:GWASetMsg">
|
|
<Arg name="MsgCd" value="LPS00001"/>
|
|
</Exec>
|
|
<Return/>
|
|
</If>
|
|
<!-- 记录存在,则判断卡片类型和状态等是否吻合 -->
|
|
<If condition="IS_NOEQUAL_STRING($CRD_TYP,E)">
|
|
<Exec func="PUB:GWASetMsg">
|
|
<Arg name="MsgCd" value="LPS78001"/>
|
|
<Arg name="MsgDat" value="贴片卡类型不吻合"/>
|
|
</Exec>
|
|
<Return/>
|
|
</If>
|
|
<If condition="IS_NOEQUAL_STRING($CRD_STS,1)">
|
|
<Exec func="PUB:GWASetMsg">
|
|
<Arg name="MsgCd" value="LPS78002"/>
|
|
<Arg name="MsgDat" value="贴片卡状态异常"/>
|
|
</Exec>
|
|
</If>
|
|
|
|
<!-- 主账户状态检查 -->
|
|
<!--
|
|
<Set>INP_DAT.SUB_TX_CD=0001</Set>
|
|
<Set>INP_DAT.DC_PTY_FLG=D</Set> -->
|
|
<Set>INP_DAT.MBLNO_OR_LOGID=$MBL_NO</Set>
|
|
<Set>INP_DAT.TX_CD=$GWA.TX_CD</Set>
|
|
<Call package="URM" function="CHK_USER_STS">
|
|
<Input>INP_DAT</Input>
|
|
<Output>OUT_DAT|MSG_CD</Output>
|
|
</Call>
|
|
<If condition="IS_SUCC(@O.MSG_CD)=0">
|
|
<Exec func="PUB:GWAAddMsg">
|
|
<Arg name="MsgCd" value="@O.MSG_CD"/>
|
|
<Arg name="MsgDat" value="支付账户没有开通或账户状态异常"/>
|
|
</Exec>
|
|
<Return/>
|
|
</If>
|
|
|
|
<!-- 检查充值是否合法 -->
|
|
<!-- 补登表检查 -->
|
|
<Exec func="PUB:ReadRecord">
|
|
<Arg name="SqlCmd" value="CHK_LPSTWEMK_CRDWAL"/>
|
|
</Exec>
|
|
<If condition="~RetCod=0">
|
|
<Exec func="PUB:GWASetMsg">
|
|
<Arg name="MsgCd" value="LPS78011"/>
|
|
<Arg name="MsgDat" value="贴片卡有尚未完成的补登记录"/>
|
|
</Exec>
|
|
<Return/>
|
|
</If>
|
|
<If condition="~RetCod=-1">
|
|
<Exec func="PUB:GWASetMsg">
|
|
<Arg name="MsgCd" value="LPS00001"/>
|
|
</Exec>
|
|
<Return/>
|
|
</If>
|
|
<!-- 检查充值金额是否大于主账户额度 -->
|
|
<!--主账户现金余额-->
|
|
<Set>IN_Q_MACNT.AC_NO=$MAIN_AC</Set>
|
|
<Exec func="ACM_MNG:QueryMainAccountBalance">
|
|
<Arg name="_I_GWA" value="GWA"/>
|
|
<Arg name="_I_INP_DAT" value="IN_Q_MACNT"/>
|
|
<Arg name="_O_OUT_DAT_1" value="OUT_Q_MACNT_1"/>
|
|
<Arg name="_O_OUT_DAT_2" value="OUT_Q_MACNT_2"/>
|
|
</Exec>
|
|
<If condition="NOT(IS_SUCC(@O.MSG_CD))">
|
|
<Exec func="PUB:GWASetMsg">
|
|
<Arg name="MsgCd" value="LPS40082" />
|
|
</Exec>
|
|
<Return/>
|
|
</If>
|
|
<!--获取用户余额-->
|
|
<Set>DRW_AC_BAL=@O.OUT_Q_MACNT_1.CUR_AC_BAL</Set> <!--现金账户-->
|
|
<Set>UDRW_AC_BAL=@O.OUT_Q_MACNT_2.CUR_AC_BAL</Set> <!--充值卡账户-->
|
|
<If condition ="ISNULL($DRW_AC_BAL)">
|
|
<Set>DRW_AC_BAL=0</Set>
|
|
</If>
|
|
<If condition ="ISNULL($UDRW_AC_BAL)">
|
|
<Set>UDRW_AC_BAL=0</Set>
|
|
</If>
|
|
<If condition="DOUBLECMP($TX_AMT,6,$DRW_AC_BAL)">
|
|
<Exec func="PUB:GWASetMsg">
|
|
<Arg name="MsgCd" value="LPS40003"/>
|
|
<Arg name="MsgDat" value="余额不足,交易失败"/>
|
|
</Exec>
|
|
<Return/>
|
|
</If>
|
|
|
|
<!-- 转化成分为单位
|
|
<Set>TX_AMT=FMUL(100,$TX_AMT,0)</Set> -->
|
|
<!-- 风控单笔限额检查 -->
|
|
<Set>RISK_SWITCH=C</Set>
|
|
<Set>RISK_RSN=</Set>
|
|
<Set>RISK_TYPE=</Set>
|
|
<Set>RISK_SEQ=</Set>
|
|
<Set>GWA.TX_CD=2142040</Set> <!-- 重置GWA区中的交易码 -->
|
|
<!-- Set>TX_AMT1=AMTSIMPLEFMT($TX_AMT)</Set> -->
|
|
<Set>TX_AMT1=$TX_AMT</Set>
|
|
<Call package="LPS_PUB" function="LpsRiskControl">
|
|
<Input>RISK_SWITCH|MBL_NO|TX_AMT1|RISK_TYPE|RISK_RSN|RISK_SEQ|GWA|</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>
|
|
|
|
<!-- 总限额度风控检查 -->
|
|
|
|
<!--冻结充值金额 -->
|
|
<Set>INP_DAT.AC_NO=$MAIN_AC</Set>
|
|
<Set>INP_DAT.CAP_TYP=1</Set>
|
|
<Set>INP_DAT.HLD_AMT=$TX_AMT</Set>
|
|
<Set>INP_DAT.TX_CD=$GWA.TX_CD</Set>
|
|
<Set>INP_DAT.HLD_CD=BD</Set>
|
|
<Set>INP_DAT.ORD_TYP=07</Set>
|
|
<Exec func="ACM:HoldAccount">
|
|
<Arg name="_I_GWA" value="GWA"/>
|
|
<Arg name="_I_INP_DAT" value="INP_DAT"/>
|
|
<Arg name="_O_OUT_DAT" value="OUT_DAT"/>
|
|
</Exec>
|
|
<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>TX_DT=$GWA.TX_DT</Set>
|
|
<Set>CRD_TYP=E</Set>
|
|
<Set>BUS_CNL=WWW </Set>
|
|
<Set>JRN_NO=$GWA.JRN_NO</Set>
|
|
<Set>USR_NO=$GWA.USR_NO</Set>
|
|
<Set>PROC_RSL=U</Set>
|
|
<Set>HLD_NO=@O.OUT_DAT.HLD_NO</Set>
|
|
<Set>REG_DT=$GWA.REG_DT</Set>
|
|
<Set>REG_TM=$GWA.REG_TM</Set>
|
|
<Exec func="PUB:InsertRecord" error="IGNORE">
|
|
<Arg name="TblNam" value="LPSTWEMK"/>
|
|
</Exec>
|
|
<If condition="~RetCod!=0">
|
|
<Exec func="PUB:GWASetMsg">
|
|
<Arg name="MsgCd" value="LPS70561"/>
|
|
<Arg name="MsgDat" value="登记补登表失败"/>
|
|
</Exec>
|
|
<Return/>
|
|
</If>
|
|
|
|
<!-- 下发文本短信通知用户 圈存结果-->
|
|
<Set>SMS_CD= </Set>
|
|
<Call package="LPS_PUB" function="SendShortMessage"/>
|
|
|
|
<Exec func="PUB:GWASetMsg">
|
|
<Arg name="MsgCd" value="LPS00000"/>
|
|
</Exec>
|
|
|
|
</FlowCtrl>
|
|
</Transaction>
|
|
|
|
</Application>
|