240 lines
9.0 KiB
XML
240 lines
9.0 KiB
XML
<?xml version='1.0' encoding='UTF-8'?>
|
|
<Application name="lps" trace="yes">
|
|
|
|
<!--手机钱包卡开通V1.1-->
|
|
<Transaction code="2130030" log_switch="1">
|
|
|
|
<DynSentence name="QRY_ACMTACIN_INFO"> <!--查询用户主账号信息-->
|
|
<Sentence>
|
|
SELECT AC_PROV,AC_CITY,AC_NO MAIN_AC FROM ACMTACIN WHERE USR_NO=?
|
|
</Sentence>
|
|
<Fields>USR_NO|</Fields>
|
|
</DynSentence>
|
|
|
|
<FlowCtrl>
|
|
<!--交易设置-->
|
|
<Set>CMD_CD=SUBSTR($PIN_DAT,1,2)</Set> <!--命令类型-->
|
|
<Set>SUB_AC=SUBSTR($PIN_DAT,9,20)</Set> <!--卡片应用序列号-->
|
|
<Set>CRD_VER=01</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"/>
|
|
<Arg name="MsgDat" value="报文解析失败"/>
|
|
</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"/>
|
|
<Arg name="MsgDat" value="交易成功"/>
|
|
</Exec>
|
|
<Exec func="PUB:CommitWork"/>
|
|
</If>
|
|
<Else>
|
|
<If condition="@O.MSG_CD=URM20013"> <!--已经开户-->
|
|
<!--设置组件输入数据-->
|
|
<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))">
|
|
<!--MSG_DAT=主账户状态不正常-->
|
|
<Set>RSL_CD=01</Set> <!--结果 00:成功;01:失败-->
|
|
<Exec func="PUB:GWASetMsg">
|
|
<Arg name="MsgCd" value="@O.MSG_CD"/>
|
|
</Exec>
|
|
<Goto>END</Goto>
|
|
</If>
|
|
|
|
<Set>RSL_CD=00</Set>
|
|
<Set>IMSI_FLG=1</Set> <!--是否需要更新IMSI 0:不需要; 1:需要-->
|
|
|
|
<!--查询用户主账户基本信息-->
|
|
<Exec func="URM:QueryUserBaseInfo" error="IGNORE">
|
|
<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="~RetCod!=0">
|
|
<!--查询用户基本资料失败-->
|
|
<Set>RSL_CD=01</Set>
|
|
<Exec func="PUB:GWASetMsg">
|
|
<Arg name="MsgCd" value="LPS19999"/>
|
|
</Exec>
|
|
<Goto>END</Goto>
|
|
</If>
|
|
|
|
<!--判断查询是否成功-->
|
|
<If condition="NOT(IS_SUCC(@O.MSG_CD))">
|
|
<!--查询用户基本资料失败-->
|
|
<Set>RSL_CD=01</Set>
|
|
<Exec func="PUB:GWASetMsg">
|
|
<Arg name="MsgCd" value="@O.MSG_CD"/>
|
|
</Exec>
|
|
<Goto>END</Goto>
|
|
</If>
|
|
|
|
<Set>USR_NO=@O.OUT_DAT.USR_NO</Set>
|
|
<!--查询用户主账户基本信息-->
|
|
<Exec func="PUB:ReadRecord" error="IGNORE">
|
|
<Arg name="SqlCmd" value="QRY_ACMTACIN_INFO"/>
|
|
</Exec>
|
|
<If condition="~RetCod!=0">
|
|
<!--查询用户基本资料失败-->
|
|
<Set>RSL_CD=01</Set>
|
|
<Exec func="PUB:GWASetMsg">
|
|
<Arg name="MsgCd" value="LPS19999"/>
|
|
</Exec>
|
|
<Goto>END</Goto>
|
|
</If>
|
|
|
|
<!-- 参数设置 -->
|
|
<Set>@O.OUT_DAT.AC_PROV=$AC_PROV</Set>
|
|
<Set>@O.OUT_DAT.AC_CITY=$AC_CITY</Set>
|
|
<Set>@O.OUT_DAT.MAIN_AC=$MAIN_AC</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>
|
|
<Goto>END</Goto>
|
|
</Else>
|
|
</Else>
|
|
|
|
<!--设置组件输入参数-->
|
|
<Set>CRD_TYP=A</Set> <!--卡片类型 A:2.4G卡 E:贴片卡-->
|
|
<Set>USR_NO=@O.OUT_DAT.USR_NO</Set> <!--内部用户号-->
|
|
<Set>MAIN_AC=@O.OUT_DAT.MAIN_AC</Set> <!--主账号-->
|
|
<Set>IMSI=@O.OUT_DAT.IMSI</Set> <!--IMSI-->
|
|
<Set>AC_PROV=@O.OUT_DAT.AC_PROV</Set> <!--账户归属省-->
|
|
<Set>AC_CITY=@O.OUT_DAT.AC_CITY</Set> <!--账户归属城市-->
|
|
<If condition="$IMSI_FLG=1"> <!--判断是否需要重新查询用户IMSI号-->
|
|
<Delete>IMSI</Delete>
|
|
</If>
|
|
|
|
<!--手机钱包卡开户-->
|
|
<Call package="LPS_PUB" function="OpenSubAccount">
|
|
<Input>GWA|MBL_NO|USR_NO|MAIN_AC|CRD_TYP|IMSI|CRD_VER|SUB_AC|AC_PROV|AC_CITY|</Input>
|
|
<Output>MSG_CD|</Output>
|
|
</Call>
|
|
<If condition="IS_SUCC(@O.MSG_CD)">
|
|
<!--子账户开户成功-->
|
|
<Set>RSL_CD=00</Set>
|
|
</If>
|
|
<Else>
|
|
<!--子账户开户失败-->
|
|
<Set>RSL_CD=01</Set>
|
|
<Exec func="PUB:GWASetMsg">
|
|
<Arg name="MsgCd" value="@O.MSG_CD"/>
|
|
</Exec>
|
|
</Else>
|
|
|
|
<Label>END</Label>
|
|
|
|
<!--交易设置-->
|
|
<Set>CMD_CD=13</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(@O.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"/>
|
|
|
|
<!--如果手机钱包开户成功,则短信通知用户-->
|
|
<If condition="$RSL_CD=00">
|
|
<Set>SMS_CD=LPS001</Set>
|
|
<Call package="LPS_PUB" function="SendShortMessage"/>
|
|
</If>
|
|
|
|
<!-- 调用营销工具 所要的值-->
|
|
<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>
|