This commit is contained in:
alawn
2021-01-14 00:24:00 +08:00
parent b79e3e731f
commit 2fab58fd44
24 changed files with 1312 additions and 1428 deletions
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+1
View File
@@ -8,6 +8,7 @@
<Param name = "maxThreads" value = "20"/> <!--最大接入量-->
<Param name = "secret" value = "HelloWorld"/> <!--密钥-->
<Param name = "contextName" value = "/api"/> <!--上下文-->
<Param name = "verifySign" value = "Y"/> <!--是否验签 -->
</Declare>
Binary file not shown.
+32 -103
View File
@@ -22,7 +22,7 @@
</DynSentence>
<DynSentence name="QryBisTmp">
<Sentence>
SELECT * FROM CAPBISTMP WHERE DSK_NAM=?
SELECT * FROM CAPHROTMP WHERE DSK_NAM=?
</Sentence>
<Fields>DSK_NAM</Fields>
</DynSentence>
@@ -87,10 +87,10 @@
<!--查询支付地信息 -->
<DynSentence name="QRY_CAPACCOUNTINF">
<Sentence>
SELECT BR_NO,ACCT_NO TAC_NO,ACCT_NAME,COST_ITEM FROM CAPACCOUNTINF
WHERE TITLE_ID = ? AND ENABLED = 'Y'
SELECT BR_NO,ACCT_NO TAC_NO,ACCT_NAME TAC_NAM,COST_ITEM ,ACCT_TYPE TAC_TYP FROM CAPACCOUNTINF
WHERE TITLE_ID = ? AND ENABLED = 'Y' AND BANK_CODE = ?
</Sentence>
<Fields>TITLE_ID|</Fields>
<Fields>TITLE_ID|CORG_NO|</Fields>
</DynSentence>
<FlowCtrl>
<Set>TXN_MOD=02</Set> <!-- 交易模式 01 批扣 02 批付 99 联机 -->
@@ -108,8 +108,6 @@
<Return/>
</If>
<Set>VER_NO=$VER_NO</Set>
<!--删除临时表-->
<Exec func="PUB:ExecSql" error="IGNORE">
<Arg name="SqlCmd" value="DelHroTmp"/>
@@ -128,22 +126,8 @@
<Return/>
</If>
<Set>VER_NO=$SUM.VER_NO</Set>
<!--Set>ORD_DT=$SUM.ORD_DT</Set-->
<!--Set>DSK_NO=$SUM.DSK_NO</Set-->
<Set>ORN_CNT1=$SUM.ORN_CNT1</Set>
<Set>ORN_AMT1=$SUM.ORN_AMT1</Set>
<Set>ORN_CNT2=$SUM.ORN_CNT2</Set>
<Set>ORN_AMT2=$SUM.ORN_AMT2</Set>
<If condition="IS_EQUAL_STRING($FIL_TYP,3,01)">
<Set>ORN_CNT=$ORN_CNT1</Set>
<Set>ORN_AMT=$ORN_AMT1</Set>
</If>
<Else>
<Set>ORN_CNT=$ORN_CNT2</Set>
<Set>ORN_AMT=$ORN_AMT2</Set>
</Else>
<Set>ORN_CNT=$SUM.TOTAL_COUNT</Set>
<Set>ORN_AMT=$SUM.TOTAL_AMOUNT</Set>
<Set>DSK_STS=1</Set>
<Set>CORG_TXN_MOD=$TXN_MOD</Set>
@@ -155,12 +139,12 @@
<Set>ORD_DT_TM=GETDATETIME()</Set>
<Set>CHK_MRE=1</Set>
<Set>TXN_AMT1=AMTPOWER($ORN_AMT,2)</Set>
<!--<Set>TXN_AMT1=AMTPOWER($ORN_AMT,2)</Set>-->
<Set>CAP_TYP=CAP_PAY_BAT</Set>
<Set>MERC_ID=$MERC_ID</Set>
<!-- 商户批量限额判断 -->
<!-- 客户限额判断 -->
<Call package="CEL" function="MERC_AMT_BAT_QTM_VERIFY">
<Input>CAP_TYP|TXN_AMT1|MERC_ID|</Input>
<Output>MSG_CD|EVT_TYP|EVT_DSC</Output>
@@ -212,7 +196,9 @@
<Exec func="PUB:RollbackWork"/>
<Return/>
</If>
<Set>MERC_LOG_NO=$REQUEST_ID</Set>
<Set>CYC_CD=CNY</Set>
<Set>CD_FLG=C</Set>
<While>
<Exec func="PUB:FetchCursor" error="IGNORE"/>
<If condition="~RetCod=2">
@@ -227,6 +213,7 @@
</ElseIf>
<Set>MERC_ID=$MERC_ID</Set>
<Set>MERC_ORD_NO=$REF_ID</Set>
<Set>COP_BUS_TYP=$COP_BUS_TYP</Set>
<Set>TXN_AMT3=AMTPOWER($TXN_AMT,2)</Set>
<!-- 商户实时限额判断 -->
@@ -256,65 +243,19 @@
</Else>
</If>
<!--Call 路由函数 代入卡号,返回CORG_NO-->
<Set>AC_NO=$CRD_NO</Set> <!--卡号-->
<Exec func="ATMPTC:GetCrdFlg">
<Arg name="Table" value="CMMTUFIT"/>
<Arg name="Trk2" value="$TRACK_2"/>
<Arg name="Trk3" value="$TRACK_3"/>
<Arg name="CrdNo" value="$AC_NO"/>
</Exec>
<!--支付地抬头验证-->
<Set>TITLE_ID=$TITLE_ID</Set>
<Exec func="PUB:ReadRecord" error="IGNORE">
<Arg name="SqlCmd" value="QRY_CAPACCOUNTINF"/>
</Exec>
<If condition="~RetCod=-2">
<Set>Rsp_Cd=80</Set>
<Set>Rsp_Msg=支付地抬头信息不存在</Set>
<Return/>
</If>
<If condition="~RetCod!=0">
<Set>Rsp_Cd=80</Set>
<Set>Rsp_Msg=交易异常</Set>
<Return/>
</If>
<!--查询联行号-->
<Exec func="PUB:ReadRecord" error="IGNORE">
<Arg name="SqlCmd" value="QryLBnkNo"/>
</Exec>
<If condition="~RetCod=2">
<Set>Rsp_Cd=31</Set>
<Set>Rsp_Msg=联行号不存在</Set>
<Exec func="PUB:RollbackWork"/>
<Return/>
</If>
<ElseIf condition="~RetCod=-1">
<Set>Rsp_Cd=31</Set>
<Set>Rsp_Msg=查询联行号失败</Set>
<Exec func="PUB:RollbackWork"/>
<Return/>
</ElseIf>
<Set>LBNK_NO=$LBNK_NO</Set>
<Set>AC_NO=$ACCT_NO</Set> <!--卡号-->
<Set>CRD_NO=$ACCT_NO</Set> <!--卡号-->
<!--所有参数由节点RTR_IN传进路由-->
<Set>RTR_IN.SBNK_TYP=$BNK_TYP</Set><!--路由在类找不到卡BIN的情况下,可以根据银行大选择机构-->
<Set>RTR_IN.LBNK_NO=$LBNK_NO</Set>
<Set>RTR_IN.ORD_TYP=$ORD_TYP</Set>
<Set>RTR_IN.PAY_TYP=$PAY_TYP</Set>
<Set>RTR_IN.AC_NO=$CRD_NO</Set>
<Set>RTR_IN.AC_NO=$ACCT_NO</Set>
<Set>RTR_IN.TXN_AMT=$TXN_AMT</Set>
<Set>RTR_IN.BNK_COD=$BNK_TYP</Set>
<Set>RTR_IN.TXN_CNL=$TXN_CNL</Set>
<Set>RTR_IN.TXN_CNL=HRO</Set>
<Set>RTR_IN.TXN_MOD=$TXN_MOD</Set>
<!-- 预留增加动态路由选择 -->
<Call package="RTR" function="RANDOM_SELECT_ORG">
<!--Input>GWA|ORD_TYP|PAY_TYP|AC_NO|TXN_AMT|BNK_COD|TXN_CNL</Input-->
@@ -329,7 +270,7 @@
<Set>CRD_NM=@O.RTR_OUT.CRD_NM</Set>
<Set>CORG_NO=@O.RTR_OUT.CORG_NO</Set>
<Set>LBNK_NO=@O.RTR_OUT.LBNK_NO</Set>
<Set>LBNK_NM=@O.RTR_OUT.LBNK_NM</Set>
<Set>LBNK_NAM=@O.RTR_OUT.LBNK_NM</Set>
<Set>UNION_FLG=@O.RTR_OUT.UNION_FLG</Set>
<Set>BNK_OUT=@O.RTR_OUT.BNK_OUT</Set>
<Set>ROUT_FLG=@O.RTR_OUT.ROUT_FLG</Set>
@@ -359,6 +300,18 @@
<Set>Rsp_Cd=00</Set>
</Else>
<!--查询合作机构信息-->
<Exec func="PUB:ReadRecord" error="IGNORE">
<Arg name="SqlCmd" value="QRY_CAPACCOUNTINF"/>
</Exec>
<If condition="~RetCod!=0">
<Set>Rsp_Cd=31</Set>
<Set>Rsp_Msg=支付地信息有误</Set>
<Exec func="PUB:RollbackWork"/>
<Return/>
</If>
<Set>TXN_AMT2=AMTPOWER($TXN_AMT,2)</Set>
<Set>TXN_MAK=PL</Set>
@@ -440,27 +393,8 @@
<Return/>
</If>
<Exec func="PUB:ReadRecord" error="IGNORE">
<Arg name="SqlCmd" value="QryCOP_BUS_TYP"/>
</Exec>
<If condition="~RetCod=2">
<Set>Rsp_Cd=31</Set>
<Set>Rsp_Msg=合作机构的接口信息未开通</Set>
<Exec func="PUB:RollbackWork"/>
<Return/>
</If>
<ElseIf condition="~RetCod!=0">
<Set>Rsp_Cd=80</Set>
<Set>Rsp_Msg=查询数据库失败</Set>
<Exec func="PUB:RollbackWork"/>
<Return/>
</ElseIf>
<If condition="INTCMP($BUS_OPN_FLG,4,0)">
<Set>Rsp_Cd=31</Set>
<Set>Rsp_Msg=合作机构的接口信息未开通</Set>
<Exec func="PUB:RollbackWork"/>
<Return/>
</If>
<Set>ACT_FLG=$ACT_FLG</Set>
<Set>ACT_FLG=PL</Set>
@@ -475,9 +409,6 @@
<Quote name="GET_CAP_ORD_NO"/>
<If condition="IS_NOEQUAL_STRING($VER_NO,V0000003)">
<Set>ID_TYP=01</Set><!--证件类型-->
</If>
<!--预记代收流水-->
<Exec func="PUB:InsertRecord" error="IGNORE">
<Arg name="TblNam" value="CAPTXNJNL"/>
@@ -500,11 +431,9 @@
<Delete>CUS_NAM</Delete>
<Delete>ID_NO</Delete>
<Delete>CRD_NO</Delete>
<Delete>CYC_CD</Delete>
<Delete>MERC_ORD_NO</Delete>
<Delete>TXN_AMT</Delete>
<Delete>AC_BNK_CD</Delete>
<Delete>CD_FLG</Delete>
<Delete>BUS_INF</Delete>
<Delete>Result</Delete>
<Delete>JRN_NO</Delete>
@@ -536,7 +465,7 @@
<Exec func="PUB:ReadRecord" error="IGNORE">
<Arg name="SqlCmd" value="VfyTxnAmt"/>
</Exec>
<If condition="DOUBLECMP($Dsk_Amt,4,$Txn_Amt)">
<If condition="DOUBLECMP($DSK_AMT,4,$TXN_AMT)">
<Set>Rsp_Cd=80</Set>
<Set>Rsp_Msg=流水总金额与文件总金额不符</Set>
<Exec func="PUB:RollbackWork"/>
+3 -24
View File
@@ -77,43 +77,22 @@
<Set>BAT_SUM=$BAT_ORN_AMT</Set>
<Set>BAT_CNT=$BAT_ORN_CNT</Set>
<If condition="IS_EQUAL_STRING($BAT_TYP,02)">
<Set>TXN_MOD=02</Set>
<Set>ORD_TYP=12</Set> <!--代付-->
<!--批量代付交易冻结商户资金-->
<Set>MERC_ID=$MERC_ID</Set>
<Set>TXN_MOD_FLG=02</Set>
<Set>CAP_TYP=CAP_PAY_BAT</Set>
<Set>BAT_AMT=$BAT_ORN_AMT</Set>
<Set>CROG_DSK_NO=$CORG_DSK_NO</Set>
<Call package="MERCACC" function="MERC_ACC_BAL_HOLD_CCRP10002">
<Input>MERC_ID|AC_DT|CAP_TYP|BAT_AMT|CROG_DSK_NO|RMK|CORG_NO|SYS_ID|TXN_CNL|</Input>
<Output>MSG_CD|MSG_INF|</Output>
</Call>
<Set>MSG_CD=@O.MSG_CD</Set>
<If condition="IS_SUCC(@O.MSG_CD)=0">
<If condition="IS_NOEQUAL_STRING($MSG_CD,URM90017)">
<Set>Rsp_Cd=80</Set>
<Set>Rsp_Msg=@O.MSG_INF</Set>
<Exec func="PUB:ExecSql" error="IGNORE">
<Arg name="SqlCmd" value="UPD_CAPBATINF_Rsp_Msg"/>
</Exec>
<Continue/>
</If>
</If>
</If>
<ElseIf condition="IS_EQUAL_STRING($BAT_TYP,01)">
<Set>TXN_MOD=01</Set>
<Set>ORD_TYP=11</Set> <!--代收-->
</ElseIf>
<Set>HTxnCd=STRCAT(sendBatch_,$CORG_NO)</Set>
<Exec func="PUB:CallThirdComm" error="IGNORE">
<Arg name="HTxnCd" value="$HTxnCd" />
<Arg name="ObjSvr" value="OFRTCAP1" />
<Arg name="In" value="CORG_DSK_NO|ORD_DT|TXN_MOD|ORD_TYP|TACC_TM|BAT_SUM|BAT_CNT|" />
<Arg name="In" value="CORG_NO|CORG_DSK_NO|ORD_DT|TXN_MOD|ORD_TYP|TACC_TM|BAT_SUM|BAT_CNT|" />
</Exec>
<If condition="~RetCod!=0">
<Set>Rsp_Cd=80</Set>
+29 -10
View File
@@ -22,11 +22,19 @@
<!--查询支付地信息 -->
<DynSentence name="QRY_CAPACCOUNTINF">
<Sentence>
SELECT 1 FROM CAPACCOUNTINF
SELECT count(1) CUS_NUM FROM CAPACCOUNTINF
WHERE TITLE_ID = ? AND ENABLED = 'Y'
</Sentence>
<Fields>TITLE_ID|</Fields>
</DynSentence>
<!--查询渠道是否停用 -->
<DynSentence name="QRY_CAPACCOUNTINF">
<Sentence>
SELECT count(1) CUS_NUM FROM CAPCNLINF
WHERE TXN_CNL = ? AND RLR_STS = '0'
</Sentence>
<Fields>TXN_CNL|</Fields>
</DynSentence>
<FlowCtrl>
@@ -34,6 +42,7 @@
<!-- 组合一些关键信息 -->
<Set>RCV_DT=$CRE_DT</Set>
<Set>RCV_TM=$CRE_TM</Set>
<Set>TXN_CNL=HRO</Set>
<Set>SYS_ID=$DISK_NO</Set> <!-- 系统定义 -->
@@ -44,6 +53,15 @@
<Set>DSK_NAM=$DISK_NO</Set><!--文件名称-->
<Set>TACC_TM=GETDATETIME()</Set>
<Set>FILE_PATH=STRCAT(GETENV(WORKDIR),$FILE_PATH)</Set>
<Exec func="PUB:ReadRecord" error="IGNORE">
<Arg name="SqlCmd" value="QRY_CAPACCOUNTINF"/>
</Exec>
<If condition="~RetCod=0">
<Set>Rsp_Cd=80</Set>
<Set>Rsp_Msg=渠道未配置或已停用</Set>
<Return/>
</If>
<If condition="IS_NOEQUAL_STRING($ORD_DT,SUBSTR($TACC_TM,1,8))">
<Set>Rsp_Cd=80</Set>
@@ -83,7 +101,7 @@
<Exec func="PUB:ReadRecord" error="IGNORE">
<Arg name="SqlCmd" value="QRY_CAPCUSINF"/>
</Exec>
<If condition="~RetCod=-2">
<If condition="~RetCod=2">
<Set>Rsp_Cd=80</Set>
<Set>Rsp_Msg=客户信息有误</Set>
<Return/>
@@ -99,14 +117,15 @@
<Exec func="PUB:ReadRecord" error="IGNORE">
<Arg name="SqlCmd" value="QRY_CAPACCOUNTINF"/>
</Exec>
<If condition="~RetCod=-2">
<Set>Rsp_Cd=80</Set>
<Set>Rsp_Msg=支付地抬头信息不存在</Set>
<Return/>
</If>
<If condition="~RetCod!=0">
<Set>Rsp_Cd=80</Set>
<Set>Rsp_Msg=交易异常</Set>
<Set>Rsp_Msg=支付地抬头信息有误</Set>
<Return/>
</If>
<If condition="INTCMP($CUS_NUM,4,2)">
<Set>Rsp_Cd=80</Set>
<Set>Rsp_Msg=支付地抬头信息有误</Set>
<Return/>
</If>
@@ -124,14 +143,14 @@
<!--判断文件是否存在-->
<Exec func="PUB:IsValidFile" error="IGNORE">
<Arg name="FileName"
value="STRCAT(GETENV(WORKDIR),/dat/cap/recv/,$DSK_NAM"/>
value="STRCAT(GETENV(WORKDIR),/dat/cap/recv/,$DSK_NAM)"/>
</Exec>
<If condition="OR( INTCMP($FIL_BYT,3,0), INTCMP(~RetCod,4,0) )">
<Set>Rsp_Cd=80</Set>
<Set>Rsp_Msg=解压失败</Set>
<Return/>
</If>
<Set>MD5_APPLY=$MD5</Set>
<Exec func="PUB:InvokeService" error="IGNORE">
<Arg name="ServiceName" value="204025"/>
<Arg name='Mode' value='NOTIFY'/>
+2 -2
View File
@@ -81,7 +81,7 @@
<Include file="etc/batch/TIMCHK_CTL.XML" desc="软路由定时服务"/>
<Include file="etc/batch/BAT_CSW.XML" desc="批量转码"/>
<Include file="etc/channel/icbc/Batch_ICBC.XML" desc="发送工行批量送盘"/>
<Include file="etc/channel/icbc/BATCH_ICBC.XML" desc="发送工行批量送盘"/>
<Include file="etc/channel/cmb/Batch_CMB.XML" desc="发送招行批量送盘"/>
</Application>
+1
View File
@@ -57,6 +57,7 @@
<Include file="etc/batch/TITLE_SYNC_CTL.XML"/> <!--支付地账户信息管理-->
<Include file="etc/batch/CARDINFO_QUERY_CTL.XML"/><!--银行卡信息查询-->
<Include file="etc/batch/CUSTOMER_SYNC_CTL.XML"/> <!--客户信息管理-->
<Include file="etc/batch/REFUND_QUERY_CTL.XML"/> <!--退票查询-->
<!--银联业务逻辑-->
+48
View File
@@ -0,0 +1,48 @@
<?xml version="1.0" encoding="UTF-8"?>
<Tran>
<!--退票信息查询 -->
<Transaction code="REFUND_QUERY" log_switch='1' desc="多页查询退票信息">
<DynSentence name="QRY_CAPCMBRFD_INF"><!--查询该支付地账户信息是否存在 -->
<Sentence>
SELECT DSK_NAM AS DISK_NO,'' AS TRANS_ID,'' REF_ID,'' BANK_REFID,EAC_NBR ACCT_NO,EAC_NAM ACCT_NAME,
TRS_DAT TRANS_DATE,'' TRANS_STS,TRS_AMT AMOUNT,RTN_COD REFUND_CODE,RTN_TXT REFUND_PS,
'' PAYER_ACCT_NO,'' PAYER_ACCT_NAME,TXT_CLT REMARK
FROM CAPCMBRFD
WHERE trs_dat between ? and ?
</Sentence>
<Fields>START_DATE|END_DATE|</Fields>
</DynSentence>
<FlowCtrl>
<!--清理数据 -->
<Delete>RSP_CD</Delete>
<Delete>RSP_MSG</Delete>
<Exec func="PUB:DumpETF" />
<Exec func="PUB:DBMultiQueryPage" error="IGNORE">
<Arg name="PageNo" value="$PAG_NO" />
<Arg name="SqlCmd" value="QRY_CAPCMBRFD_INF" />
<Arg name="RecNumPerPage" value="$PAG_NUM" />
</Exec>
<If condition="~RetCod=0">
<Set>RSP_CD=00</Set>
<Set>RSP_MSG=交易成功</Set>
<Return/>
</If>
<ElseIf condition="~RetCod=2">
<Set>RSP_CD=00</Set>
<Set>RSP_MSG=无查询结果</Set>
<Set>PAG_CNT=0</Set>
<Return />
</ElseIf>
<Else>
<Set>RSP_CD=80</Set>
<Set>RSP_MSG=查询出错</Set>
<Set>PAG_CNT=0</Set>
<Return />
</Else>
</FlowCtrl>
</Transaction>
</Tran>
+45 -121
View File
@@ -11,31 +11,23 @@
<!--查询有效路由信息-->
<DynSentence name="QRY_RULERTR">
<Sentence>
SELECT a.CORP_ORG,WEIGHT,RUL_LVL,RUL_NO,b.ROUT_FLG FROM CMMTORGN a, CMMTRTRULE_BATCH b
WHERE a.CORP_ORG = b.CORG_NO
AND ENB_FLG = '1'
AND RUL_STS = '2'
AND (TRA_CD = '%s' OR TRA_CD IS NULL or TRA_CD = '')
AND (CRD_FLG = '%s' OR CRD_FLG IS NULL or CRD_FLG = '')
AND (b.BNK_TYP = '%s' OR b.BNK_TYP IS NULL or b.BNK_TYP = '')
AND ((TO_NUMBER(NVL(ATM_LOW,0)) &lt;= '%s' AND TO_NUMBER(NVL(ATM_UP,99999999999)) &gt;= '%s') OR (TO_NUMBER(NVL(ATM_LOW,0)) = '0' AND TO_NUMBER(NVL(ATM_UP,99999999999)) = '99999999999'))
AND (DAT_LOW &lt;= '%s' AND DAT_UP &gt;= '%s')
AND (TIM_LOW &lt;= '%s' AND TIM_UP &gt;= '%s')
AND (TXN_CNL ='%s' OR TXN_CNL IS NULL or TXN_CNL='')
ORDER BY RUL_LVL
SELECT a.CORP_ORG,WEIGHT,RUL_LVL,RUL_NO FROM CMMTORGN a, CMMTRTRULE_BATCH b
WHERE a.CORP_ORG = b.CORG_NO
AND ENB_FLG = '1'
AND RUL_STS = '2'
AND (TRA_CD = '%s' OR TRA_CD IS NULL or TRA_CD = '')
AND (CRD_FLG = '%s' OR CRD_FLG IS NULL or CRD_FLG = '')
AND (b.BNK_TYP = '%s' OR b.BNK_TYP IS NULL or b.BNK_TYP = '')
AND ((TO_NUMBER(NVL(ATM_LOW,0)) &lt;= '%s' AND TO_NUMBER(NVL(ATM_UP,99999999999)) &gt;= '%s') OR
(TO_NUMBER(NVL(ATM_LOW,0)) = '0' AND TO_NUMBER(NVL(ATM_UP,99999999999)) = '99999999999'))
AND (DAT_LOW &lt;= '%s' AND DAT_UP &gt;= '%s')
AND (TIM_LOW &lt;= '%s' AND TIM_UP &gt;= '%s')
AND (TXN_CNL ='%s' OR TXN_CNL IS NULL or TXN_CNL='')
ORDER BY RUL_LVL
</Sentence>
<Fields>PAY_TYP|CRD_FLG|CRD_BNK_TYP|AMTMP|AMTMP|CRE_DT|CRE_DT|CRE_TM|CRE_TM|TXN_CNL|</Fields>
</DynSentence>
<!--查询有没有该渠道的路由信息-->
<DynSentence name="QRY_RULERTR_CNL">
<Sentence>
SELECT count(*) RUL_NUM FROM CMMTRTRULE_BATCH b
WHERE (TXN_CNL ='%s' OR TXN_CNL IS NULL or TXN_CNL='')
</Sentence>
<Fields>TXN_CNL|</Fields>
</DynSentence>
<!--通过BNK_COD查询相应的CORG_NO-->
<DynSentence name="QRY_CORG">
<Sentence>
@@ -55,9 +47,9 @@
<!--通过BNK_COD查询相应的联行号LBNK_NO-->
<DynSentence name="QRY_LBNKNO">
<Sentence>
select PTY_NM,PTY_ID from CAPCOMPTY where BKCTGY_CD = '%s' and PTY_KND = 'PBC'
select PTY_NM,PTY_ID,PTYALS_NM from CAPCOMPTY where BKCTGY_CD = '%s' and PTY_KND = 'PBC'
</Sentence>
<Fields>LBNK_COD</Fields>
<Fields>BNK_TYP</Fields>
</DynSentence>
<!--通过CORG_COD字段来判断路由是否支持此通道-->
@@ -67,15 +59,13 @@
</Sentence>
<Fields>CORG_COD|PAY_TYP</Fields>
</DynSentence>
<!-- 查询结算中心要求联行号 -->
<DynSentence name="QRY_SZFSLBNKNO">
<!--通过RUL_NO字段来查询路由信息-->
<DynSentence name="QRY_CMMTRTRULE_BATCH">
<Sentence>
select PTY_ID SZFS_LBNK_NO from CAPCOMPTY where PTY_KND='SZFS' AND BNK_TYP = '%s'
select ROUT_FLG from CMMTRTRULE_BATCH where RUL_NO = '%s'
</Sentence>
<Fields>SZFS_BNK_TYP</Fields>
<Fields>RUL_NO|</Fields>
</DynSentence>
<Process>
<!-- 取出RTR_IN节点参数 -->
<Set>SBNK_TYP=$RTR_IN.SBNK_TYP</Set>
@@ -92,18 +82,8 @@
<Arg name="Trk2" value="$TRACK_2"/>
<Arg name="Trk3" value="$TRACK_3"/>
<Arg name="CrdNo" value="$AC_NO"/>
<!--Arg name="cacheFlg" value="N"/--><!--参数cacheFlg若为N,则直接读卡表,不读取缓存-->
</Exec>
<!--如卡BIN未找到银行类型,则取银行大类-->
<!--
<If condition="IS_EQUAL_STRING($BNK_TYP,ZZZZ)">
<If condition="ISNULL($GWA.LBNK_CD)=0">
<Set>BNK_TYP=ADDCHAR($GWA.LBNK_CD,4,0,1)</Set>
</If>
</If>
-->
<If condition="ISNULL($SBNK_TYP)=0">
<Set>BNK_TYP=ADDCHAR($SBNK_TYP,4,0,1)</Set>
</If>
@@ -134,19 +114,7 @@
</Else>
<If condition="ISNULL($TXN_CNL)=1">
<Set>TXN_CNL=CAP</Set>
</If>
<!--判断路由表中 有没有该渠道的路由规则 若没有走老路由 -->
<Exec func="PUB:ReadRecord">
<Arg name="SqlCmd" value="QRY_RULERTR_CNL"/>
</Exec>
<If condition="~RetCod !=0">
<Set>Rsp_Cd=80</Set>
<Set>Rsp_Msg=查询渠道路由信息失败</Set>
</If>
<Set>RUL_NUM=$RUL_NUM</Set>
<If condition="INTCMP($RUL_NUM,3,0)">
<Set>TXN_CNL=CAP</Set>
<Set>TXN_CNL=HRO</Set>
</If>
@@ -169,69 +137,36 @@
<Return/>
</ElseIf>
<!-- 根据壹钱包要求传出BNK_OUT银行大类 -->
<!--查询路由信息-->
<Exec func="PUB:ReadRecord">
<Arg name="SqlCmd" value="QRY_CMMTRTRULE_BATCH"/>
</Exec>
<If condition="~RetCod !=0">
<Set>Rsp_Cd=80</Set>
<Set>Rsp_Msg=查询路由信息失败</Set>
<Return/>
</If>
<Set>BNK_OUT=$BNK_TYP</Set>
<Set>CORG_NO=$CORG_NO</Set>
<!-- 判断上游是否传送BNK_COD字段 -->
<If condition="ISNULL($BNK_COD)=0">
<Exec func="PUB:ReadRecord">
<Arg name="SqlCmd" value="QRY_CORG"/>
</Exec>
<If condition="~RetCod !=0">
<Set>Rsp_Cd=80</Set>
<Set>Rsp_Msg=此银行无对应的机构简称</Set>
<Set>CORG_COD=</Set>
</If>
<Set>CORG_COD=$PTYALS_NM</Set>
<If condition="IS_EQUAL_STRING($CORG_COD,$CORG_NO)">
<Set>UNION_FLG=0</Set>
<Set>BNK_OUT=$BNK_COD</Set>
<Set>LBNK_COD=$BNK_COD</Set>
</If>
<Else>
<Set>UNION_FLG=1</Set>
<Set>LBNK_COD=$BNK_COD</Set>
<Exec func="PUB:ReadRecord">
<Arg name="SqlCmd" value="QRY_BNKCOD"/>
</Exec>
<If condition="~RetCod !=0">
<Set>Rsp_Cd=80</Set>
<Set>Rsp_Msg=查询Bank_Code失败</Set>
</If>
<Set>BNK_OUT=$BKCTGY_CD</Set>
</Else>
<Set>BNK_SUB=CUTDATALENGTH($BNK_TYP,3)</Set>
<If condition="IS_EQUAL_STRING($BNK_SUB,410,610)">
<Set>BNK_SUB=307</Set>
</If>
<!-- 不传送BNK_COD字段就根据老的路由规则来判断(根据卡号) -->
<Else>
<Set>BNK_SUB=CUTDATALENGTH($BNK_TYP,3)</Set>
<If condition="IS_EQUAL_STRING($BNK_SUB,410,610)">
<Set>BNK_SUB=307</Set>
</If>
<!--<Exec func="PUB:ReadRecord">
<Arg name="SqlCmd" value="QRY_BNKCOD"/>
</Exec>
<If condition="~RetCod !=0">
<Set>Rsp_Cd=80</Set>
<Set>Rsp_Msg=查询Bank_Code失败</Set>
</If>
<Set>BNK_STS=$BKCTGY_CD</Set>-->
<Exec func="PUB:ReadRecord">
<Arg name="SqlCmd" value="QRY_BNKCOD"/>
</Exec>
<If condition="~RetCod !=0">
<Set>Rsp_Cd=80</Set>
<Set>Rsp_Msg=查询Bank_Code失败</Set>
</If>
<Set>BNK_STS=$BKCTGY_CD</Set>
<If condition="IS_EQUAL_STRING($BNK_SUB,$BNK_STS)">
<Set>UNION_FLG=0</Set>
<Set>BNK_OUT=$BNK_SUB</Set>
</If>
<Else>
<Set>UNION_FLG=1</Set>
</Else>
<!--是否跨行都给LBNK_COD-->
<Set>LBNK_COD=$BNK_SUB</Set>
</Else>
<!--是否跨行都给LBNK_COD-->
<Set>LBNK_COD=$BNK_SUB</Set>
<!-- 有传联行号就直接传出去,否则就查询出来 -->
<If condition="ISNULL($RTR_IN.LBNK_NO)=0">
@@ -249,15 +184,7 @@
<Set>LBNK_NM=$PTY_NM</Set> <!--联行名称-->
</Else>
<If condition="IS_EQUAL_STRING($CORG_NO,SZFS)">
<Set>SZFS_BNK_TYP=$BNK_TYP</Set>
<Exec func="PUB:ReadRecord">
<Arg name="SqlCmd" value="QRY_SZFSLBNKNO"/>
</Exec>
<If condition="~RetCod = 0">
<Set>LBNK_NO=$SZFS_LBNK_NO</Set>
</If>
</If>
<Exec func="PUB:DumpETF"/>
<!-- 把参数放入RTR_OUT节点 -->
<Set>RTR_OUT.BNK_TYP=$BNK_TYP</Set>
<Set>RTR_OUT.CRD_FLG=$CRD_FLG</Set>
@@ -265,11 +192,8 @@
<Set>RTR_OUT.CORG_NO=$CORG_NO</Set>
<Set>RTR_OUT.LBNK_NO=$LBNK_NO</Set>
<Set>RTR_OUT.LBNK_NM=$LBNK_NM</Set>
<Set>RTR_OUT.UNION_FLG=$UNION_FLG</Set>
<Set>RTR_OUT.BNK_OUT=$BNK_OUT</Set>
<Set>RTR_OUT.ROUT_FLG=$RTR_OUT</Set>
<Exec func="PUB:DumpETF"/>
<Set>RTR_OUT.ROUT_FLG=$ROUT_FLG</Set>
</Process>
</Function>
</Package>
+7
View File
@@ -33,6 +33,13 @@
<Set>CARD_NO=6216610200016587010</Set>
</ElseIf>
<ElseIf condition="IS_EQUAL_STRING($TESTNO,4)">
<Set>TESTNAME=REFUND_QUERY</Set>
<Set>START_DATE=20210101</Set>
<Set>END_DATE=20211201</Set>
<Set>PAG_NO=1</Set>
<Set>PAG_NUM=2</Set>
</ElseIf>
<Exec func="PUB:CallThirdService">
+84 -16
View File
@@ -13,7 +13,7 @@
</DynSentence>
<DynSentence name="UpdDskNo">
<Sentence>
UPDATE CAPTXNJNL SET CORG_DSK_NO = ?
UPDATE CAPTXNJNL SET CORG_DSK_NO = ?,trx_seq=lpad(rownum,8,0)
WHERE DSK_NAM=? AND ROUT_FLG=? AND ORD_DT=? AND CORG_NO=? AND TXN_MOD=? AND DSK_NAM_STS='0' AND
TXN_STS='U' AND CORG_DSK_NO = '0' AND ROWNUM &lt;= ?
</Sentence>
@@ -47,6 +47,13 @@
</Sentence>
<Fields>DSK_NAM|ORD_DT|CORG_NO|CORG_DSK_NO</Fields>
</DynSentence>
<DynSentence name="QryBnkInf"> <!--查询合作机构信息-->
<Sentence>
SELECT ENB_FLG,CORG_NM CORG_NO_NM,OUT_MERC_ID CORG_MERC_ID,OUT_TERM_ID CORG_TRM_NO,WORK_KEY
FROM CMMTORGN WHERE CORP_ORG=?
</Sentence>
<Fields>CORG_NO|</Fields>
</DynSentence>
<FlowCtrl>
<!--清理数据 -->
@@ -56,7 +63,9 @@
<!--读取参数配置 -->
<Quote name="Batch_Cfg_CMB"/>
<Quote name="Init_CAP01"/> <!--交易初始化-->
<Set>AC_DT=$GWA.AC_DT</Set>
<Set>BAT_TYP=$FIL_TYP</Set><!--交易模式 02 代付-->
<!--设置机构编号(招商) -->
<Set>CORG_NO=CMB</Set>
<Set>MAX_CNT=$PARA.MAX_CNT</Set>
@@ -127,7 +136,6 @@
<Exec func="PUB:RollbackWork"/>
<Return/>
</If>
<Set>BAT_STS=U</Set>
<Exec func="PUB:ExecSql" error="IGNORE">
<Arg name="SqlCmd" value="UpdAccVerSts"/>
</Exec>
@@ -209,7 +217,7 @@
</DynSentence>
<DynSentence name="QRYCAPTXNJNL"> <!--查询批次信息-->
<Sentence>
SELECT COST_ITEM,ROUT_FLG
SELECT TAC_TYP,ROUT_FLG
FROM CAPTXNJNL
WHERE DSK_NAM=?
AND CORG_DSK_NO=?
@@ -218,9 +226,9 @@
</DynSentence>
<DynSentence name="Qry_Export"> <!--招行代发工资/其它 查询打包记录 -->
<Sentence>
SELECT '%s' trxseq,
SELECT trx_seq trxseq,
ac_no accnbr,cus_nam accnam,TXN_AMT trsamt,'%s' trsdsp,'Y' bnkflg,
' ' cprref
' ' cprref,decode(ROUT_FLG,'SMALL','N','LARGE','Y','') fstflg
FROM CAPTXNJNL
WHERE DSK_NAM='%s'
AND CORG_NO = '%s'
@@ -230,11 +238,11 @@
AND DSK_NAM_STS='0'
AND TXN_STS='U'
</Sentence>
<Fields>CAP_ORD_NO|trsdsp|DSK_NAM|CORG_NO|CORG_DSK_NO|ORD_DT|TXN_MOD|</Fields>
<Fields>trsdsp|DSK_NAM|CORG_NO|CORG_DSK_NO|ORD_DT|TXN_MOD|</Fields>
</DynSentence>
<DynSentence name="Qry_Export_CW"> <!--招行超网代发工资/其它 查询打包记录 -->
<Sentence>
SELECT '%s' trxseq,
SELECT trx_seq trxseq,
ac_no eacnbr,cus_nam eacnam,TXN_AMT rcvamt,'%s' trsdsp,'Y' bnkflg,
' ' cprref,POSTSCRIPT trxtxt
FROM CAPTXNJNL
@@ -246,7 +254,7 @@
AND DSK_NAM_STS='0'
AND TXN_STS='U'
</Sentence>
<Fields>CAP_ORD_NO|trsdsp|DSK_NAM|CORG_NO|CORG_DSK_NO|ORD_DT|TXN_MOD|</Fields>
<Fields>trsdsp|DSK_NAM|CORG_NO|CORG_DSK_NO|ORD_DT|TXN_MOD|</Fields>
</DynSentence>
<!--更新该批次记录 -->
<DynSentence name="UpdJnlSts">
@@ -334,36 +342,40 @@
<Arg name="SqlCmd" value="QRYCAPTXNJNL"/>
</Exec>
<!--超网代发工资-->
<If condition="AND(IS_EQUAL_STRING($ROUT_FLG,01201),IS_EQUAL_STRING($COST_ITEM,SUPER))">
<If condition="AND(IS_EQUAL_STRING($ROUT_FLG,SUPER),IS_EQUAL_STRING($TAC_TYP,B))">
<Set>TX_COD=NTAGCSAI</Set>
<Set>trstyp=BYSA</Set><!--交易类型-->
<Set>trxrmk=$POSTSCRIPT</Set><!--交易摘要-->
<Set>sql_cmd=Qry_Export_CW</Set>
<Set>grp_nam=ntagcsaix2</Set>
<Set>busmod=</Set>
</If>
<!--超网代发其它-->
<ElseIf condition="AND(IS_EQUAL_STRING($ROUT_FLG,04900),IS_EQUAL_STRING($COST_ITEM,SUPER))">
<ElseIf condition="AND(IS_EQUAL_STRING($ROUT_FLG,SUPER),IS_EQUAL_STRING($TAC_TYP,N))">
<Set>TX_COD=NTAGCAPI</Set>
<Set>trstyp=BYSA</Set><!--交易类型-->
<Set>trxrmk=$POSTSCRIPT</Set><!--交易摘要-->
<Set>sql_cmd=Qry_Export_CW</Set>
<Set>grp_nam=ntagcsaix2</Set>
<Set>busmod=</Set>
</ElseIf>
<!--代发工资-->
<ElseIf condition="AND(IS_EQUAL_STRING($ROUT_FLG,01201),IS_NOEQUAL_STRING($COST_ITEM,SUPER))">
<ElseIf condition="AND(IS_NOEQUAL_STRING($ROUT_FLG,SUPER),IS_EQUAL_STRING($TAC_TYP,B))">
<Set>TX_COD=NTAGCSAL</Set>
<Set>trstyp=BYSA</Set><!--交易类型-->
<Set>nusage=$POSTSCRIPT</Set><!--用途-->
<Set>sql_cmd=Qry_Export</Set>
<Set>grp_nam=ntagcdtly1</Set>
<Set>busmod=</Set>
</ElseIf>
<!--代发其它-->
<ElseIf condition="AND(IS_EQUAL_STRING($ROUT_FLG,04900),IS_NOEQUAL_STRING($COST_ITEM,SUPER))">
<ElseIf condition="AND(IS_NOEQUAL_STRING($ROUT_FLG,SUPER),IS_EQUAL_STRING($TAC_TYP,N))">
<Set>TX_COD=NTAGCAPY</Set>
<Set>trstyp=BYSA</Set><!--交易类型-->
<Set>nusage=$POSTSCRIPT</Set><!--用途-->
<Set>sql_cmd=Qry_Export</Set>
<Set>grp_nam=ntagcdtly1</Set>
<Set>busmod=</Set>
</ElseIf>
<Else>
<Set>Rsp_Cd=80</Set>
@@ -417,9 +429,16 @@
<Arg name="RecordName" value="$grp_nam"/>
<Arg name="limit" value="$MAX_CNT"/>
</Exec>
<If condition="~RetCod=-1">
<Return/>
</If>
<Switch expression="~RetCod">
<Case value="-1">
<Return/>
</Case>
<Case value="2">
<Set>RSP_CD=80</Set>
<Set>RSP_MSG=无数据</Set>
<Return/>
</Case>
</Switch>
<Exec func="PUB:CallThirdComm" error="IGNORE">
<Arg name="HTxnCd" value="$TX_COD"/> <!-- 交易发往银行 -->
<Arg name="ObjSvr" value="SCMBPAY1"/><!-- 服务名 -->
@@ -870,5 +889,54 @@
<Delete>rd</Delete>
</FlowCtrl>
</Transaction>
<!--退票查询 -->
<Transaction code="qry_CMBRFD" log_switch='1' desc="招行退票查询">
<DynSentence name="qryAccMsg">
<Sentence>
select br_no brNo,acct_no acctNo from CAPACCOUNTINF
where bank_code='CMB' and enabled='Y'
</Sentence>
<Fields>|</Fields>
</DynSentence>
<FlowCtrl>
<!--查询账户信息-->
<Exec func="PUB:ReadRecord" error="IGNORE">
<Arg name="SqlCmd" value="qryAccMsg"/>
</Exec>
<Set>bbknbr=$brNo</Set><!--分行号-->
<Set>accnbr=$acct_no</Set><!--对公账号-->
<Set>trstyp=</Set><!--代发种类-->
<Set>bgndat=CALCDATE(GETDATE(),-,d,1)</Set><!--起始日期T-1-->
<Set>enddat=GETDATE()</Set><!--交易结束日期-->
<Set>reqnbr=</Set><!--流程实例号-->
<Set>ctnkey=</Set><!--续传字段-->
<!--调用退票查询接口-->
<Exec func="PUB:CallThirdComm" error="IGNORE">
<Arg name="HTxnCd" value="NTAGDRFD"/>
<Arg name="ObjSvr" value="SCMBPAY1"/> <!-- 交易发往银行 -->
</Exec>
<If condition="~RetCod !=0">
<Set>Rsp_Cd=80</Set>
<Set>Rsp_Msg=查询失败</Set>
<Return/>
</If>
<Else>
<!--登记退票查询表-->
<Exec func="PUB:InsertRecord"><!--登记招行临时表-->
<Arg name="TblNam" value="CAPCMBPERD"/>
<Arg name="GrpNam" value="ntagcqriz"/>
</Exec>
<If condition="~RetCod!=0">
<Return/>
</If>
</Else>
<!-- 交易成功 -->
<Set>RSP_CD=00</Set>
<Set>RSP_MSG=交易成功</Set>
</FlowCtrl>
</Transaction>
</Tran>
+2 -1
View File
@@ -22,7 +22,8 @@
</TableDeclare>
<Define desc="应用宏定义">
<Include file="etc/common/MACRO_BNK_CFG.XML"/>
<Include file="etc/common/MACRO_CAP_COMMON.XML"/>
</Define>
<Include file="etc/channel/cmb/OTA_CMB.XML" desc="招行直联测试"/>
+16 -6
View File
@@ -4,7 +4,7 @@
<Transaction code="ota_cmb" log_switch="1" desc="测试">
<FlowCtrl>
<Set>funcode=12344</Set>
<!-- <Set>funcode=12344</Set>
<Set>userid=12121</Set>
<Set>reqid=1231</Set>
<Set>modnbr=000002</Set>
@@ -15,12 +15,22 @@
<Set>trsamt=100.99</Set>
<Set>reqid=1231</Set>
<Set>reqid=1231</Set>
<Set>reqid=1231</Set>
<Set>reqid=1231</Set>-->
<Set>dsk_nam=1102ICBC00001000000000000012021010701</Set>
<Set>ROUT_FLG=LARGE</Set>
<Set>ORD_DT=20210107</Set>
<Set>TXN_MOD=02</Set>
<Set>MERC_ID=HRO</Set>
<Set>FIL_TYP=02</Set><!--交易模式 代付 02-->
<Exec func="PUB:CallThirdComm" error="IGNORE">
<Arg name="HTxnCd" value="DCPAYOPR"/>
<Arg name="ObjSvr" value="SCMBPAY1"/>
</Exec>
<!-- <Exec func="PUB:CallThirdComm" error="IGNORE">
<Arg name="HTxnCd" value="initBatch_CMB"/>
<Arg name="ObjSvr" value="OCMBPAY1"/>
</Exec>-->
<Exec func="PUB:CallThirdComm" error="IGNORE">
<Arg name="HTxnCd" value="sendBatch_CMB"/>
<Arg name="ObjSvr" value="OCMBPAY1"/>
</Exec>
</FlowCtrl>
</Transaction>
+19 -19
View File
@@ -48,10 +48,10 @@
<Quote name="WriteHead"/>
<!-- 报文头 -->
<WriteElement name="body">
<WriteElement name="ntbusmody" ETF_name="ntbusmody" necessary="yes" desc="模式信息接口">
<WriteElement name="ntbusmody" necessary="yes" desc="模式信息接口">
<WriteElement name="busmod" ETF_name="busmod" necessary="yes" desc="业务模式"/>
</WriteElement>
<WriteElement name="ntagcagcx1" ETF_name="ntagcagcx1" necessary="yes" desc="汇总单记录">
<WriteElement name="ntagcagcx1" necessary="yes" desc="汇总单记录">
<WriteElement name="begtag" ETF_name="begtag" necessary="yes" desc="批次开始标志 "/>
<WriteElement name="endtag" ETF_name="endtag" necessary="yes" desc="批次结束标志 "/>
<WriteElement name="reqnbr" ETF_name="reqnbr" necessary="no" desc="流程实例号 "/>
@@ -96,7 +96,7 @@
<Quote name="ReadHead"/>
<!-- 报文体 -->
<ReadElement name="body" necessary="no">
<ReadElement name="ntagcagcz1" ETF_name="ntagcagcz1" necessary="no" desc="结果返回">
<ReadElement name="ntagcagcz1" necessary="no" desc="结果返回">
<ReadElement name="reqnbr" ETF_name="reqnbr" necessary="yes" desc="流程实例号"/>
<ReadElement name="reqsta" ETF_name="reqsta" necessary="yes"
desc="请求状态 "/><!--AUT 等待审批、NTE 终审完毕、BNK 银行处理中、FIN 完成、OPR 数据接收中-->
@@ -110,10 +110,10 @@
<WriteElement name="CMS">
<Quote name="WriteHead"/>
<WriteElement name="body">
<WriteElement name="ntbusmody" ETF_name="ntbusmody" necessary="yes" desc="模式信息接口">
<WriteElement name="ntbusmody" necessary="yes" desc="模式信息接口">
<WriteElement name="busmod" ETF_name="busmod" necessary="yes" desc="业务模式"/>
</WriteElement>
<WriteElement name="ntagcagcx1" ETF_name="ntagcagcx1" necessary="yes" desc="汇总单记录">
<WriteElement name="ntagcagcx1" necessary="yes" desc="汇总单记录">
<WriteElement name="begtag" ETF_name="begtag" necessary="yes" desc="批次开始标志 "/>
<WriteElement name="endtag" ETF_name="endtag" necessary="yes" desc="批次结束标志 "/>
<WriteElement name="reqnbr" ETF_name="reqnbr" necessary="no" desc="流程实例号 "/>
@@ -158,7 +158,7 @@
<Quote name="ReadHead"/>
<!-- 报文体 -->
<ReadElement name="body" necessary="no">
<ReadElement name="ntagcagcz1" ETF_name="ntagcagcz1" necessary="no" desc="结果返回">
<ReadElement name="ntagcagcz1" necessary="no" desc="结果返回">
<ReadElement name="reqnbr" ETF_name="reqnbr" necessary="yes" desc="流程实例号"/>
<ReadElement name="reqsta" ETF_name="reqsta" necessary="yes"
desc="请求状态 "/><!--AUT 等待审批、NTE 终审完毕、BNK 银行处理中、FIN 完成、OPR 数据接收中-->
@@ -172,10 +172,10 @@
<WriteElement name="CMS">
<Quote name="WriteHead"/>
<WriteElement name="body">
<WriteElement name="ntbusmody" ETF_name="ntbusmody" necessary="yes" desc="模式信息接口">
<WriteElement name="ntbusmody" necessary="yes" desc="模式信息接口">
<WriteElement name="busmod" ETF_name="busmod" necessary="yes" desc="业务模式"/>
</WriteElement>
<WriteElement name="ntagcsaix1" ETF_name="ntagcsaix1" necessary="yes" desc="汇总单记录">
<WriteElement name="ntagcsaix1" necessary="yes" desc="汇总单记录">
<WriteElement name="yurref" ETF_name="yurref" necessary="yes" desc="业务参考号 "/>
<WriteElement name="bbknbr" ETF_name="bbknbr" necessary="yes" desc="付方分行号 "/>
<WriteElement name="payacc" ETF_name="payacc" necessary="yes" desc="付方账号 "/>
@@ -212,7 +212,7 @@
<Quote name="ReadHead"/>
<!-- 报文体 -->
<ReadElement name="body" necessary="no">
<ReadElement name="ntagcagcz1" ETF_name="ntagcagcz1" necessary="no" desc="结果返回">
<ReadElement name="ntagcagcz1" necessary="no" desc="结果返回">
<ReadElement name="reqnbr" ETF_name="reqnbr" necessary="yes" desc="流程实例号"/>
<ReadElement name="reqsta" ETF_name="reqsta" necessary="yes"
desc="请求状态 "/><!--AUT 等待审批、NTE 终审完毕、BNK 银行处理中、FIN 完成、OPR 数据接收中-->
@@ -228,10 +228,10 @@
<Quote name="WriteHead"/>
<!-- 报文体 -->
<WriteElement name="body">
<WriteElement name="ntbusmody" ETF_name="ntbusmody" necessary="yes" desc="模式信息接口">
<WriteElement name="ntbusmody" necessary="yes" desc="模式信息接口">
<WriteElement name="busmod" ETF_name="busmod" necessary="yes" desc="业务模式"/>
</WriteElement>
<WriteElement name="ntagcsaix1" ETF_name="ntagcsaix1" necessary="yes" desc="汇总单记录">
<WriteElement name="ntagcsaix1" necessary="yes" desc="汇总单记录">
<WriteElement name="yurref" ETF_name="yurref" necessary="yes" desc="业务参考号 "/>
<WriteElement name="bbknbr" ETF_name="bbknbr" necessary="yes" desc="付方分行号 "/>
<WriteElement name="payacc" ETF_name="payacc" necessary="yes" desc="付方账号 "/>
@@ -269,7 +269,7 @@
<Quote name="ReadHead"/>
<!-- 报文体 -->
<ReadElement name="body" necessary="no">
<ReadElement name="ntagcagcz1" ETF_name="ntagcagcz1" necessary="no" desc="结果返回">
<ReadElement name="ntagcagcz1" necessary="no" desc="结果返回">
<ReadElement name="reqnbr" ETF_name="reqnbr" necessary="yes" desc="流程实例号"/>
<ReadElement name="reqsta" ETF_name="reqsta" necessary="yes"
desc="请求状态 "/><!--AUT 等待审批、NTE 终审完毕、BNK 银行处理中、FIN 完成、OPR 数据接收中-->
@@ -285,7 +285,7 @@
<Quote name="WriteHead"/>
<!-- 报文体 -->
<WriteElement name="body">
<WriteElement name="ntagcinyx1" ETF_name="ntagcinyx1" necessary="yes" desc="查询">
<WriteElement name="ntagcinyx1" necessary="yes" desc="查询">
<WriteElement name="buscod" ETF_name="buscod" necessary="yes" desc="业务类型 "/>
<WriteElement name="yurref" ETF_name="yurref" necessary="yes" desc="业务参考号"/>
<WriteElement name="bgndat" ETF_name="bgndat" necessary="yes" desc="起始日期 "/>
@@ -300,7 +300,7 @@
<Quote name="ReadHead"/>
<!-- 报文体 -->
<ReadElement name="body" necessary="no">
<ReadElement name="ntagcinqz" ETF_name="ntagcinqz" necessary="no" desc="结果返回">
<ReadElement name="ntagcinqz" necessary="no" desc="结果返回">
<ReadElement name="reqnbr" ETF_name="reqnbr" necessary="no" desc="流程实例号 "/>
<ReadElement name="buscod" ETF_name="buscod" necessary="no" desc="业务类型 "/>
<ReadElement name="busmod" ETF_name="busmod" necessary="no" desc="业务模式 "/>
@@ -347,7 +347,7 @@
<Quote name="WriteHead"/>
<!-- 报文体 -->
<WriteElement name="body">
<WriteElement name="ntagcqriy" ETF_name="ntagcqriy" necessary="yes" desc="查询 单记录">
<WriteElement name="ntagcqriy" necessary="yes" desc="查询 单记录">
<WriteElement name="buscod" ETF_name="buscod" necessary="yes" desc="业务类型 "/>
<WriteElement name="yurref" ETF_name="yurref" necessary="yes" desc="业务参考号"/>
<WriteElement name="bthnbr" ETF_name="bthnbr" necessary="no" desc="续传字段 "/>
@@ -362,7 +362,7 @@
<Quote name="ReadHead"/>
<!-- 报文体 -->
<ReadElement name="body" necessary="no">
<ReadElement name="ntagcinqz" ETF_name="ntagcinqz" necessary="no"
<ReadElement name="ntagcinqz" necessary="no"
desc="结果返回"> <!-- 接口中 标注为多笔 需确认 -->
<ReadElement name="reqnbr" ETF_name="reqnbr" necessary="no" desc="流程实例号 "/>
<ReadElement name="buscod" ETF_name="buscod" necessary="no" desc="业务类型 "/>
@@ -420,7 +420,7 @@
<ReadElement name="cprref" ETF_name="cprref" necessary="no" desc="合作方流水号 "/>
<ReadElement name="rsv30z" ETF_name="rsv30z" necessary="no" desc="保留字段30 "/>
</ReadGroupElement>
<ReadElement name="ntagcqriy" ETF_name="ntagcqriy" necessary="no" desc="查询 单记录">
<ReadElement name="ntagcqriy" necessary="no" desc="查询 单记录">
<ReadElement name="buscod" ETF_name="buscod" necessary="yes" desc="业务类型 "/>
<ReadElement name="yurref" ETF_name="yurref" necessary="yes" desc="业务参考号"/>
<ReadElement name="bthnbr" ETF_name="bthnbr" necessary="no" desc="续传字段 "/>
@@ -437,7 +437,7 @@
<Quote name="WriteHead"/>
<!-- 报文体 -->
<WriteElement name="body">
<WriteElement name="ntagdrfdy1" ETF_name="ntagdrfdy1" necessary="yes" desc="查询 单记录">
<WriteElement name="ntagdrfdy1" necessary="yes" desc="查询 单记录">
<WriteElement name="bbknbr" ETF_name="bbknbr" necessary="yes" desc="分行号 "/>
<WriteElement name="accnbr" ETF_name="accnbr" necessary="yes" desc="对公账号 "/>
<WriteElement name="trstyp" ETF_name="trstyp" necessary="yes" desc="代发种类 "/>
@@ -473,7 +473,7 @@
<ReadElement name="rtntxt" ETF_name="rtntxt" necessary="no" desc="退票附言 "/>
<ReadElement name="rsv30z" ETF_name="rsv30z" necessary="no" desc="保留字30 "/>
</ReadGroupElement>
<ReadElement name="ntagdrfdy1" ETF_name="ntagdrfdy1" necessary="no" desc="续传结果 单记录">
<ReadElement name="ntagdrfdy1" necessary="no" desc="续传结果 单记录">
<ReadElement name="bbknbr" ETF_name="bbknbr" necessary="yes" desc="分行号 "/>
<ReadElement name="accnbr" ETF_name="accnbr" necessary="yes" desc="对公账号 "/>
<ReadElement name="trstyp" ETF_name="trstyp" necessary="yes" desc="代发种类 "/>
+977
View File
@@ -0,0 +1,977 @@
<?xml version="1.0" encoding="UTF-8"?>
<Tran>
<Transaction code="initBatch_ICBC" log_switch='1' desc="生成工行批次">
<Quote name="SQL_RcvConfirm" />
<DynSentence name="QryBatCnt"><!-- 查询该批次有多少记录 -->
<Sentence>
SELECT COUNT(*) BAT_CNT FROM CAPTXNJNL
WHERE DSK_NAM=? AND ORD_DT=? AND CORG_NO=? AND TXN_MOD=? AND DSK_NAM_STS='0' AND TXN_STS='U' AND CORG_DSK_NO = '0' AND ROWNUM &lt;= ?
</Sentence>
<Fields>DSK_NAM|ORD_DT|CORG_NO|TXN_MOD|MAX_CNT</Fields>
</DynSentence>
<DynSentence name="UpdDskNo">
<Sentence>
UPDATE CAPTXNJNL SET CORG_DSK_NO = ?
WHERE DSK_NAM=? AND ORD_DT=? AND CORG_NO=? AND TXN_MOD=? AND DSK_NAM_STS='0' AND TXN_STS='U' AND CORG_DSK_NO = '0' AND ROWNUM &lt;= ?
</Sentence>
<Fields>CORG_DSK_NO|DSK_NAM|ORD_DT|CORG_NO|TXN_MOD|MAX_CNT</Fields>
</DynSentence>
<DynSentence name="QryBatAmt">
<Sentence>
SELECT COUNT(*) BAT_CNT,NVL(SUM(TXN_AMT),0) BAT_SUM FROM CAPTXNJNL
WHERE DSK_NAM=? AND ORD_DT = ? AND CORG_NO=? AND CORG_DSK_NO = ? AND DSK_NAM_STS='0' AND TXN_STS='U'
</Sentence>
<Fields>DSK_NAM|ORD_DT|CORG_NO|CORG_DSK_NO</Fields>
</DynSentence>
<DynSentence name="InitTxnJnl"> <!--初始化流水信息(第三方交易码,批次号)-->
<Sentence>
UPDATE CAPTXNJNL SET TXN_CD = '204020', TTXN_CD = ?
WHERE DSK_NAM=? AND ORD_DT = ? AND CORG_NO=? AND CORG_DSK_NO = ? AND DSK_NAM_STS='0' AND TXN_STS='U'
</Sentence>
<Fields>TTXN_CD|DSK_NAM|ORD_DT|CORG_NO|CORG_DSK_NO</Fields>
</DynSentence>
<DynSentence name="UpdBatVerSts">
<Sentence>
UPDATE CAPBATINF SET BAT_VER_STS= '1'
WHERE DSK_NAM=? AND ORD_DT = ? AND CORG_NO=? AND CORG_DSK_NO = ?
</Sentence>
<Fields>DSK_NAM|ORD_DT|CORG_NO|CORG_DSK_NO</Fields>
</DynSentence>
<DynSentence name="UpdAccVerSts">
<Sentence>
UPDATE CAPTXNJNL SET ACC_VER_STS= 'S'
WHERE DSK_NAM=? AND ORD_DT = ? AND CORG_NO=? AND CORG_DSK_NO = ? AND DSK_NAM_STS='0' AND TXN_STS='U'
</Sentence>
<Fields>DSK_NAM|ORD_DT|CORG_NO|CORG_DSK_NO</Fields>
</DynSentence>
<FlowCtrl>
<!--清理数据 -->
<Delete>RSP_CD</Delete>
<Delete>RSP_MSG</Delete>
<Exec func="PUB:DumpETF" />
<!--读取参数配置 -->
<Quote name="Batch_Cfg_ICBC" />
<!--设置机构编号(工行) -->
<Set>CORG_NO=ICBC</Set>
<Set>MAX_CNT=$PARA.MAX_CNT</Set>
<!--查询合作机构检查-->
<Exec func="PUB:ReadRecord" error="IGNORE">
<Arg name="SqlCmd" value="QryBnkInf"/>
</Exec>
<If condition="~RetCod=2">
<Set>Rsp_Cd=31</Set>
<Set>Rsp_Msg=该合作机构不存在</Set>
<Return/>
</If>
<ElseIf condition="~RetCod!=0">
<Set>Rsp_Cd=80</Set>
<Set>Rsp_Msg=查询数据库失败</Set>
<Return/>
</ElseIf>
<If condition="INTCMP($ENB_FLG,4,1)">
<Set>Rsp_Cd=31</Set>
<Set>Rsp_Msg=该合作机构未启用</Set>
<Return/>
</If>
<While>
<Exec func="PUB:ReadRecord" error="IGNORE">
<Arg name="SqlCmd" value="QryBatCnt" />
</Exec>
<If condition="~RetCod=-1">
<Set>Rsp_Cd=80</Set>
<Set>Rsp_Msg=查询数据库失败</Set>
<Exec func="PUB:RollbackWork" />
<Return />
</If>
<Set>BAT_CNT=$BAT_CNT</Set>
<!--无数据 -->
<If condition="INTCMP($BAT_CNT,2,0)">
<Break />
</If>
<Set>BAT_TYP=$FIL_TYP</Set> <!-- 交易模式 01 批扣 02 批付 99 联机 -->
<Set>SND_DT=SUBSTR($TACC_TM,1,8)</Set>
<Set>SND_TM=SUBSTR($TACC_TM,9,6)</Set>
<!--获取批次号 -->
<Quote name="GET_CUP_BAT_NO" />
<Set>CORG_DSK_NO=STRCAT(GETDATETIME(),$CORG_DSK_NO)</Set>
<!--更新批次号-->
<Exec func="PUB:ExecSql" error="IGNORE">
<Arg name="SqlCmd" value="UpdDskNo"/>
</Exec>
<If condition="~RetCod != 0">
<Set>Rsp_Cd=80</Set>
<Set>Rsp_Msg=更新批次号失败</Set>
<Exec func="PUB:RollbackWork"/>
<Return/>
</If>
<!--查询金额笔数数-->
<Exec func="PUB:ReadRecord" error="IGNORE">
<Arg name="SqlCmd" value="QryBatAmt"/>
</Exec>
<If condition="~RetCod=-1">
<Set>Rsp_Cd=80</Set>
<Set>Rsp_Msg=查询数据库失败</Set>
<Exec func="PUB:RollbackWork"/>
<Return/>
</If>
<If condition="IS_EQUAL_STRING($TXN_MOD,02)"> <!--代付 BAT_STS 状态待确认-->
<Set>BAT_STS=U</Set>
<Exec func="PUB:ExecSql" error="IGNORE">
<Arg name="SqlCmd" value="UpdAccVerSts"/>
</Exec>
<If condition="~RetCod != 0">
<Set>Rsp_Cd=80</Set>
<Set>Rsp_Msg=更新批次号失败</Set>
<Exec func="PUB:RollbackWork"/>
<Return/>
</If>
</If>
<Else>
<Set>Rsp_Cd=80</Set>
<Set>Rsp_Msg=业务类型有误</Set>
<Exec func="PUB:RollbackWork" />
<Return />
</Else>
<Set>BAT_ORN_AMT=$BAT_SUM</Set>
<Set>BAT_ORN_CNT=$BAT_CNT</Set>
<!--根据汇路进行不同处理 -->
<!--帐户类型 -->
<Set>TTXN_CD=PAYPERCOL_BAT</Set> <!--批量5000对私代付接口 PAYPER -->
<Set>CORG_FIL_NAM=STRCAT(ICBCDF_DS,GETDATETIME(YYMMDD),$CORG_DSK_NO)
</Set>
<Set>CORG_FIL_NAM=STRCAT(ICBCDF_DG,GETDATETIME(YYMMDD),$CORG_DSK_NO)
</Set>
<!--初始化流水信息 -->
<Exec func="PUB:ExecSql" error="IGNORE">
<Arg name="SqlCmd" value="InitTxnJnl" />
</Exec>
<If condition="~RetCod != 0">
<Set>Rsp_Cd=80</Set>
<Set>Rsp_Msg=初始化流水信息失败</Set>
<Exec func="PUB:RollbackWork" />
<Return />
</If>
<Set>CORG_MERC_ID=$MERC_ID</Set> <!--单位编号 -->
<Set>Rsp_Cd=STRCAT( , )</Set>
<Set>Rsp_Msg=STRCAT( , )</Set>
<!--登记接出批量信息登记表 -->
<Exec func="PUB:InsertRecord" error="IGNORE">
<Arg name="TblNam" value="CAPBATINF" />
</Exec>
<If condition="~RetCod=-1">
<Set>Rsp_Cd=80</Set>
<Set>Rsp_Msg=登记接出批量信息登记表失败</Set>
<Exec func="PUB:RollbackWork" />
<Return />
</If>
<ElseIf condition="~RetCod=1">
<Set>Rsp_Cd=80</Set>
<Set>Rsp_Msg=批次重复</Set>
<Exec func="PUB:RollbackWork" />
<Return />
</ElseIf>
<!--提交事务-->
<Exec func="PUB:CommitWork"/>
<Exec func="PUB:ExecSql" error="IGNORE">
<Arg name="SqlCmd" value="UpdBatVerSts"/>
</Exec>
<If condition="~RetCod != 0">
<Set>Rsp_Cd=80</Set>
<Set>Rsp_Msg=更新批次帐户验证状态失败</Set>
<Exec func="PUB:RollbackWork"/>
<Return/>
</If>
</While>
<!-- 交易成功 -->
<Set>RSP_CD=00</Set>
<Set>RSP_MSG=交易成功</Set>
</FlowCtrl>
</Transaction>
<!--发送工行批次交易 -->
<Transaction code="sendBatch_ICBC" log_switch='1' desc="发送工行批次交易">
<Quote name="SQL_RcvConfirm" />
<DynSentence name="QRYBATINF"> <!--查询批次信息-->
<Sentence>
SELECT *
FROM CAPBATINF
WHERE CORG_DSK_NO=?
AND ORD_DT=?
AND PRO_JRL='1'
</Sentence>
<Fields>CORG_DSK_NO|ORD_DT|</Fields>
</DynSentence>
<!--更新该批次记录 -->
<DynSentence name="UpdJnlSts">
<Sentence>
UPDATE CAPTXNJNL
SET DSK_NAM_STS='1'
WHERE DSK_NAM=?
AND
ORD_DT=?
AND CORG_NO=?
AND CORG_DSK_NO = ?
AND TXN_MOD=?
AND
DSK_NAM_STS='0'
AND TXN_STS='U'
</Sentence>
<Fields>DSK_NAM|ORD_DT|CORG_NO|CORG_DSK_NO|TXN_MOD|</Fields>
</DynSentence>
<!--更新批次状态 -->
<DynSentence name="UpdBatSts">
<Sentence>
UPDATE CAPBATINF
SET BAT_STS=?,
RSP_CD = ?,
RSP_MSG = ?
WHERE
ORD_DT=?
AND CORG_NO=?
AND CORG_DSK_NO=?
AND AC_DT=?
AND BAT_STS='0'
</Sentence>
<Fields>BAT_STS|RSP_CD|RSP_MSG|ORD_DT|CORG_NO|CORG_DSK_NO|AC_DT
</Fields>
</DynSentence>
<DynSentence name="Qry_Export"> <!--代付查询需要打包的记录 -->
<Sentence>
SELECT TAC_NO AS PayAccNo,TAC_NAM AS PayAccNameCN,POSTSCRIPT AS UseCN,'%s' AS ReimburseNo,'%s' AS ReimburseNum,
'%s' AS StartDate,'%s' AS StartTime,'%s' AS PayAccNameEN,'%s' AS RecAccNameEN,'%s' AS ReqReserved1,
'%s' AS ReqReserved2,'%s' AS ERPSqn,'%s' AS BusCode,'%s' AS ERPcheckno,'%s' AS CrvouhType,
'%s' AS CrvouhName,'%s' AS CrvouhNo,'%s' AS ReqReserved3,'%s' AS ReqReserved4,'%s' AS Ref,CAP_ORD_NO AS iSeqno,AC_NO AS RecAccNo,
CUS_NAM AS RecAccNameCN,'102' AS RecICBCCode,LBNK_NO AS RecBankNo,'001' AS CurrType,
TXN_AMT * 100 AS PayAmt,POSTSCRIPT AS PostScript,POSTSCRIPT AS Summary,CAP_ORD_NO AS Oref,'%s' AS RecCityName,
'%s' AS RecBankName,'%s' AS UseCode,'%s' AS EnSummary,decode(ROUT_FLG,'SUPER','3','LARGE','1','SMALL','2') AS PayType
FROM CAPTXNJNL
WHERE DSK_NAM=?
AND CORG_NO = ?
AND CORG_DSK_NO = ?
AND ORD_DT=?
AND TXN_MOD=?
AND DSK_NAM_STS='0'
AND TXN_STS='U'
</Sentence>
<Fields>ReimburseNo|ReimburseNum|StartDate|StartTime|PayAccNameEN|RecAccNameEN|ReqReserved1|ReqReserved2|ERPSqn|BusCode|ERPcheckno|CrvouhType|CrvouhName|CrvouhNo|ReqReserved3|ReqReserved4|Ref|RecCityName|RecBankName|UseCode|EnSummary|DSK_NAM|CORG_NO|CORG_DSK_NO|ORD_DT|TXN_MOD|</Fields>
</DynSentence>
<DynSentence name="QryBatVerSts"><!--查询批次户名验证状态-->
<Sentence>
SELECT BAT_VER_STS FROM CAPBATINF
WHERE ORD_DT=? AND CORG_NO=? AND CORG_DSK_NO=? AND AC_DT=? AND BAT_STS='0'
</Sentence>
<Fields>ORD_DT|CORG_NO|CORG_DSK_NO|AC_DT</Fields>
</DynSentence>
<DynSentence name="UpdBatVerSts"><!--更新批次户名验证状态-->
<Sentence>
UPDATE CAPBATINF SET BAT_VER_STS = ?
WHERE ORD_DT=? AND CORG_NO=? AND CORG_DSK_NO=? AND AC_DT=? AND BAT_STS='0'
</Sentence>
<Fields>BAT_VER_STS|ORD_DT|CORG_NO|CORG_DSK_NO|AC_DT</Fields>
</DynSentence>
<DynSentence name="CountUndo">
<Sentence>
SELECT COUNT(*) UNDO_CNT FROM CAPSIGINF A
WHERE (A.SIG_STS = 'U' OR A.SIG_STS = 'P') AND
TRIM(CORG_NO)||TRIM(CRD_NO)||TRIM(CUS_NAM) IN (
SELECT TRIM(CORG_NO)||TRIM(CRD_NO)||TRIM(CUS_NAM) FROM CAPTXNJNL B
WHERE ORD_DT=? AND B.CORG_NO='ICBC' AND CORG_DSK_NO=?)
</Sentence>
<Fields>ORD_DT|CORG_DSK_NO|</Fields>
</DynSentence>
<DynSentence name="DEL_CAPSIGINF">
<Sentence>
DELETE FROM CAPSIGINF A
WHERE A.SIG_STS = 'F' AND
TRIM(CORG_NO)||TRIM(CRD_NO)||TRIM(CUS_NAM) IN (
SELECT TRIM(CORG_NO)||TRIM(CRD_NO)||TRIM(CUS_NAM) FROM CAPTXNJNL B
WHERE ORD_DT=? AND B.CORG_NO='ICBC' AND CORG_DSK_NO=? AND TXN_STS='F')
</Sentence>
<Fields>ORD_DT|CORG_DSK_NO|</Fields>
</DynSentence>
<DynSentence name="CntBatCnt"> <!--统计明细总金额总笔数-->
<Sentence>
SELECT SUM(TXN_AMT) AS BatAmt,COUNT(*) AS BatCnt
FROM CAPTXNJNL
WHERE DSK_NAM=? AND CORG_NO = ? AND CORG_DSK_NO = ? AND ORD_DT=?
AND TXN_MOD=? AND DSK_NAM_STS='0' AND TXN_STS='U'
</Sentence>
<Fields>DSK_NAM|CORG_NO|CORG_DSK_NO|ORD_DT|TXN_MOD|</Fields>
</DynSentence>
<DynSentence name="InitPRO_JRL"> <!--初始化PRO_JRL-->
<Sentence>
UPDATE CAPBATINF SET PRO_JRL ='0'
WHERE ORD_DT=? AND CORG_NO=? AND CORG_DSK_NO=? AND AC_DT=? AND PRO_JRL='1'
</Sentence>
<Fields>ORD_DT|CORG_NO|CORG_DSK_NO|AC_DT|</Fields>
</DynSentence>
<Function name="_before">
<Process>
<Exec func="PUB:DumpETF"/>
<Set>LockKey=STRCAT($CORG_NO,$CORG_DSK_NO)</Set>
<!-- 应用加锁,防止并发 -->
<Exec func="PUB:Lock">
<Arg name="RecKey" value="$LockKey" error="IGNORE"/>
<Arg name="TimOut" value="1800" />
<Arg name="AutoUnlock" value="no" />
</Exec>
<If condition="~RetCod!=0">
<Set>Rsp_Cd=80</Set>
<Set>Rsp_Msg=加锁失败</Set>
<Exit/>
</If>
<Set>IS_LOCKED=TRUE</Set>
</Process>
</Function>
<Function name="_after">
<Process>
<Exec func="PUB:ExecSql" error="IGNORE">
<Arg name="SqlCmd" value="InitPRO_JRL"/>
</Exec>
<If condition="IS_EQUAL_STRING($IS_LOCKED,TRUE)">
<!--解锁-->
<Exec func="PUB:UnLock">
<Arg name="RecKey" value="$LockKey" />
</Exec>
<Exec func="PUB:DumpETF"/>
</If>
</Process>
</Function>
<FlowCtrl>
<!--清理数据 -->
<Delete>RSP_CD</Delete>
<Delete>RSP_MSG</Delete>
<Delete>SUM</Delete>
<Delete>REC</Delete>
<Delete>rd</Delete>
<Exec func="PUB:DumpETF" />
<Exec func="PUB:DeleteGroup" error="IGNORE">
<Arg name="GroupName" value="REC"/>
</Exec>
<Quote name="Init_CAP01"/> <!--交易初始化-->
<Exec func="PUB:ReadRecord" error="IGNORE">
<Arg name="SqlCmd" value="QRYBATINF"/>
</Exec>
<Exec func="PUB:ReadRecord" error="IGNORE">
<Arg name="SqlCmd" value="QryBatVerSts"/>
</Exec>
<If condition="~RetCod!=0">
<Set>Rsp_Cd=80</Set>
<Set>Rsp_Msg=查询数据库出错</Set>
<Return/>
</If>
<If condition="IS_EQUAL_STRING($BAT_VER_STS,1)"><!-- 查询签约成功,发送批次 -->
<Set>BatCnt=$BAT_ORN_CNT</Set>
<Set>BatAmt=$BAT_ORN_AMT</Set>
<Delete>REC</Delete>
<Exec func="PUB:DeleteGroup" error="IGNORE">
<Arg name="GroupName" value="REC"/>
</Exec>
<Exec func="PUB:DeleteGroup" error="IGNORE">
<Arg name="GroupName" value="rd"/>
</Exec>
<!--读取参数配置 -->
<Set>TXN_DT=GETDATE()</Set>
<Set>TXN_TM=GETDATETIME(HHMISS)</Set>
<Set>SignTime=STRCAT(GETDATETIME(),000)</Set> <!--签名时间 必输项 字符 17 格式是yyyyMMddHHmmssSSS-->
<Quote name="Batch_Cfg_ICBC" />
<Set>StartDate=GETDATE()</Set>
<Set>StartTime=GETDATETIME(HHMISS)</Set>
<Set>RecICBCCode=102</Set>
<Set>MAX_CNT=$PARA.MAX_CNT</Set>
<!--帐户类型 -->
<Set>BAT_SEQ=0</Set>
<Set>TTXNSERVICE=PAYPERCOL</Set> <!--交易代码 必输项 字符 10 PAYPER -->
<Set>TTXNSERVICE1=PAYPERCOL_BAT</Set> <!--交易代码 必输项 10 PAYPER -->
<Set>QryExport=Qry_Export</Set> <!--代付需要发往工行的数据 -->
<!--Set>UseCN=保险理赔</Set--> <!--该字段取值从流水表中获取 待确认 -->
<Set>ICBC_CYC_CD=001</Set>
<!--业务数据初始化 -->
<Set>CORG_DSK_NO=$CORG_DSK_NO</Set>
<Set>CORG_MERC_ID=$CORG_MERC_ID</Set>
<Set>TACC_TM=$TACC_TM</Set>
<Set>TXN_TM=SUBSTR(GETDATETIME(),9,6)</Set>
<Set>BAT_TYP=$BAT_TYP</Set>
<Set>@MSG.TXNTYP=T</Set>
<Set>RSP_CD=STRCAT( , )</Set>
<Set>RSP_MSG=STRCAT( , )</Set>
<!--第三方数据拼接 -->
<Set>CIS=$GRP_CIS</Set> <!--集团CIS号 必输项 字符 60 客户注册时的归属编码(发卡机构代码) -->
<Set>Bank_Code=102</Set> <!--归属银行编号 必输项 长度为3 客户注册时的归属单位 -->
<Set>TranDate=GETDATE()</Set> <!--交易日期 必输项 字符 8 ERP系统产生的交易日期,格式是yyyyMMdd -->
<Set>TranTime=STRCAT(GETDATETIME(HHMISS),000)</Set> <!--交易时间 必输项 字符 12 字符 8 ERP系统产生的交易时间,格式如HHmmssSSS,精确到毫秒; -->
<Set>fSeqno=$CORG_DSK_NO</Set> <!--指令包序列号 必输项 字符 35 字符 8 ERP系统产生的指令包序列号,一个集团永远不能重复; -->
<Set>OnlBatF=1</Set> <!--联机批量标志 选输项 数字 1 1:联机 -->
<Set>SettleMode=0</Set> <!--入账方式 必输项 数字 1 2:并笔入账 0:逐笔记账 该字段接口已经删除 待确认-->
<Set>TotalNum=$BatCnt</Set> <!--总笔数 必输项 数字 6 指令包内的指令笔数 -->
<Set>TotalAmt=AMTPOWER($BatAmt,2)</Set> <!--总金额 必输项 数字 20 无正负号,不带小数点,以分作单位 -->
<Set>RECNUM=1</Set>
<Set>@MSG.CERTFIL=</Set>
<Set>@MSG.BANKCODE=$ATTACH_NO</Set>
<Set>@MSG.GROUPCIS=$GRP_CIS</Set>
<Set>@MSG.CERTID=$CERD_ID</Set>
<Set>@MSG.PACKAGEID=$CORG_DSK_NO</Set>
<Set>@MSG.TRANSCODE=$TTXNSERVICE</Set>
<Set>TransCode=@MSG.TRANSCODE</Set>
<Set>CIS=@MSG.GROUPCIS</Set>
<Set>PackageID=@MSG.PACKAGEID</Set>
<Set>ID=@MSG.CERTID</Set>
<Set>PackageID=@MSG.CERTID</Set>
<Set>ReimburseNo=STRCAT( , )</Set>
<Set>ReimburseNum=STRCAT( , )</Set>
<Set>StartDate=STRCAT( , )</Set>
<Set>StartTime=STRCAT( , )</Set>
<Set>PayAccNameEN=STRCAT( , )</Set>
<Set>RecAccNameEN=STRCAT( , )</Set>
<Set>ReqReserved1=STRCAT( , )</Set> <!--请求备用字段1 选输项 字符 100 备用,目前无意义 -->
<Set>ReqReserved2=STRCAT( , )</Set> <!--请求备用字段2 选输项 字符 100 备用,目前无意义 -->
<Set>ERPSqn=STRCAT( , )</Set>
<Set>BusCode=STRCAT( , )</Set>
<Set>ERPcheckno=STRCAT( , )</Set>
<Set>CrvouhType=STRCAT( , )</Set>
<Set>CrvouhName=STRCAT( , )</Set>
<Set>CrvouhNo=STRCAT( , )</Set>
<Set>ReqReserved3=STRCAT( , )</Set>
<Set>ReqReserved4=STRCAT( , )</Set>
<Set>RecCityName=STRCAT( , )</Set>
<Set>RecBankName=STRCAT( , )</Set>
<Set>UseCode=STRCAT( , )</Set>
<Set>EnSummary=STRCAT( , )</Set>
<Set>Ref=STRCAT( , )</Set>
<Exec func="PUB:QueryInGroup" error="IGNORE">
<Arg name="SqlCmd" value="$QryExport"/>
<Arg name="RecordName" value="REC"/>
<Arg name="limit" value="$MAX_CNT"/>
</Exec>
<If condition="~RetCod=-1">
<Return />
</If>
<!-- 通过原子函数获取正确的前置机信息 获取通信信息模式 待确认-->
<Exec func="ROUTE:GETROUTEBANPAR" error="IGNORE">
<Arg name="BANKCODE" value="ICBC" />
</Exec>
<Set>@MSG.CERTID=$CERD_ID</Set>
<Set>ID=@MSG.CERTID</Set>
<If condition="~RetCod != 0">
<Return />
</If>
<Else>
<Exec func="PUB:CallThirdComm" error="IGNORE">
<Arg name="HTxnCd" value="$TTXNSERVICE1"/> <!-- 交易发往银行 -->
<Arg name="ObjSvr" value="SICBCCPY2"/><!-- 服务名 -->
</Exec>
<Switch expression="~RetCod">
<Case value="1">
<!--第三方失败-->
<Set>BAT_STS=3</Set> <!--成功-->
<Set>RSP_CD=80</Set>
<Set>RSP_MSG=文件发送成功</Set>
<Break/>
</Case>
<Case value="-1">
<Set>BAT_STS=3</Set>
<Set>RSP_CD=80</Set>
<Set>RSP_MSG=文件发送成功</Set>
<Break/>
</Case>
<Case value="3">
<Set>BAT_STS=2</Set>
<Set>RSP_CD=$TRSP_CD</Set>
<Set>RSP_MSG=$TRSP_MSG</Set>
<!--更新流水状态为处理-->
<Exec func="PUB:ExecSql" error="IGNORE">
<Arg name="SqlCmd" value="UpdJnlSts"/>
</Exec>
<If condition="~RetCod != 0">
<Set>Rsp_Cd=80</Set>
<Set>Rsp_Msg=更新该批次状态失败</Set>
</If>
<!-- 执行批付解冻 该流程已删除 待确认-->
<Break/>
</Case>
<Case value="0"> <!--查询成功-->
<!--更新流水状态为发送处理成功-->
<Set>BAT_STS=1</Set>
<Set>Rsp_Cd=$TRsp_Cd</Set>
<Set>TRsp_Msg=交易成功</Set>
<Set>Rsp_Msg=$TRsp_Msg</Set>
<!-- 更新流水状态为发送处理完成 -->
<Exec func="PUB:ExecSql" error="IGNORE">
<Arg name="SqlCmd" value="UpdJnlSts"/>
</Exec>
<If condition="~RetCod!=0">
<Set>Rsp_Cd=80</Set>
<Set>Rsp_Msg=更新该批次流水处理状态失败</Set>
</If>
<Break/>
</Case>
<Default>
<!--第三方失败-->
<Set>BAT_STS=3</Set> <!--成功-->
<Set>RSP_CD=80</Set>
<Set>RSP_MSG=交易发送成功</Set>
</Default>
</Switch>
<!-- 更新批次状态 -->
<Quote name="UpdSendBatSts" />
</Else>
</If>
<!--提交事务-->
<Exec func="PUB:CommitWork"/>
<!--清理数据 -->
<Delete>RSP_CD</Delete>
<Delete>RSP_MSG</Delete>
<Delete>SUM</Delete>
<Delete>REC</Delete>
<Delete>rd</Delete>
</FlowCtrl>
</Transaction>
<!--获取工行批次回盘文件 -->
<Transaction code="getBatch_ICBC" log_switch='1' desc="获取工行批次回盘文件">
<DynSentence name="UpdCUPS_DSK_NO">
<Sentence>
UPDATE CAPBATINF
SET BAT_STS=? ,
END_TM=? ,
END_DT=?,
BAT_SUC_AMT=?,
BAT_SUC_CNT=?,
BAT_FAL_AMT=?,
BAT_FAL_CNT=?,
RSP_CD = ?,
RSP_MSG = ?
WHERE ORD_DT=?
AND CORG_NO=?
AND CORG_DSK_NO=?
AND AC_DT=?
AND BAT_STS=?
</Sentence>
<Fields>BAT_STS|END_TM|END_DT|BAT_SUC_AMT|BAT_SUC_CNT|BAT_FAL_AMT|BAT_FAL_CNT|RSP_CD|RSP_MSG|OORD_DT|OCORG_NO|OCORG_DSK_NO|OAC_DT|OBAT_STS|
</Fields>
</DynSentence>
<DynSentence name="UpdBatErrMsg"> <!--更新批次错误信息 -->
<Sentence>
UPDATE CAPBATINF
SET RSP_CD=? ,
RSP_MSG=?
WHERE ORD_DT=?
AND
CORG_NO=?
AND CORG_DSK_NO=?
AND AC_DT=?
</Sentence>
<Fields>RSP_CD|RSP_MSG|OORD_DT|OCORG_NO|OCORG_DSK_NO|OAC_DT</Fields>
</DynSentence>
<DynSentence name="UpdICBCTxnJnl"> <!--更新批扣流水 -->
<Sentence>
UPDATE CAPTXNJNL A
SET
(TTXN_ST,TXN_STS,DSK_NAM_STS,TACC_DT,TACC_TM,TRSP_CD,TRSP_MSG,RSP_MSG)
=
( SELECT TTXN_ST TTXN_ST,
TTXN_ST TXN_STS,
'4',
?,
?,
TRSP_CD,
TRSP_MSG,
TRSP_MSG
FROM CAPICBCPERD B
WHERE B.QRYISEQNO = A.CAP_ORD_NO
)
WHERE
A.CORG_NO = 'ICBC'
AND A.CORG_DSK_NO = ?
AND (A.TTXN_ST = 'U' OR
A.TTXN_ST = 'P')
</Sentence>
<Fields>TACC_DT|TACC_TM|OCORG_DSK_NO</Fields>
</DynSentence>
<DynSentence name="UpdDskInf">
<Sentence>
UPDATE CAPDSKINF
SET SUC_CNT=TO_NUMBER(NVL(TRIM(SUC_CNT),0))
+
TO_NUMBER(NVL(TRIM(?),0)),
SUC_AMT=TO_NUMBER(NVL(TRIM(SUC_AMT),0)) +
TO_NUMBER(NVL(TRIM(?),0)),
FAL_CNT=TO_NUMBER(NVL(TRIM(FAL_CNT),0)) +
TO_NUMBER(NVL(TRIM(?),0)),
FAL_AMT=TO_NUMBER(NVL(TRIM(FAL_AMT),0)) +
TO_NUMBER(NVL(TRIM(?),0))
WHERE DSK_NAM=?
</Sentence>
<Fields>BAT_SUC_CNT|BAT_SUC_AMT|BAT_FAL_CNT|BAT_FAL_AMT|ODSK_NAM
</Fields>
</DynSentence>
<DynSentence name="QryExport"> <!--查询请求回盘所需的记录 -->
<Sentence>
SELECT ROWNUM,t.*
FROM CAPTXNJNL t
WHERE DSK_NAM='%s'
AND
CORG_NO = '%s'
AND CORG_DSK_NO = '%s'
AND ORD_DT='%s'
AND
DSK_NAM_STS='1'
AND TXN_STS='U'
</Sentence>
<Fields>ODSK_NAM|OCORG_NO|OCORG_DSK_NO|OORD_DT|</Fields>
</DynSentence>
<DynSentence name="TotFai"> <!--统计失败笔数 -->
<Sentence>
SELECT COUNT(*) BAT_FAL_CNT,NVL(SUM(TXN_AMT),0) BAT_FAL_AMT
FROM CAPTXNJNL
WHERE ORD_DT = ? AND CORG_NO = ? AND CORG_DSK_NO = ?
AND TTXN_ST =
'F'
</Sentence>
<Fields>OORD_DT|CORG_NO|OCORG_DSK_NO</Fields>
</DynSentence>
<DynSentence name="TotSuc"> <!--统计成功笔数 -->
<Sentence>
SELECT COUNT(*) BAT_SUC_CNT,NVL(SUM(TXN_AMT),0) BAT_SUC_AMT
FROM CAPTXNJNL
WHERE ORD_DT = ? AND CORG_NO = ? AND CORG_DSK_NO = ?
AND TTXN_ST =
'S'
</Sentence>
<Fields>OORD_DT|CORG_NO|OCORG_DSK_NO</Fields>
</DynSentence>
<DynSentence name="QryCAPICBCPERD"> <!-- 查询临时表批次记录状态为P的记录数 -->
<Sentence>
SELECT COUNT(*) AS UNDO_CNT FROM CAPICBCPERD WHERE Result
in
('0','1','2','3','4','5','9','10','95')
</Sentence>
</DynSentence>
<DynSentence name="DelCAPICBCPERD"> <!-- 导入临时表数据之前删除临时表数据 -->
<Sentence>
DELETE FROM CAPICBCPERD
</Sentence>
</DynSentence>
<DynSentence name="InitPRO_JRL"> <!--初始化PRO_JRL-->
<Sentence>
UPDATE CAPBATINF SET PRO_JRL ='0'
WHERE ORD_DT=? AND CORG_NO=? AND CORG_DSK_NO=? AND AC_DT=? AND PRO_JRL='1'
</Sentence>
<Fields>OORD_DT|OCORG_NO|OCORG_DSK_NO|OAC_DT|</Fields>
</DynSentence>
<Function name="_before">
<Process>
<Exec func="PUB:DumpETF"/>
<Set>LockKey=STRCAT($OCORG_NO,$OCORG_DSK_NO)</Set>
<!-- 应用加锁,防止并发 -->
<Exec func="PUB:Lock">
<Arg name="RecKey" value="$LockKey" error="IGNORE"/>
<Arg name="TimOut" value="1800" />
<Arg name="AutoUnlock" value="no" />
</Exec>
<If condition="~RetCod!=0">
<Set>Rsp_Cd=80</Set>
<Set>Rsp_Msg=加锁失败</Set>
<Exit/>
</If>
<Set>IS_LOCKED=TRUE</Set>
</Process>
</Function>
<Function name="_after">
<Process>
<Exec func="PUB:ExecSql" error="IGNORE">
<Arg name="SqlCmd" value="InitPRO_JRL"/>
</Exec>
<If condition="IS_EQUAL_STRING($IS_LOCKED,TRUE)">
<!--解锁-->
<Exec func="PUB:UnLock">
<Arg name="RecKey" value="$LockKey" />
</Exec>
<Exec func="PUB:DumpETF"/>
</If>
</Process>
</Function>
<FlowCtrl>
<!--清理数据 -->
<Delete>RSP_CD</Delete>
<Delete>RSP_MSG</Delete>
<Delete>SUM</Delete>
<Delete>REC</Delete>
<Delete>rd</Delete>
<Exec func="PUB:DeleteGroup" error="IGNORE">
<Arg name="GroupName" value="rd"/>
</Exec>
<!--导入临时表数据之前删除临时表数据 -->
<Exec func="PUB:ExecSql" error="IGNORE">
<Arg name="SqlCmd" value="DelCAPICBCPERD" />
</Exec>
<Exec func="PUB:DumpETF" />
<Set>ORD_TYP=$OBAT_TYP</Set>
<Quote name="Batch_Cfg_ICBC" />
<Quote name="GET_ICBC_CAP_ORD_NO" /> <!--取银联订单号 -->
<Set>TXN_DT=GETDATE()</Set>
<Set>TXN_TM=GETDATETIME(HHMISS)</Set> <!--交易时间 -->
<Set>TACC_DT=$TXN_DT</Set>
<Set>TACC_TM=$TXN_TM</Set>
<Set>MerchantNo=$OCORG_MERC_ID</Set> <!--商户编号 -->
<Set>TermId=0000000000000000000</Set> <!--终端号 -->
<Set>FileName=$OCORG_FIL_NAM</Set> <!--文件名 -->
<Quote name="GET_JRN_NO" /> <!--取交易流水号 -->
<Set>trnId=$JRN_NO</Set>
<Set>payType=0</Set> <!--支付类型0:支付1:代发工资2:费用报销 -->
<Set>ORN_JRN_NO=$OCORG_DSK_NO</Set> <!--原批次号 -->
<Set>END_TM=GETDATETIME(HHMISS)</Set>
<Set>END_DT=GETDATE()</Set>
<Set>BAT_SUC_AMT=0</Set>
<Set>BAT_SUC_CNT=0</Set>
<Set>BAT_FAL_CNT=0</Set>
<Set>BAT_FAL_AMT=0</Set>
<Set>RSP_CD=STRCAT( , )</Set>
<Set>RSP_MSG=STRCAT( , )</Set>
<Set>CORG_NO=$OCORG_NO</Set>
<!--第三方数据拼接-->
<Set>TTXNSERVICE=QPAYPER</Set>
<Set>AC_TYP_FMT=BatICBCRSPPAYPERFmt01</Set>
<Exec func="PUB:GetUniqueNo">
<Arg name="Name" value="fSeqno" />
<Arg name="SeqNam" value="jrn_no_sequence" />
<Arg name="Len" value="10" />
</Exec>
<If condition="~RetCod!=0">
<Set>Rsp_Cd=80</Set>
<Set>Rsp_Msg=平台取流水号失败</Set>
<Return />
</If>
<Set>fSeqno=STRCAT(SUBSTR($AC_DT,3,6),$fSeqno)</Set>
<Set>@MSG.BANKCODE=$ATTACH_NO</Set>
<Set>@MSG.GROUPCIS=$GRP_CIS</Set>
<Set>@MSG.CERTID=$CERD_ID</Set>
<Set>@MSG.PACKAGEID=$fSeqno</Set>
<Set>@MSG.TRANSCODE=$TTXNSERVICE</Set>
<Set>@MSG.TXNTYP=Q</Set>
<Set>TransCode=@MSG.TRANSCODE</Set>
<Set>CIS=@MSG.GROUPCIS</Set>
<Set>Bank_Code=@MSG.BANKCODE</Set> <!-- 联行行号3位 -->
<Set>ID=@MSG.CERTID</Set>
<Set>TranDate=$TXN_DT</Set>
<Set>TranTime=$TXN_TM</Set>
<Set>QryfSeqno=$ORN_JRN_NO</Set>
<Set>QrySerialNo=STRCAT( , )</Set>
<Set>ReqReserved1=STRCAT( , )</Set>
<Set>ReqReserved2=STRCAT( , )</Set>
<!-- 通过原子函数获取正确的前置机信息 待确认 获取方式-->
<Exec func="ROUTE:GETROUTEBANPAR" error="IGNORE">
<Arg name="BANKCODE" value="ICBC" />
</Exec>
<Set>@MSG.CERTID=$CERD_ID</Set>
<Set>ID=@MSG.CERTID</Set>
<If condition="~RetCod != 0">
<Return/>
</If>
<Else>
<!--调用批量结果回盘文件查询接口 -->
<Exec func="PUB:CallThirdComm" error="IGNORE">
<Arg name="HTxnCd" value="$TTXNSERVICE" />
<Arg name="ObjSvr" value="SICBCCPY2" /> <!-- 交易发往银行 -->
</Exec>
<Switch expression="~RetCod">
<Case value="1">
<Set>Rsp_Cd=80</Set>
<Set>Rsp_Msg=查询第三方失败</Set>
<Break/>
</Case>
<Case value="-1">
<Set>Rsp_Cd=80</Set>
<Set>Rsp_Msg=查询第三方失败</Set>
<Break/>
</Case>
<Case value="3">
<Set>RSP_CD=$TRSP_CD</Set>
<Set>RSP_MSG=$TRSP_MSG</Set>
<If condition="IS_EQUAL_STRING($TRSP_CD,BIB008,D0055)"> <!--交易请求已受理,处理中-->
<Set>BAT_STS=3</Set>
<!--更新批次信息-->
<Exec func="PUB:ExecSql" error="IGNORE">
<Arg name="SqlCmd" value="UpdCUPS_DSK_NO"/>
</Exec>
<If condition="~RetCod != 0">
<Set>Rsp_Cd=80</Set>
<Set>Rsp_Msg=更新该批次为发送处理状态失败</Set>
<Break/>
</If>
</If>
<Else> <!--其他错误-->
<Set>BAT_STS=5</Set>
<!--更新批次信息-->
<Exec func="PUB:ExecSql" error="IGNORE">
<Arg name="SqlCmd" value="UpdCUPS_DSK_NO"/>
</Exec>
<If condition="~RetCod != 0">
<Set>Rsp_Cd=80</Set>
<Set>Rsp_Msg=更新该批次为发送处理状态失败</Set>
<Break/>
</If>
<!-- 代付交易失败需要解冻 该部分已经废止 待确认-->
</Else>
<Break/>
</Case>
<Case value="0">
<Exec func="PUB:InsertRecord"><!--登记工行临时表-->
<Arg name="TblNam" value="CAPICBCPERD" />
<Arg name="GrpNam" value="rd" />
</Exec>
<If condition="~RetCod!=0">
<Return />
</If>
<!--更新流水状态 -->
<Exec func="PUB:ExecSql" error="IGNORE">
<Arg name="SqlCmd" value="UpdICBCTxnJnl" />
</Exec>
<If condition="~RetCod=-1">
<Set>Rsp_Cd=80</Set>
<Set>Rsp_Msg=更新流水交易状态失败</Set>
<Return />
</If>
<!--查询临时表批次记录状态为P的记录数 -->
<Exec func="PUB:ReadRecord" error="IGNORE">
<Arg name="SqlCmd" value="QryCAPICBCPERD" />
</Exec>
<If condition="~RetCod != 0">
<Set>Rsp_Cd=80</Set>
<Set>Rsp_Msg=查询临时表批次记录状态为P的记录数失败</Set>
<Return />
</If>
<Set>UNDO_CNT=$UNDO_CNT</Set>
<If condition="$UNDO_CNT != 0">
<Set>BAT_STS=3</Set>
<Set>Rsp_Cd=00</Set>
<Set>Rsp_Msg=交易处理中...</Set>
<Exec func="PUB:ExecSql" error="IGNORE">
<Arg name="SqlCmd" value="UpdCUPS_DSK_NO"/>
</Exec>
<If condition="~RetCod!=0">
<Set>Rsp_Cd=80</Set>
<Set>Rsp_Msg=更新该批次状态失败</Set>
<Break/>
</If>
<Return />
</If>
<!--统计成功,失败笔数 -->
<Exec func="PUB:ReadRecord" error="IGNORE">
<Arg name="SqlCmd" value="TotSuc" />
</Exec>
<Exec func="PUB:ReadRecord" error="IGNORE">
<Arg name="SqlCmd" value="TotFai" />
</Exec>
<Set>BAT_SUC_AMT=$BAT_SUC_AMT</Set>
<Set>BAT_SUC_CNT=$BAT_SUC_CNT</Set>
<Set>BAT_FAL_AMT=$BAT_FAL_AMT</Set>
<Set>BAT_FAL_CNT=$BAT_FAL_CNT</Set>
<!--更新文件信息 -->
<Exec func="PUB:ExecSql" error="IGNORE">
<Arg name="SqlCmd" value="UpdDskInf" />
</Exec>
<If condition="~RetCod!=0">
<Set>Rsp_Cd=80</Set>
<Set>Rsp_Msg=累加更新接入批量信息表成功失败总笔数及总金额失败</Set>
<Break />
</If>
<Set>Rsp_Cd=00</Set>
<Set>Rsp_Msg=交易成功</Set>
<Set>BAT_STS=4</Set> <!-- 接收处理完成 -->
<!--更新批次信息 -->
<Exec func="PUB:ExecSql" error="IGNORE">
<Arg name="SqlCmd" value="UpdCUPS_DSK_NO" />
</Exec>
<If condition="~RetCod != 0">
<Set>Rsp_Cd=80</Set>
<Set>Rsp_Msg=更新该批次为发送处理状态失败</Set>
<Break />
</If>
<Exec func="PUB:CommitWork" /> <!--提交事务 -->
<Set>TXN_MOD_FLG=$OBAT_TYP</Set>
<Set>CAP_TYP=CAP_PAY_BAT</Set>
<Set>RUL_TYP=BIS</Set><!-- 转码规则类型 -->
<Set>CAP_TYP=$CAP_TYP</Set><!-- 交易类型 -->
<Set>CORG_NO=$OCORG_NO</Set><!-- 合作机构号 -->
<Set>CSW_TYP=0</Set><!-- 匹配类型 -->
<Set>ORD_DT=$OORD_DT</Set>
<Set>CORG_DSK_NO=$OCORG_DSK_NO</Set>
<Call package="CSW" function="CAP_BAT_CSW">
<Input>RUL_TYP|CAP_TYP|CORG_NO|CSW_TYP|ORD_DT|CORG_DSK_NO|</Input>
<Output></Output>
</Call>
</Case>
<Default>
<Set>Rsp_Cd=80</Set>
<Set>Rsp_Msg=系统错误</Set>
<Break/>
</Default>
</Switch>
<!--提交事务-->
<Exec func="PUB:CommitWork"/>
<!--清理数据 -->
<Delete>RSP_CD</Delete>
<Delete>RSP_MSG</Delete>
<Delete>SUM</Delete>
<Delete>REC</Delete>
<Delete>rd</Delete>
</Else>
</FlowCtrl>
</Transaction>
</Tran>
File diff suppressed because it is too large Load Diff
+7 -6
View File
@@ -1,20 +1,21 @@
<?xml version='1.0' encoding='UTF-8'?>
<FrontTab>
<Macro name="Batch_Cfg_CMB" desc="招行批量参数">
<Set>PARA.MAX_CNT=1000</Set> <!--最大笔数-->
</Macro>
<Macro name="Batch_Cfg_ICBC" desc="工行批量参数">
<Set>PAY_TYP=其他</Set>
<Set>GRP_CIS=100090003114525</Set> <!--集团CIS号-->
<Set>ATTACH_NO=102</Set> <!--归属银行编号-->
<!--Set>CERD_ID=X123456.y.1001</Set--> <!--证书ID-->
<Set>CERD_ID=X123456.y.1001</Set> <!--证书ID-->
<!--Set>ICBC_TAC_NO=1001170319006734871</Set--> <!--平安支付在工行开的对账账号-->
<Set>ICBC_TAC_NO=1001170319006734871</Set> <!--平安支付在工行开的对账账号-->
<!--Set>TAC_NAM=平安付科技服务有限公司客户备付金</Set-->
<Set>TAC_NAM=平安付科技服务有限公司客户备付金</Set>
<!--Set>ICBC_TAC_NO=1001170319006734871</Set--> <!-- 在工行开的对账账号 该账号由入库时指定-->
<!--Set>TAC_NAM=平安付科技服务有限公司客户备付金</Set--> <!-- 在工行开的对账账号户名 该账号户名由入库时指定-->
<Set>CON_NO=BDP300093403</Set>
<Set>PARA.MAX_CNT=5000</Set> <!--最大笔数-->
<Set>PARA.MAX_CNT=1000</Set> <!--最大笔数 默认1000-->
<Set>SYS_CODE=S009</Set> <!--机构号-->
<Set>PARA.LOCAL_USR=wls81</Set>
<Set>PARA.LOCAL_TYP=sftp</Set>
+14
View File
@@ -298,6 +298,20 @@
<Set>CAP_ORD_NO=STRCAT(GETDATE(),$nextval)</Set>
<Delete>nextval</Delete>
</Macro>
<Macro name="GET_CMB_CAP_ORD_NO" desc="招行订单号">
<Exec func="PUB:GetUniqueNo">
<Arg name="Name" value="nextval" />
<Arg name="SeqNam" value="cmb_cap_sequence" />
<Arg name="Len" value="8" />
</Exec>
<If condition="~RetCod!=0">
<Set>Rsp_Cd=80</Set>
<Set>Rsp_Msg=内部错误</Set>
<Return />
</If>
<Set>CAP_ORD_NO=STRCAT(GETDATE(),$nextval)</Set>
<Delete>nextval</Delete>
</Macro>
<Macro name="GET_SZFS_CAP_ORD_NO" desc="结算中心订单号">
<Exec func="PUB:GetUniqueNo">
Binary file not shown.
Binary file not shown.