Files
ctg-app-ui/rpm/etc/pkg/CreateToken_PKG.XML
2021-01-12 22:04:24 +08:00

116 lines
3.6 KiB
XML

<?xml version="1.0" encoding='UTF-8'?>
<Root>
<!--生成订单对应令牌-->
<Function name="CreateToken">
<Input>ORD_INF|GWA|</Input>
<Output>MSG_CD|MSG_DAT|SESS_ID|</Output>
<!--查询令牌信息-->
<DynSentence name="QRY_TOKEN">
<Sentence>
SELECT SESS_ID FROM RPMTTOKN WHERE CRE_DT=? AND ORD_NO=?
FOR
UPDATE
</Sentence>
<Fields>CRE_DT|ORD_NO|</Fields>
</DynSentence>
<!--查询订单信息-->
<DynSentence name="QRY_ORDERINF">
<Sentence>
SELECT ORD_STS,ORD_NO FROM RPMTORD WHERE CRE_DT=? AND
ORD_NO=? FOR UPDATE
</Sentence>
<Fields>CRE_DT|ORD_NO|</Fields>
</DynSentence>
<!--更新令牌信息-->
<DynSentence name="UPD_RPMTTOKN">
<Sentence>
CRE_DT=? AND ORD_NO=?
</Sentence>
<Fields>CRE_DT|ORD_NO|</Fields>
</DynSentence>
<Process>
<Set>CRE_DT=$ORD_INF.CRE_DT</Set>
<Set>ORD_NO=$ORD_INF.ORD_NO</Set>
<Exec func="PUB:ReadRecordBind">
<Arg name="SqlCmd" value="QRY_ORDERINF" />
</Exec>
<If condition="~RetCod=2">
<Set>MSG_CD=RPM22201</Set>
<Set>MSG_DAT=订单不存在</Set>
<Return />
</If>
<ElseIf condition="~RetCod!=0">
<Set>MSG_CD=RPM13001</Set>
<Set>MSG_DAT=查询订单错</Set>
<Return />
</ElseIf>
<!-- 风控检查:主要做商户和用户是否黑名单 -->
<!--
Set>INP_DAT.TX_CD=2011102</Set>
<Set>INP_DAT.TX_TYP=$GWA.TX_TYP</Set>
<Set>INP_DAT.BUS_CNL=$GWA.BUS_CNL</Set>
<Set>INP_DAT.TX_DT=$GWA.TX_DT</Set> <Set>INP_DAT.RUL_FLG=0</Set>
<Set>INP_DAT.PAY_AC_NO=100</Set>
<Set>INP_DAT.PAY_AC_TYP=$AC_NO</Set>
<Set>INP_DAT.PAY_USR_NO=$USR_NO</Set>
<Set>INP_DAT.PAY_REAL_NM_FLG=01</Set>
<Set>INP_DAT.STL_AC_TYP=800</Set>
<Set>INP_DAT.STL_USR_NO=$MERC_USR_NO</Set>
<Set>INP_DAT.STL_AC_NO=$MERC_USR_NO</Set>
<Set>INP_DAT.STL_REAL_NM_FLG=01</Set> <Exec func="RRC:ChkRtmRsk">
<Arg name="_I_INP_DAT" value="INP_DAT" /> <Arg name="_O_OUT_DAT"
value="OUT_DAT" /> </Exec> <If
condition="IS_SUCC(@O.OUT_DAT.MSG_CD)=0"> <Exec
func="PUB:GWASetMsg"> <Arg name="MsgCd" value="@O.MSG_CD" /> </Exec>
<Return /> </If> <Set>INP_DAT=</Set
-->
<!--
If condition="IS_NOEQUAL_STRING($ORD_STS,#PREREC_STS)">
<Set>MSG_CD=RPM22202</Set> <Set>MSG_DAT=该状态不能申请新令牌</Set> <Return />
</If
-->
<!--时间戳-->
<Set>REC_ADD_DTTM=$GWA.TX_TM</Set>
<!--交易码-->
<Set>TX_CD=$GWA.TX_CD</Set>
<!--交易状态-->
<Set>MERC_REQ_STS=1</Set>
<Exec func="PUB:ReadRecordBind">
<Arg name="SqlCmd" value="QRY_TOKEN" />
</Exec>
<If condition="~RetCod=2">
<Set>SESS_ID=STRCAT(SUBSTR($REC_ADD_DTTM,1,8),$ORD_NO)</Set>
<Set>RDM_NUM=GETRANDOM(6)</Set>
<Set>SESS_ID=STRCAT($SESS_ID,$RDM_NUM)</Set>
<Exec func="PUB:InsertRecord" error="IGNORE">
<Arg name="TblNam" value="RPMTTOKN" />
</Exec>
<If condition="~RetCod!=0">
<Set>MSG_CD=RPM13001</Set>
<Set>MSG_DAT=记录商户请求标识失败,请重新申请商户标识</Set>
<Return />
</If>
<Set>MSG_CD=RPM00000</Set>
</If>
<ElseIf condition="~RetCod=0">
<Exec func="PUB:UpdateRecord">
<Arg name="TblNam" value="RPMTTOKN" />
<Arg name="CndSts" value="UPD_RPMTTOKN" />
</Exec>
<If condition="~RetCod!=0">
<Set>MSG_CD=RPM13001</Set>
<Set>MSG_DAT=记录商户请求标识失败,请重新申请商户标识</Set>
<Return />
</If>
<Set>MSG_CD=RPM00000</Set>
</ElseIf>
</Process>
</Function>
</Root>