189 lines
7.6 KiB
XML
189 lines
7.6 KiB
XML
<?xml version='1.0' encoding='UTF-8'?>
|
||
<Application name="lps" trace="yes">
|
||
|
||
<!--消费撤销冲正(POS)-->
|
||
<Transaction code="2111019" log_switch="1">
|
||
<!--查询卡片主账号信息-->
|
||
<DynSentence name="QRY_LPSTCRD_MAINAC">
|
||
<Sentence>
|
||
SELECT MAIN_AC FROM LPSTCRD WHERE SUB_AC=?
|
||
</Sentence>
|
||
<Fields>SUB_AC|</Fields>
|
||
</DynSentence>
|
||
|
||
<!-- 检验是否存在成功的消费撤销交易 -->
|
||
<DynSentence name="CHK_LPSTRVS_INFO">
|
||
<Sentence>
|
||
SELECT JRN_NO,AC_DT
|
||
FROM LPSTRVS
|
||
WHERE SUB_AC=? AND OCSM_POS_TRM =? AND OCSM_POS_JRN=? AND RVS_FLG='C' AND OCSM_TRM_DT=? AND OCSM_TRM_TM=? AND MERC_ID=? AND BIL_STS='1'
|
||
FOR UPDATE
|
||
</Sentence>
|
||
<Fields>SUB_AC|OCSM_POS_TRM|OCSM_POS_JRN|OCSM_TRM_DT|OCSM_TRM_TM|OCSM_MERC|</Fields>
|
||
</DynSentence>
|
||
|
||
<!-- 更新消费撤销交易记录状态 -->
|
||
<DynSentence name="UPD_LPSTRVS_STS">
|
||
<Sentence>
|
||
UPDATE LPSTRVS
|
||
SET BIL_STS=? ,TM_SMP=?
|
||
WHERE SUB_AC=? AND OCSM_POS_TRM =? AND OCSM_POS_JRN=? AND OCSM_TRM_DT=? AND OCSM_TRM_TM=? AND MERC_ID=? AND RVS_FLG='C' AND BIL_STS='1'
|
||
</Sentence>
|
||
<Fields>BIL_STS|SYS_TM_SMP|SUB_AC|OCSM_POS_TRM|OCSM_POS_JRN|OCSM_TRM_DT|OCSM_TRM_TM|OCSM_MERC|</Fields>
|
||
</DynSentence>
|
||
|
||
<FlowCtrl>
|
||
<!--验证交易TAC-->
|
||
<If condition="NOT(ISNULL($TAC_BLOCK))">
|
||
<Set>TAC_CRD_OWN_FLG=SUBSTR($TAC_BLOCK,1,16)</Set>
|
||
<Set>TAC_MK_IDX=SUBSTR($TAC_BLOCK,17,2)</Set>
|
||
<Set>TAC_MK_VER=SUBSTR($TAC_BLOCK,19,2)</Set>
|
||
<Set>TAC=SUBSTR($TAC_BLOCK,21,8)</Set>
|
||
<Set>TAC_AMT=SUBSTR($TAC_BLOCK,29,8)</Set>
|
||
<Set>TAC_POS_TX_TYP=SUBSTR($TAC_BLOCK,37,2)</Set>
|
||
<Set>TAC_OCSM_TRM=SUBSTR($TAC_BLOCK,39,12)</Set>
|
||
<Set>TAC_OCSM_TRM_SEQ=SUBSTR($TAC_BLOCK,51,8)</Set>
|
||
<Set>TAC_OTX_DT=SUBSTR($TAC_BLOCK,59,8)</Set>
|
||
<Set>TAC_OTX_TM=SUBSTR($TAC_BLOCK,67,6)</Set>
|
||
<Set>TAC_CRD_BAL=SUBSTR($TAC_BLOCK,73,8)</Set>
|
||
<!-- 验证交易TAC -->
|
||
<Call package="LPS_PUB" function="CheckTransactionTAC">
|
||
<Input>SUB_AC|TAC_AMT|TAC_POS_TX_TYP|TAC_OCSM_TRM|TAC_OCSM_TRM_SEQ|TAC_OTX_DT|TAC_OTX_TM|TAC|</Input>
|
||
<Output>MSG_CD|</Output>
|
||
</Call>
|
||
<If condition="NOT(IS_SUCC(@O.MSG_CD))"> <!-- 生成交易TAC失败 -->
|
||
<Set>~MSG_DAT=生成交易TAC失败</Set>
|
||
<Exec func="PUB:GWASetMsg">
|
||
<Arg name="MsgCd" value="@O.MSG_CD"/>
|
||
</Exec>
|
||
<Return/>
|
||
</If>
|
||
</If>
|
||
|
||
<!--检查该笔撤销交易是否已存在-->
|
||
<Exec func="PUB:ReadRecord" error="IGNORE">
|
||
<Arg name="SqlCmd" value="CHK_LPSTRVS_INFO"/>
|
||
</Exec>
|
||
<If condition="~RetCod=2">
|
||
<Set>~MSG_DAT=成功的消费撤销请求不存在</Set>
|
||
<Exec func="PUB:GWASetMsg">
|
||
<Arg name="MsgCd" value="LPS00000"/>
|
||
</Exec>
|
||
<Return/>
|
||
</If>
|
||
<ElseIf condition="~RetCod!=0">
|
||
<Exec func="PUB:GWASetMsg">
|
||
<Arg name="MsgCd" value="LPS00001"/>
|
||
<Arg name="MsgDat" value="数据库操作失败"/>
|
||
</Exec>
|
||
<Return/>
|
||
</ElseIf>
|
||
<!-- 平台记录此笔交易撤销失败 -->
|
||
<!--If condition="IS_EQUAL_STRING($BIL_STS,2)">
|
||
<Set>~MSG_DAT=此笔交易撤销失败,无需撤销冲正</Set>
|
||
<Exec func="PUB:CommitWork"/>
|
||
<Exec func="PUB:GWASetMsg">
|
||
<Arg name="MsgCd" value="LPS00000"/>
|
||
</Exec>
|
||
<Return/>
|
||
</If-->
|
||
<!-- 平台记录此笔交易撤销交易已冲正 -->
|
||
<!--If condition="IS_EQUAL_STRING($BIL_STS,3)">
|
||
<Set>~MSG_DAT=此笔交易撤销交易已冲正,无需再次冲正</Set>
|
||
<Exec func="PUB:GWASetMsg">
|
||
<Arg name="MsgCd" value="LPS00000"/>
|
||
</Exec>
|
||
<Return/>
|
||
</If-->
|
||
|
||
|
||
<!-- 调用用户-检查商户状态 -->
|
||
<Set>INP_DAT.MERC_ID=$OCSM_MERC</Set>
|
||
<Set>INP_DAT.MERC_TX_TYP=07</Set>
|
||
<Set>INP_DAT.TX_CD=2111019</Set>
|
||
<Set>INP_DAT.MERC_CAP_TYP=1</Set>
|
||
<Set>INP_DAT.DC_PTY_FLG=C</Set>
|
||
<Call package="URM_PUB" function="CHK_MER_STS">
|
||
<Input>INP_DAT|GWA|</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>
|
||
<!--查询卡片信息-->
|
||
<Exec func="PUB:ReadRecord" error="IGNORE">
|
||
<Arg name="SqlCmd" value="QRY_LPSTCRD_MAINAC"/>
|
||
</Exec>
|
||
<If condition="~RetCod!=0">
|
||
<Exec func="PUB:GWASetMsg">
|
||
<Arg name="MsgCd" value="LPS19999"/>
|
||
<Arg name="MsgDat" value="系统错误"/>
|
||
</Exec>
|
||
<Return/>
|
||
</If>
|
||
|
||
<!-- 消费撤销冲正-账务处理 开始 -->
|
||
<!-- 调用账户-子账户支出冲正 -->
|
||
<Set>S_PAW.OLD_APP_SEQ_NO=$SUB_AC</Set>
|
||
<Set>S_PAW.OLD_JRN_NO=$JRN_NO</Set>
|
||
<Set>S_PAW.OLD_AC_DT=$AC_DT</Set>
|
||
<Set>S_PAW.OLD_CAP_TYP=1</Set>
|
||
<Set>S_PAW.OLD_AMT=AMTSIMPLEFMT($OTX_AMT)</Set>
|
||
<Exec func="ACM:PurseAccountWithdrawCancel">
|
||
<Arg name="_I_GWA" value="GWA"/>
|
||
<Arg name="_I_INP_DAT" value="S_PAW"/>
|
||
<Arg name="_O_OUT_DAT" value="S_PAW_OUT"/>
|
||
</Exec>
|
||
<If condition="NOT(IS_SUCC(@O.MSG_CD))"> <!--子账户支出冲正失败 -->
|
||
<Set>~MSG_DAT=子账户支取冲正失败</Set>
|
||
<Exec func="PUB:GWASetMsg">
|
||
<Arg name="MsgCd" value="@O.MSG_CD"/>
|
||
</Exec>
|
||
<Return/>
|
||
</If>
|
||
|
||
<!-- 调用账户-主账户存入冲正 -->
|
||
<Set>M_MAD.OLD_AC_NO=$MAIN_AC</Set>
|
||
<Set>M_MAD.OLD_JRN_NO=$JRN_NO</Set>
|
||
<Set>M_MAD.OLD_CAP_TYP=1</Set>
|
||
<Set>M_MAD.OLD_AMT=AMTSIMPLEFMT($OTX_AMT)</Set>
|
||
<Set>M_MAD.OLD_AC_DT=$AC_DT</Set>
|
||
<Exec func="ACM:MainAccountDepositCancel">
|
||
<Arg name="_I_GWA" value="GWA"/>
|
||
<Arg name="_I_INP_DAT" value="M_MAD"/>
|
||
<Arg name="_O_OUT_DAT" value="M_MAD_OUT"/>
|
||
</Exec>
|
||
<If condition="NOT(IS_SUCC(@O.MSG_CD))"> <!--主账户存入冲正失败 -->
|
||
<Set>~MSG_DAT=主账户存入冲正失败</Set>
|
||
<Exec func="PUB:GWASetMsg">
|
||
<Arg name="MsgCd" value="@O.MSG_CD"/>
|
||
</Exec>
|
||
<Return/>
|
||
</If>
|
||
<!-- 消费撤销冲正-账务处理结束 -->
|
||
|
||
<!-- 更新撤销记录为已冲正 -->
|
||
<Set>BIL_STS=3</Set>
|
||
<Exec func="PUB:ExecSql" error="IGNORE">
|
||
<Arg name="SqlCmd" value="UPD_LPSTRVS_STS"/>
|
||
</Exec>
|
||
<If condition="~RetCod!=0">
|
||
<Exec func="PUB:GWASetMsg">
|
||
<Arg name="MsgCd" value="LPS20078"/>
|
||
<Arg name="MsgDat" value="更新消费撤销状态失败"/>
|
||
</Exec>
|
||
<Return/>
|
||
</If>
|
||
|
||
<Exec func="PUB:GWASetMsg">
|
||
<Arg name="MsgCd" value="LPS00000"/>
|
||
</Exec>
|
||
|
||
</FlowCtrl>
|
||
</Transaction>
|
||
|
||
</Application>
|