--2022.12.02 chenrh by MZSF13X-20221202-001 create or replace procedure SP_SF_PAY_YNZFRZ( PJKLXBH in number ,--输入:接口类型编号 PBRID00 in number ,--输入:BRID00 PZYGHID in number ,--输入:住院(ZYID00)或门诊(GHID000)流水号 PZYHGHH in varchar2 ,--输入:住院(ZYH000)或门诊(GHH000)号 PCZY000 in number ,--输入:操作员编码 PCZYXM0 in varchar2 ,--输入:操作员姓名 PMZZYBZ in varchar2 ,--输入:门诊住院标志 0:门诊 1:住院 PJFBZ00 in varchar2 ,--输入:缴费备注0:交,1:退 PJZDH00 in number default 0 ,--输入:结账单号 PYJDH00 in number default 0 ,--输入:医技单号 PZFFS00 in number ,--输入:支付编码 PZFFSMC in varchar2 ,--输入:支付名称 PJFJE00 in number ,--输入:缴费金额 PFKTM00 in varchar2 default '' ,--输入:付款条码 PTKDDH0 in varchar2 default '' ,--输入:退款订单号 PPJXH00 in varchar2 default '0' ,--输入:票据序号 PZDBH00 in varchar2 default '' ,--输入:终端编号 PZFQDBM in varchar2 default 'AHLEAN' ,--输入:支付渠道编码 PZPKHYH in varchar2 default '' ,--输入:开户银行 PZPDWMC in varchar2 default '' ,--输入:转账单位 PZPH000 in varchar2 default '' ,--输入:支票号或交易单号 PINCS00 in varchar2 ,--输入:输入参数 PCOMMIT in varchar2 default 'N' ,--输入:是否提交事务 Y:提交 N:不提交 PZXZT00 out number ,--输出:执行状态 0:失败 1:成功 PDDLSH0 out varchar2 ,--输出:订单流水号 PERRMSG out varchar2 ,--输出:错误信息 PJKQQCS in varchar2 default '' ,--输入:请求入参xml格式 PZFMXBH in varchar2 default '' ,--输入:支付明细编码 PCZYKS0 in number default 0 --输入:操作员科室 ) as -- MODIFICATION HISTORY -- Person Date Comments -- qks 2018.03.06 create:统一支付平台接口改造; for MZSF9-20180306-002 -- liwm 2018.07.26 移植5.0 for MZSF9-20180725-002 --zhangyc 2018.09.06 修正银联二维码退款ZFMXBM写入错误 for MZSF9-20180906-002 --zhangyc 2019.04.24 修改健康之路报文增加LS_MZJYBM、HisMemberId、IsCheckCardNo by MZSF9-20190424-003 --liwm 2019.05.16 为R健康之路当面付时,清账校验问题 MZSF9-20190509-003 --zhangyc 2019.05.20 健康之路银联支付(2:银联) by MZSF9-20190522-001 --qks 2019.11.11 医联的发送报文的Body节点增加了YYID00(医院ID)、YYQC00(医院全称)2个字段; for MZSF9-20191111-004 --zhangyc 2020.10.27 增加[医信]支付厂家功能 by MZSF9-20201027-001 --zhangyc 2021.04.08 修改【医联】银行POS充值以及退款功能 by MZSF9-20210409-001 -- jlg 2021.09.15 处理门诊HIS无卡建档的病人,发送报文时,如果仍无卡号,card_no按虚拟卡病人的卡号规则生成发送,以便支付平台能通过 MZSF9-20210915-001 -- zhangyc 2021.09.17 增加ZFMXBH=(13:多码融合微信 14:多码融合支付宝)业务处理(参数配置:Refund_ZFMXBH:可退款支付明细编码) by MZSF9-20210917-002 -- zhangyc 2021.10.13 增加医联支付(非多码)pay_way取值,LS_DMYLJYM_DMRH、LS_DMYLJYM_STK by MZSF9-20211014-001 -- qiulf 2021.12.15 移除9.0中支付接口,增加精宸支付接口 by MZSF9EX-20211215-003 -- qiulf 2022.01.24 增加银联支付接口 by MZSF9EX-20220110-001 -- chenrh 2022.12.02 增加区域支付接口 by MZSF13X-20221202-001 ----------------------------------------------------------- LS_ZFQDBM BM_ZFRZ00.JGBM00%type;--支付渠道编码 begin LS_ZFQDBM:=nvl(PZFQDBM,'AHLEAN'); if LS_ZFQDBM = 'AHLEAN' then SP_SF_PAY_YNZFRZ_AHLEAN ( PJKLXBH ,--输入:接口类型编号 PBRID00 ,--输入:BRID00 PZYGHID ,--输入:住院(ZYID00)或门诊(GHID000)流水号 PZYHGHH ,--输入:住院(ZYH000)或门诊(GHH000)号 PCZY000 ,--输入:操作员编码 PCZYXM0 ,--输入:操作员姓名 PMZZYBZ ,--输入:门诊住院标志 0:门诊 1:住院 PJFBZ00 ,--输入:缴费备注0:交,1:退 PJZDH00 ,--输入:结账单号 PYJDH00 ,--输入:医技单号 PZFFS00 ,--输入:支付编码 PZFFSMC ,--输入:支付名称 PJFJE00 ,--输入:缴费金额 PFKTM00 ,--输入:付款条码 PTKDDH0 ,--输入:退款订单号 PPJXH00 ,--输入:票据序号 PZDBH00 ,--输入:终端编号 PZFQDBM ,--输入:支付渠道编码 PZPKHYH ,--输入:开户银行 PZPDWMC ,--输入:转账单位 PZPH000 ,--输入:支票号或交易单号 PINCS00 ,--输入:输入参数 PCOMMIT ,--输入:是否提交事务 Y:提交 N:不提交 PZXZT00 ,--输出:执行状态 0:失败 1:成功 PDDLSH0 ,--输出:订单流水号 PERRMSG ,--输出:错误信息 PJKQQCS ,--输入:请求入参xml格式 PZFMXBH ,--输入:支付明细编码 PCZYKS0 --输入:操作员科室 ); elsif LS_ZFQDBM = 'AHUNION' then SP_SF_PAY_YNZFRZ_AHUNION ( PJKLXBH ,--输入:接口类型编号 PBRID00 ,--输入:BRID00 PZYGHID ,--输入:住院(ZYID00)或门诊(GHID000)流水号 PZYHGHH ,--输入:住院(ZYH000)或门诊(GHH000)号 PCZY000 ,--输入:操作员编码 PCZYXM0 ,--输入:操作员姓名 PMZZYBZ ,--输入:门诊住院标志 0:门诊 1:住院 PJFBZ00 ,--输入:缴费备注0:交,1:退 PJZDH00 ,--输入:结账单号 PYJDH00 ,--输入:医技单号 PZFFS00 ,--输入:支付编码 PZFFSMC ,--输入:支付名称 PJFJE00 ,--输入:缴费金额 PFKTM00 ,--输入:付款条码 PTKDDH0 ,--输入:退款订单号 PPJXH00 ,--输入:票据序号 PZDBH00 ,--输入:终端编号 PZFQDBM ,--输入:支付渠道编码 PZPKHYH ,--输入:开户银行 PZPDWMC ,--输入:转账单位 PZPH000 ,--输入:支票号或交易单号 PINCS00 ,--输入:输入参数 PCOMMIT ,--输入:是否提交事务 Y:提交 N:不提交 PZXZT00 ,--输出:执行状态 0:失败 1:成功 PDDLSH0 ,--输出:订单流水号 PERRMSG ,--输出:错误信息 PJKQQCS ,--输入:请求入参xml格式 PZFMXBH ,--输入:支付明细编码 PCZYKS0 --输入:操作员科室 ); elsif LS_ZFQDBM = 'YXPAY' then SP_SF_PAY_YNZFRZ_YXPAY ( PJKLXBH ,--输入:接口类型编号 PBRID00 ,--输入:BRID00 PZYGHID ,--输入:住院(ZYID00)或门诊(GHID000)流水号 PZYHGHH ,--输入:住院(ZYH000)或门诊(GHH000)号 PCZY000 ,--输入:操作员编码 PCZYXM0 ,--输入:操作员姓名 PMZZYBZ ,--输入:门诊住院标志 0:门诊 1:住院 PJFBZ00 ,--输入:缴费备注0:交,1:退 PJZDH00 ,--输入:结账单号 PYJDH00 ,--输入:医技单号 PZFFS00 ,--输入:支付编码 PZFFSMC ,--输入:支付名称 PJFJE00 ,--输入:缴费金额 PFKTM00 ,--输入:付款条码 PTKDDH0 ,--输入:退款订单号 PPJXH00 ,--输入:票据序号 PZDBH00 ,--输入:终端编号 PZFQDBM ,--输入:支付渠道编码 PZPKHYH ,--输入:开户银行 PZPDWMC ,--输入:转账单位 PZPH000 ,--输入:支票号或交易单号 PINCS00 ,--输入:输入参数 PCOMMIT ,--输入:是否提交事务 Y:提交 N:不提交 PZXZT00 ,--输出:执行状态 0:失败 1:成功 PDDLSH0 ,--输出:订单流水号 PERRMSG ,--输出:错误信息 PJKQQCS ,--输入:请求入参xml格式 PZFMXBH ,--输入:支付明细编码 PCZYKS0 --输入:操作员科室 ); elsif LS_ZFQDBM = 'QYYJJ' then SP_SF_PAY_YNZFRZ_QYYJJ ( PJKLXBH ,--输入:接口类型编号 PBRID00 ,--输入:BRID00 PZYGHID ,--输入:住院(ZYID00)或门诊(GHID000)流水号 PZYHGHH ,--输入:住院(ZYH000)或门诊(GHH000)号 PCZY000 ,--输入:操作员编码 PCZYXM0 ,--输入:操作员姓名 PMZZYBZ ,--输入:门诊住院标志 0:门诊 1:住院 PJFBZ00 ,--输入:缴费备注0:交,1:退 PJZDH00 ,--输入:结账单号 PYJDH00 ,--输入:医技单号 PZFFS00 ,--输入:支付编码 PZFFSMC ,--输入:支付名称 PJFJE00 ,--输入:缴费金额 PFKTM00 ,--输入:付款条码 PTKDDH0 ,--输入:退款订单号 PPJXH00 ,--输入:票据序号 PZDBH00 ,--输入:终端编号 PZFQDBM ,--输入:支付渠道编码 PZPKHYH ,--输入:开户银行 PZPDWMC ,--输入:转账单位 PZPH000 ,--输入:支票号或交易单号 PINCS00 ,--输入:输入参数 PCOMMIT ,--输入:是否提交事务 Y:提交 N:不提交 PZXZT00 ,--输出:执行状态 0:失败 1:成功 PDDLSH0 ,--输出:订单流水号 PERRMSG ,--输出:错误信息 PJKQQCS ,--输入:请求入参xml格式 PZFMXBH ,--输入:支付明细编码 PCZYKS0 --输入:操作员科室 ); end if; exception when no_data_found then PZXZT00:=0; PERRMSG:=substrb('执行过程SP_SF_PAY_YNZFRZ错误!'||sqlerrm,1,200); when others then PZXZT00:=0; PERRMSG:=substrb('执行过程SP_SF_PAY_YNZFRZ错误!'||sqlerrm,1,200); end; create or replace procedure SP_SF_PAY_YNZFRZ_QYYJJ( PJKLXBH in number ,--输入:接口类型编号 PBRID00 in number ,--输入:BRID00 PZYGHID in number ,--输入:住院(ZYID00)或门诊(GHID000)流水号 PZYHGHH in varchar2 ,--输入:住院(ZYH000)或门诊(GHH000)号 PCZY000 in number ,--输入:操作员编码 PCZYXM0 in varchar2 ,--输入:操作员姓名 PMZZYBZ in varchar2 ,--输入:门诊住院标志 0:门诊 1:住院 PJFBZ00 in varchar2 ,--输入:缴费备注0:交,1:退 PJZDH00 in number default 0 ,--输入:结账单号 PYJDH00 in number default 0 ,--输入:医技单号 PZFFS00 in number ,--输入:支付编码 PZFFSMC in varchar2 ,--输入:支付名称 PJFJE00 in number ,--输入:缴费金额 PFKTM00 in varchar2 default '' ,--输入:付款条码 PTKDDH0 in varchar2 default '' ,--输入:退款订单号 PPJXH00 in varchar2 default '0' ,--输入:票据序号 PZDBH00 in varchar2 default '' ,--输入:终端编号 PZFQDBM in varchar2 default 'AHLEAN' ,--输入:支付渠道编码 PZPKHYH in varchar2 default '' ,--输入:开户银行 PZPDWMC in varchar2 default '' ,--输入:转账单位 PZPH000 in varchar2 default '' ,--输入:支票号或交易单号 PINCS00 in varchar2 ,--输入:输入参数 PCOMMIT in varchar2 default 'N' ,--输入:是否提交事务 Y:提交 N:不提交 PZXZT00 out number ,--输出:执行状态 0:失败 1:成功 PDDLSH0 out varchar2 ,--输出:订单流水号 PERRMSG out varchar2 ,--输出:错误信息 PJKQQCS in varchar2 default '' ,--输入:请求入参xml格式 PZFMXBH in varchar2 default '' ,--输入:支付明细编码 PCZYKS0 in number default 0 --输入:操作员科室 ) -- MODIFICATION HISTORY -- Person Date Comments -- qiulf 2021.12.17 created by 院内微信支付宝业务过程(住院)精宸支付接口 ZYSF9EX-20211217-001 -- chenrh 2022.12.02 增加区域支付接口 by MZSF13X-20221202-001 ----------------------------------------------------------- as LS_COUNT0 number(5); LS_CZRQ00 char(8); LS_CZSJ00 char(8); LS_TYJE00 number(12,2); LS_ICKH00 IC_YHXX00.ICKH00%type; LS_DDLSH0 BM_ZFRZ00.DDLSH0%type; LS_CARDNO varchar2(200); --去前缀卡号 LS_AMOUNT number(12,2); LS_PJXH00 SF_PJSYQK.PJXH00%type; LS_ERRSTR varchar2(200); LS_YPTLSH varchar2(50); --原平台流水号 LS_YJYJE0 number(12,2); --原交易金额 LS_YJDH00 BM_ZFRZ00.YJDH00%type; --医技单号或缴费单号 LS_ZFQDBM BM_ZFRZ00.JGBM00%type; --支付渠道编码 LS_JGBM00 BM_ZFRZ00.JGBM00%type; --机构编码 LS_JGMC00 BM_ZFRZ00.JGMC00%type; --机构名称 LS_ZPKHYH BM_ZFRZ00.ZPKHYH%type; --开户银行 LS_ZPDWMC BM_ZFRZ00.ZPDWMC%type; --转账单位 LS_ZPH000 BM_ZFRZ00.ZPH000%type; --支票号或交易单号 LS_JFBZ00 BM_ZFRZ00.JFBZ00%type; LS_MZZYBZ BM_ZFRZ00.JFBZ00%type; LS_BRID00 BM_BRXXB0.BRID00%type; LS_BRXM00 BM_BRXXB0.BRXM00%type; LS_BRXB00 BM_BRXXB0.BRXB00%type; LS_YBKH00 BM_BRXXB0.YBKH00%type; LS_YBID00 BM_BRXXB0.YBID00%type; LS_BRZJBH BM_BRXXB0.BRZJBH%type; LS_BRDH00 BM_BRXXB0.BRDH00%type; LS_BRLXDH BM_BRXXB0.BRLXDH%type; LS_JYLXMC BM_ZFRZ00.JYLXMC%type; --交易类型名称 --健康之路当面付参数 LS_NBJYDH BM_ZFRZ00.NBJYDH%type; --内部校验流水号 LS_ZFMXBH BM_ZFRZ00.ZFMXBH%type; LS_ZFMXBH_ORD BM_ZFFSMX.ZFMXBH%type; LS_CZYKS0 BM_ZFRZ00.CZYKS0%type; --操作员科室 LS_JKQQCS BM_ZFRZ00.JKQQCS%type; --请求入参xml格式 LS_PAYWAY BM_ZFRZ00.PAYWAY%type;--(交易渠道编码) LS_ZFDDH0 BM_ZFRZ00.DDLSH0%type;--院内优先退款订单 LS_JSTKLX varchar2(1);--0:正常模式 1:交互前院内优先退款 2:结算后院内优先退款 3:平台退款成功 LS_bke284 BM_ZFRZ00.bke284%type;--身份认证类型(01:读卡02:融合码06:医保码20:医疗证 03:刷脸 99:线上) begin --接口定义 /* --易惠 0:设置服务 1:查询预交金 2:预交金充值 3:预交金退款 4:查询交易结果 --10:门诊支付撤销 11:门诊建档充值 12:门诊预交金充值 13:门诊预交金退款 14:门诊预交金作废 15:门诊取消结算 16:门诊退费应退 17:门诊退费应补 --20:住院支付撤销 21:入院登记充值 22:住院预交金充值 23:出院结算充值 24:重新结算充值 --31:取消入院退款 32:住院预交金退款 33:出院结算退款 34:重新结算退款 --35:年度结算退款 36:年度结算充值 37:住院取消结算 */ LS_ERRSTR :=''; PZXZT00:=0; --执行状态 0:失败 1:成功 PDDLSH0:=''; LS_TYJE00:=0; LS_CZRQ00:=to_char(sysdate,'YYYYMMDD'); LS_CZSJ00:=to_char(sysdate,'HH24:MI:SS'); LS_ZFQDBM:=nvl(PZFQDBM,'QYYJJ');--支付渠道编码 LS_JGBM00:='';--机构编码 LS_JGMC00:='';--机构名称 LS_ZPKHYH:=PZPKHYH;--开户银行 LS_ZPDWMC:=PZPDWMC;--转账单位 LS_ZPH000:=PZPH000;--支票号或交易单号 LS_YJDH00:=nvl(PYJDH00,0);--医技单号或缴费单号 LS_JFBZ00:=nvl(PJFBZ00,'0');--缴费备注0:交,1:退 LS_MZZYBZ:=nvl(PMZZYBZ,'0');--门诊住院标志 0:门诊 1:住院 LS_JKQQCS:=PJKQQCS;--请求入参xml格式 LS_PAYWAY:=null; LS_ZFDDH0:=null;--院内优先退款订单 LS_JSTKLX:='0';--0:正常模式 1:交互前院内优先退款 2:结算后院内优先退款 3:平台退款成功 --判断支付字典是否正常 select count(1) into LS_COUNT0 from BM_BRZFFS where ZFFSBH=PZFFS00; if LS_COUNT0<=0 then PERRMSG:='支付字典不完整(BM_BRZFFS)!'; return; end if; --获取内部校验流水号:接口编码|缴费备注|票据序号|开户银行|转账单位|支票号码|brid00|模块名称|支付名称|支付金额| 结账单号 |是否一次补交 |支付明细编码|内部校验号 --12|0|10000341||||1619278|收预交金|微信支付|0.01|0|N|E|20180712161602 begin select substrb(SF_XT_RETURNINDEXEH(trim(PINCS00),'|', 14),1,30) into LS_NBJYDH from dual; exception when others then LS_NBJYDH:=null; end; begin select substrb(SF_XT_RETURNINDEXEH(trim(PINCS00),'|', 13),1,2) into LS_ZFMXBH from dual; exception when others then LS_ZFMXBH:=null; end; --2018.09.06 zhangyc 退款时重新取原单支付明细编码 if trim(PTKDDH0) is not null and LS_ZFMXBH is null then begin select ZFMXBH into LS_ZFMXBH from BM_ZFRZ00 where DDLSH0=PTKDDH0 and BRID00=PBRID00; exception when others then LS_ZFMXBH:=null; end; end if; if LS_ZFMXBH is null then --支付明细编码H:现金I:转账J:POS离线K:POS刷卡L:龙支付M:银联二维码D:微信离线E:微信扫码F:支付宝离线G:支付宝扫码A:榕医通B:聚合支付C:健康通N:银医通P:一卡通 begin select substrb(SF_XT_ZFMXBH(PZFFS00,LS_ZFQDBM,''),1,2) into LS_ZFMXBH from dual; exception when others then LS_ZFMXBH:=null; end; end if; if trim(PZFMXBH) is not null then select count(1) into LS_COUNT0 from BM_ZFFSMX where ZFFSBH=PZFFS00 and ZFMXBH=PZFMXBH; if nvl(LS_COUNT0,0)>0 then LS_ZFMXBH:=PZFMXBH; end if; end if; --获取原单支付明细编码 if trim(PTKDDH0) is not null and trim(PTKDDH0) not in ('0') and LS_JFBZ00 in ('1') then begin select ZFMXBH,PAYWAY into LS_ZFMXBH_ORD,LS_PAYWAY from BM_ZFRZ00 where DDLSH0=PTKDDH0 and BRID00=PBRID00; exception when others then LS_ZFMXBH_ORD:=null; end; if LS_ZFMXBH_ORD is not null then LS_ZFMXBH:=LS_ZFMXBH_ORD; end if; end if; if LS_ZFDDH0 is not null and LS_JSTKLX in ('2') then LS_DDLSH0:=LS_ZFDDH0; else --获取订单流水号 select SF_SF_PAY_DDLSH0('',LS_MZZYBZ) into LS_DDLSH0 from dual; end if; --获取病人基本信息 begin select BRID00,BRXM00,BRXB00,YBKH00,YBID00,BRZJBH,BRDH00,BRLXDH into LS_BRID00,LS_BRXM00,LS_BRXB00,LS_YBKH00,LS_YBID00,LS_BRZJBH,LS_BRDH00,LS_BRLXDH from BM_BRXXB0 where BRID00=PBRID00; exception when others then PERRMSG:='未找到有效的基本信息(BM_BRXXB0)'; return; end; if LS_JFBZ00 in ('0') then --:缴费备注0:交,1:退 LS_AMOUNT:=PJFJE00; else --:缴费备注,1:退 LS_AMOUNT:=abs(PJFJE00); end if; --住院 LS_CARDNO:=PZYHGHH; --数据统一校验 SP_SF_PAY_CHECK(PBRID00,PCZY000,PZFFS00,LS_MZZYBZ,LS_JFBZ00,PJFJE00,'',LS_ERRSTR); if (trim(LS_ERRSTR) is not null) and (PJKLXBH not in (33,43)) then PERRMSG:=LS_ERRSTR; return; end if; --插入日志主表 insert into BM_ZFRZ00( DDLSH0,CZRQ00,CZSJ00,CZY000,CZYXM0,JKLXBH,JKLXMC,ZDBH00,BRID00,BRXM00, BRXB00,YBKH00,YBID00,ICKH00,BRZJBH,BRDH00,MZZYBZ,JFBZ00,ZYGHID,ZYHGHH, JZDH00,YJDH00,ZFFS00,ZFFSMC,DJH000,JFJE00,JFRQ00,JFSJ00,ZXZTBZ,BRYE00, BZ0000,PTDDH0,ZFQD00,JYCGSJ,PTGZH0,JKXYBM,JKXYXX,JYLSH0,YKTSH0,JYLXMC, JGBM00,JGMC00,INCS00,INQTCS,OUTCS0,TKDDH0,TKJE00,TYJE00,PJXH00,ZPKHYH, ZPDWMC,ZPH000,ZFQDBM,FKTM00,ZFMXBH,NBJYDH,JKQQCS,CZYKS0,BKE284,PAYWAY )values( LS_DDLSH0,LS_CZRQ00,LS_CZSJ00,PCZY000,PCZYXM0,PJKLXBH,SF_SF_PAY_JKLXMC(PJKLXBH,0),PZDBH00,PBRID00,trim(LS_BRXM00), LS_BRXB00,trim(LS_YBKH00),trim(LS_YBID00),trim(LS_ICKH00),trim(LS_BRZJBH),trim(LS_BRDH00),LS_MZZYBZ,LS_JFBZ00,PZYGHID,PZYHGHH, PJZDH00,LS_YJDH00,PZFFS00,PZFFSMC,0,PJFJE00,null,null,'0',0, null,null,null,null,null,null,null,null,null,LS_JYLXMC, LS_JGBM00,LS_JGMC00,null,PINCS00,null,PTKDDH0,0,LS_TYJE00,LS_PJXH00,LS_ZPKHYH, LS_ZPDWMC,LS_ZPH000,LS_ZFQDBM,PFKTM00,LS_ZFMXBH,LS_NBJYDH,LS_JKQQCS,LS_CZYKS0,LS_bke284,LS_PAYWAY ); --插入接口名称---begin--- if LS_JFBZ00 in ('0') then --输入:缴费备注0:交,1:退 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','JEM000','交易码 81充值 91退款','81','0','N'); insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','FKTM00','授权码付款码',PFKTM00,'0','N'); insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','JFJE00','交易金额(分)',LS_AMOUNT*100,'0','N'); insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','DDLSH0','业务流水号',LS_DDLSH0,'0','N'); insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','BRXM00','患者姓名',trim(LS_BRXM00),'0','N'); insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','ZYID00','患者 ID',PZYGHID,'0','N'); insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','CARDNO','患者卡号',LS_CARDNO,'0','N'); insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','CZY000','操作员 ID',PCZY000,'0','D'); insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','XTBS00','系统标识','HIS','0','Y'); insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','YWBS00','业务标识 3门诊4住院','4','0','N'); insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','YQBS00','院区标识','1','0','N'); --返回参数 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'出参','ZTM000','状态码 0000成功 0001失败',null,'1','N'); insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'出参','ZTXX00','状态信息',null,'1','N'); insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'出参','ZFLX00','支付类型 WX:微信;ZFB:支付宝;UNIONPAY:银联',null,'1','N'); --支付系统生成每次收款的唯一记录号 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'出参','JYLSH0','交易订单号',null,'1','N'); insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'出参','DDZT00','订单状态 订单的交易状态,是否交易成功等',null,'1','N'); insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'出参','DDJE00','订单金额(分)',null,'1','N'); --his 系统中本次收款的记录号,需具有唯一性 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'出参','YWLSH0','业务流水号',null,'1','N'); else --退款 begin if trim(PTKDDH0) is not null then select JYLSH0, JFJE00 into LS_YPTLSH,LS_YJYJE0 from BM_ZFRZ00 where DDLSH0=PTKDDH0 and BRID00=PBRID00; end if; exception when others then LS_YPTLSH:=null; LS_YJYJE0:=0; end; insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','JEM000','交易码 81充值 91退款','91','0','Y'); insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','YPTLSH','交易订单号',LS_YPTLSH,'0','N'); insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','JFJE00','交易金额(分)',LS_YJYJE0*100,'0','N'); insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','TKDDH0','业务流水号',PTKDDH0,'0','N'); insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','TKJE00','退款金额',LS_AMOUNT*100,'0','N'); insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','DDLSH0','退款流水号',LS_DDLSH0,'0','N'); insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','TKYY00','退款原因','退款','0','N'); insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','CZY000','操作员 ID',PCZY000,'0','N'); --返回参数 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'出参','ZTM000','状态码0000成功 0001失败',null,'1','N'); insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'出参','ZTXX00','状态信息',null,'1','N'); --支付系统对一次退款交易生成的唯一记录号 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'出参','YJLSH0','退款订单号',null,'1','N'); insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'出参','TKJE01','退款金额',null,'1','N'); --平台支付时间 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'出参','TKLSH0','退款流水号',null,'1','N'); insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'出参','TKZT00','退款状态',null,'1','N'); end if; --插入接口名称---end--- if PCOMMIT='Y' then commit; end if; PZXZT00:=1;--输出:执行状态 0:失败 1:成功 PDDLSH0:=LS_DDLSH0;--输出:订单流水号 exception when no_data_found then PZXZT00:=0; PERRMSG:=substrb('执行过程SP_SF_PAY_YNZFRZ_QYYJJ错误!'||sqlerrm,1,200); when others then PZXZT00:=0; PERRMSG:=substrb('执行过程SP_SF_PAY_YNZFRZ_QYYJJ错误!'||sqlerrm,1,200); end;