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

165 lines
5.7 KiB
XML

<?xml version='1.0' encoding='UTF-8'?>
<Application name="lps" trace="yes">
<!--业务开通V1.0-->
<Transaction code="2130010" log_switch="1">
<!-- 更新钱包临时表 -->
<DynSentence name="UPD_LPSTSUBAC_INFO">
<Sentence>
UPDATE LPSTSUBAC SET SUB_AC=? WHERE MBL_NO=?
</Sentence>
<Fields>SUB_AC|MBL_NO|</Fields>
</DynSentence>
<FlowCtrl>
<!--交易设置-->
<Set>CMD_CD=SUBSTR($PIN_DAT,1,2)</Set> <!--命令类型-->
<Set>SUB_AC=SUBSTR($PIN_DAT,7,20)</Set> <!--卡片应用序列号-->
<!-- 登记钱包序列号临时表 -->
<Set>CRD_VER=00</Set>
<Exec func="PUB:GWASetMsg">
<Arg name="MsgCd" value="LPS00000"/>
</Exec>
<!--报文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"/>
<Arg name="MsgDat" value="MAC校验失败"/>
</Exec>
<Return/>
</If>
-->
<!--报文解析-->
<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.MBL_NO=$MBL_NO</Set>
<Set>INP_DAT.OPN_BUS_CNL=$GWA.BUS_CNL</Set>
<!--主账户开户-->
<Call package="URM_PUB" function="OPEN_USER">
<Input>GWA|INP_DAT|</Input>
<Output>OUT_DAT|MSG_CD|</Output>
</Call>
<If condition="IS_SUCC(@O.MSG_CD)">
<!--手机支付账户开户成功-->
<Set>RSL_CD=00</Set> <!--开户结果 00:成功;01:失败-->
<Exec func="PUB:GWASetMsg">
<Arg name="MsgCd" value="LPS00000"/>
</Exec>
</If>
<Else>
<If condition="@O.MSG_CD=URM20013"> <!--已经开户-->
<!--手机支付账户已经开户-->
<Set>RSL_CD=00</Set>
</If>
<Else>
<!--如果当天销户后再次发起开户,则短信提示用户-->
<!--If condition="@O.MSG_CD=URMXXXXX">
<Set>SMS_CD=LPS005</Set>
<Call package="LPS_PUB" function="SendShortMessage"/>
</If-->
<!--手机支付账户开户失败-->
<Set>RSL_CD=01</Set>
<Exec func="PUB:GWASetMsg">
<Arg name="MsgCd" value="@O.MSG_CD"/>
</Exec>
</Else>
</Else>
<!--交易设置-->
<Set>CMD_CD=03</Set>
<Set>SUB_CMD_CD=@O.STK_AREA.SUB_CMD_CD</Set>
<Set>CRD_JRN_NO=@O.STK_AREA.CRD_JRN_NO</Set>
<!--下行报文组织-->
<Call package="LPS_PUB" function="MessageBuild">
<Output>BK_TXN_DAT|MSG_CD|</Output>
</Call>
<If condition="NOT(IS_SUCC(@O.MSG_CD))">
<If condition="IS_SUCC($GWA.MSG_CD)">
<Exec func="PUB:GWASetMsg">
<Arg name="MsgCd" value="@O.MSG_CD"/>
<Arg name="MsgDat" value="报文组织失败"/>
</Exec>
</If>
<Return/>
</If>
<!--生成报文MAC-->
<Call package="LPS_PUB" function="CreateMessageMAC">
<Input>SUB_AC|@O.BK_TXN_DAT|</Input>
<Output>BK_TXN_DAT|MSG_CD|</Output>
</Call>
<If condition="NOT(IS_SUCC(@O.MSG_CD))">
<If condition="IS_SUCC($GWA.MSG_CD)">
<Exec func="PUB:GWASetMsg">
<Arg name="MsgCd" value="@O.MSG_CD"/>
<Arg name="MsgDat" value="生成报文MAC失败"/>
</Exec>
</If>
<Return/>
</If>
<!--设置返回报文-->
<Set>BK_TXN_DAT=@O.BK_TXN_DAT</Set>
<!--下发业务开通结果指令-->
<Set>SMS_CD=LPS800</Set>
<Call package="LPS_PUB" function="SendShortMessage"/>
<!-- 插入应用序列号临时表 -->
<Exec func="PUB:InsertRecord">
<Arg name="TblNam" value="LPSTSUBAC"/>
</Exec>
<If condition="~RetCod=1"> <!-- 已经开过户 -->
<!-- 更新卡片序列号 -->
<Exec func="PUB:ExecSql">
<Arg name="SqlCmd" value="UPD_LPSTSUBAC_INFO"/>
</Exec>
<If condition="~RetCod!=0">
<Exec func="PUB:GWASetMsg">
<Arg name="MsgCd" value="LPS00001"/>
<Arg name="MsgDat" value="数据库操作失败"/>
</Exec>
<Return/>
</If>
</If>
<ElseIf condition="~RetCod!=0">
<Exec func="PUB:GWASetMsg">
<Arg name="MsgCd" value="LPS00001"/>
<Arg name="MsgDat" value="数据库操作失败"/>
</Exec>
<Return/>
</ElseIf>
<!-- 调用营销工具 所要的值-->
<Set>INP_MKM_SUB.MBL_NO=$MBL_NO</Set>
<Set>INP_MKM_SUB.USR_NO=@O.OUT_DAT.USR_NO</Set>
<Set>INP_MKM_SUB.TX_CD=$GWA.TX_CD</Set>
<Set>INP_MKM_SUB.BUS_CNL=$GWA.BUS_CNL</Set>
<Set>INP_MKM_SUB.SYS_CNL=$GWA.SYS_CNL</Set>
</FlowCtrl>
</Transaction>
</Application>