116 lines
3.6 KiB
XML
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> |