171 lines
6.0 KiB
XML
171 lines
6.0 KiB
XML
<?xml version='1.0' encoding='UTF-8'?>
|
|
<Application name="lps" trace="yes">
|
|
|
|
<!--贴片卡POS退订通知-->
|
|
<Transaction code="2130080" log_switch="1">
|
|
|
|
<DynSentence name="QRY_LPSTCRD_STSMBL"> <!--用应用序列号查询手机钱包卡的卡状态和手机号以及卡版本号-->
|
|
<Sentence>
|
|
SELECT MBL_NO,MAIN_AC,CRD_VER,CRD_STS,CRD_TYP,CRD_STSW
|
|
FROM LPSTCRD
|
|
WHERE SUB_AC=?
|
|
</Sentence>
|
|
<Fields>SUB_AC|</Fields>
|
|
</DynSentence>
|
|
|
|
<DynSentence name="QRY_LPSTEMK_INFO"> <!--用应用序列号查询圈存明细表是都存在未确认信息-->
|
|
<Sentence>
|
|
SELECT DISTINCT 'Y'
|
|
FROM LPSTEMK
|
|
WHERE SUB_AC=? and LAST_EMK_CMD='1' and EMK_STS='0' and EMK_TYP='S'
|
|
</Sentence>
|
|
<Fields>SUB_AC|</Fields>
|
|
</DynSentence>
|
|
|
|
<FlowCtrl>
|
|
<!-- 检查商户是否为营业厅 -->
|
|
<Call package="LPS_PUB" function="CheckMercTyp">
|
|
<Input>MERC_ID|</Input>
|
|
<Output>MSG_CD|</Output>
|
|
</Call>
|
|
<If condition="IS_NOEQUAL_STRING(SUBSTR(@O.MSG_CD,4,5),00000)">
|
|
<Exec func="PUB:GWASetMsg">
|
|
<Arg name="MsgCd" value="@O.MSG_CD"/>
|
|
</Exec>
|
|
<Return/>
|
|
</If>
|
|
|
|
|
|
<!--检查子账户状态-->
|
|
<Exec func="PUB:ReadRecord" error="IGNORE">
|
|
<Arg name="SqlCmd" value="QRY_LPSTCRD_STSMBL" />
|
|
</Exec>
|
|
<If condition="~RetCod=2">
|
|
<Exec func="PUB:GWASetMsg">
|
|
<Arg name="MsgCd" value="LPS20055"/>
|
|
<Arg name="MsgDat" value="用户未开通手机钱包"/>
|
|
</Exec>
|
|
<Return/>
|
|
</If>
|
|
<ElseIf condition="~RetCod=-1">
|
|
<Exec func="PUB:GWASetMsg">
|
|
<Arg name="MsgCd" value="LPS19999"/>
|
|
<Arg name="MsgDat" value="系统错误"/>
|
|
</Exec>
|
|
<Return/>
|
|
</ElseIf>
|
|
|
|
<!-- 卡片进行过补卡或者坏卡换卡不允许再次销户 -->
|
|
<If condition="OR(IS_EQUAL_STRING(SUBSTR($CRD_STSW,1,1),1),IS_EQUAL_STRING(SUBSTR($CRD_STSW,3,1),1))">
|
|
<Exec func="PUB:GWASetMsg">
|
|
<Arg name="MsgCd" value="LPS20055"/>
|
|
</Exec>
|
|
<Return/>
|
|
</If>
|
|
|
|
<!--用户-用户状态查询-->
|
|
<Set>INP_DAT.MBLNO_OR_LOGID=$MBL_NO</Set>
|
|
<Set>INP_DAT.TX_CD=$GWA.TX_CD</Set>
|
|
<Call package="URM_PUB" function="CHK_USER_STS">
|
|
<Input>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"/>
|
|
</Exec>
|
|
<Return/>
|
|
</If>
|
|
|
|
<If condition="IS_EQUAL_STRING($CRD_STS,2)">
|
|
<Exec func="PUB:GWASetMsg">
|
|
<Arg name="MsgCd" value="LPS00000"/>
|
|
</Exec>
|
|
<Return/>
|
|
</If>
|
|
|
|
|
|
<!--判断子账户状态-->
|
|
<If condition="AND(IS_NOEQUAL_STRING($CRD_STS,1),IS_NOEQUAL_STRING($CRD_STS,3))">
|
|
<Exec func="PUB:GWASetMsg">
|
|
<Arg name="MsgCd" value="LPS20056"/>
|
|
<Arg name="MsgDat" value="用户子帐户状态异常"/>
|
|
</Exec>
|
|
<Return/>
|
|
</If>
|
|
|
|
<If condition="IS_EQUAL_STRING($CRD_TYP,A)">
|
|
<!--用应用序列号查询圈存明细表是否存在未确认信息-->
|
|
<Exec func="PUB:ReadRecord" error="IGNORE">
|
|
<Arg name="SqlCmd" value="QRY_LPSTEMK_INFO" />
|
|
</Exec>
|
|
<If condition="~RetCod=2">
|
|
<Exec func="PUB:GWASetMsg">
|
|
<Arg name="MsgCd" value="LPS00000"/>
|
|
</Exec>
|
|
</If>
|
|
<ElseIf condition="~RetCod=-1">
|
|
<Exec func="PUB:GWASetMsg">
|
|
<Arg name="MsgCd" value="LPS19999"/>
|
|
<Arg name="MsgDat" value="系统错误"/>
|
|
</Exec>
|
|
<Return/>
|
|
</ElseIf>
|
|
<ElseIf condition="~RetCod=0">
|
|
<Exec func="PUB:GWASetMsg">
|
|
<Arg name="MsgCd" value="LPS20057"/>
|
|
<Arg name="MsgDat" value="存在未确认信息,请先处理"/>
|
|
</Exec>
|
|
<Return/>
|
|
</ElseIf>
|
|
</If>
|
|
|
|
|
|
|
|
<If condition="ISNULL($TX_AMT)">
|
|
<Exec func="PUB:GWASetMsg">
|
|
<Arg name="MsgCd" value="LPS00000"/>
|
|
</Exec>
|
|
<Return/>
|
|
</If>
|
|
|
|
<Set>TX_AMT=AMTSIMPLEFMT($TX_AMT)</Set>
|
|
<If condition="AND(IS_EQUAL_STRING($CRD_VER,01),IS_EQUAL_STRING($CRD_TYP,A))"> <!-- 如果是1.1的STK卡片那么减去10元透支限额 -->
|
|
<Set>TX_AMT=FSUB($TX_AMT,10,2)</Set>
|
|
</If>
|
|
|
|
<!--查询平台记录卡片余额-->
|
|
<Set>CRD_QPB.SUB_AC=$SUB_AC</Set>
|
|
<Set>CRD_QPB.CAP_TYP=1</Set>
|
|
<Exec func="ACM_MNG:QueryPurseBalance">
|
|
<Arg name="_I_GWA" value="GWA"/>
|
|
<Arg name="_I_INP_DAT" value="CRD_QPB"/>
|
|
<Arg name="_O_OUT_DAT" value="CRD_QPB_OUT"/>
|
|
</Exec>
|
|
<If condition="NOT(IS_SUCC(@O.MSG_CD))">
|
|
<Exec func="PUB:GWASetMsg">
|
|
<Arg name="MsgCd" value="@O.MSG_CD"/>
|
|
</Exec>
|
|
<Return/>
|
|
</If>
|
|
|
|
<!--平台记录余额小于卡片余额不允许销户 -->
|
|
<If condition="DOUBLECMP(FSUB(@O.CRD_QPB_OUT.CUR_AC_BAL,@O.CRD_QPB_OUT.UAVA_BAL,2),1,$TX_AMT)">
|
|
<Exec func="PUB:GWASetMsg">
|
|
<Arg name="MsgCd" value="LPS20064"/>
|
|
<Arg name="MsgDat" value="卡片余额大于后台钱包余额"/>
|
|
</Exec>
|
|
<Return/>
|
|
</If>
|
|
|
|
<Exec func="PUB:GWASetMsg">
|
|
<Arg name="MsgCd" value="LPS00000"/>
|
|
</Exec>
|
|
<!--营业厅不是商户,所以暂不做商户信息的检查-->
|
|
|
|
</FlowCtrl>
|
|
</Transaction>
|
|
|
|
</Application>
|
|
|