prompt 院内微信支付宝业务过程(住院) SP_ZY_PAY_YNZFRZ create or replace procedure SP_ZY_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 'YXPAY' ,--输入:支付渠道编码 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 -- jlg 2018.08.07 5.0同名过程移植 ZYSF9-20180807-002 -- jlg 2018.08.13 修改医联支付operator_id、operator_name 未写入导致接口报错 ZYSF9-20180810-004 -- zhangyc 2018.08.24 修改银行卡退款 ZYSF9-20180824-002 -- zhangyc 2018.09.06 修正银联二维码退款ZFMXBM写入错误 for ZYSF9-20180906-002 -- zhangyc 2019.04.25 健康之路接口修改 by ZYSF9-20190425-001 -- zhangyc 2019.05.29 健康之路银联支付(2:银联) by ZYSF9-20190530-002 -- zhangyc 2020.07.01 处理床边院内优先退款业务PJKLXBH=43 by ZYSF9-20200703-001 -- zhangyc 2020.10.27 增加[医信]支付厂家功能 by ZYSF9-20201028-001 -- zhangyc 2021.10.13 增加医联支付(非多码)pay_way取值,LS_DMYLJYM_DMRH、LS_DMYLJYM_STK by ZYSF9-20211014-003 -- zhangyc 2022.07.14 厂家为YXPAY(channel_type优先取BM_ZFFSMX.ZYJYBM) by ZYSF9-20220715-001 -- zhangyc 2023.05.26 支付厂家为医联,退款时增加易惠退款节点outChargeNo:商户订单流水号=充值正单DDLSH0和traceNo:原平台交易流水号=充值正单JYLSH0 by ZYSF9-20230605-001 -- linzetao 2023.08.05 医联窗口退款charge_type直接取BM_ZFRZ00.PAYWAY(参考5.0需求:MZSF-20210908-001) MZSF9-20230807-001 -- zhangyc 2023.08.18 厂家为医联时,使用凭证或刷脸就诊,充值,参数未设置时,缴费表ZFMXBH不在转化(13:多码融合微信 14:多码融合支付宝) by ZYSF9-20230821-001 -- chenrh 2024-03-19 修改健康之路当面付支付方式 ZYSF13-20240325-001 ----------------------------------------------------------- as LS_COUNT0 number(5); LS_CZRQ00 char(8); LS_CZSJ00 char(8); LS_TYJE00 number(12,2); LS_TKCZJE number(12,2); --退款冲正金额 LS_HZJDFLAG char(1); --是否建档标志 1:是 0:否 LS_TRANSTYPE varchar2(50); --接口名称 LS_YYID00 varchar2(6); LS_BMYYID BM_BMBM00.YYID00%type; LS_MZZYMC varchar2(10); LS_JFBZMC varchar2(10); LS_ICKH00 IC_YHXX00.ICKH00%type; LS_KLDH00 IC_YHXX00.KLDH00%type; LS_KMH000 IC_YHXX00.KMH000%type; LS_ICKNBH IC_YHXX00.ICKNBH%type; LS_ICKSX0 IC_YHXX00.ICKSX0%type; LS_DDLSH0 BM_ZFRZ00.DDLSH0%type; LS_MZZHID SF_BRZHXX.MZZHID%type; LS_SFDJ00 SF_BRZHXX.SFDJ00%type; LS_ZYE000 SF_BRZHXX.ZYE000%type; LS_XJYE00 SF_BRZHXX.XJYE00%type; LS_ZZYE00 SF_BRZHXX.ZZYE00%type; LS_YKTYE0 SF_BRZHXX.YKTYE0%type; LS_CARDTYPE varchar2(10); --01社保卡 02市民健康卡 03院内就诊卡 04身份证 05住院病案号 06临时卡 07腕带编码 LS_CARDNO varchar2(200); --去前缀卡号 LS_KMZYH0 varchar2(200); --卡面号或住院号 LS_ACCOUNTTYPE varchar2(10); --帐户类型 01:门诊账户 02:住院账户 LS_HISCUSTID number(12); --院内ID、门诊或住院ID LS_CZFSBM varchar2(30); --充值方式编码 LS_CZFSMC varchar2(50); --充值方式名称 LS_AMOUNT number(12,2); LS_AMOUNT_MC varchar2(30); LS_PJXH00 SF_PJSYQK.PJXH00%type; LS_PJLYID BM_PJLYQK.PJLYID%type; LS_XKH000 BM_YGBM00.XKH000%type; LS_BMBH00 BM_YGBM00.BMBH00%type; LS_ERRSTR varchar2(200); LS_CHANNEL_TYPE varchar2(10); --退款渠道 1现金 2支付宝 3微信 4银联 5POS LS_YPTLSH varchar2(50); --原平台流水号 LS_YQDLSH varchar2(50); --原渠道流水号 LS_YJYJE0 number(12,2); --原交易金额 LS_USERID varchar2(50); --易惠平台应用ID或院内平台操作员编码(userid)(接口平台提供) LS_USERNAME varchar2(50); --易惠平台应用密码或院内平台操作员姓名(username)(接口平台提供) LS_APPID_MZ varchar2(50); LS_APPID_ZY varchar2(50); LS_APPSECRET_ZY varchar2(50); LS_ADDURL varchar2(100); --服务地址 LS_CAPTION varchar2(100); --标题 LS_DESCRIPTIVE varchar2(100); --描述 LS_YJDH00 BM_ZFRZ00.YJDH00%type; --医技单号或缴费单号 LS_ZFQDBM BM_ZFRZ00.ZFQDBM%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_YYQC00 XT_YYXX00.YYQC00%type; LS_YYJC00 XT_YYXX00.YYJC00%type; LS_JYLXMC BM_ZFRZ00.JYLXMC%type; --交易类型名称 --健康之路当面付参数 LS_WXSMFS BM_TYZD00.MC0000%type; --微信扫描方式 WX_QR:微信二维码支付 WX_BAR:微信条形码支付 ONE_QR:一码付 健康之路当面付:100123 LS_ZFBSMFS BM_TYZD00.MC0000%type; --支付宝扫描方式 ALI_QR:支付宝二维码支付 ALI_BAR:支付宝条形码支付 ONE_QR:一码付 健康之路当面付:100125 LS_YHKSKFS BM_TYZD00.MC0000%type;--银行卡刷卡方式 POS:POS刷卡 POS_OFF:离线POS刷卡 LS_CHANNELID BM_ZFRZMX.VALUE0%type; --渠道id (必填) 微信:100123 支付宝:100125 LS_SIGN BM_ZFRZMX.VALUE0%type; --sign (必填) LS_TOTALFEE BM_ZFRZMX.VALUE0%type; --订单金额(以分为单位,整数) (必填) LS_SUBJECT BM_ZFRZMX.VALUE0%type; --订单标题 (必填) LS_ORDERMEMO BM_ZFRZMX.VALUE0%type; --订单说明 LS_CARGETYPE BM_ZFRZMX.VALUE0%type; --支付方式: 1 支付宝 3 微信 (必填) LS_SERVICEID BM_ZFRZMX.VALUE0%type; --订单类型000:预约挂号,006:处方缴费, 005:就诊卡充值007:住院预交金充值, 008:当日挂号 LS_AUTHCODE BM_ZFRZMX.VALUE0%type; --扫码支付授权码 (必填) LS_DEVICEINFO BM_ZFRZMX.VALUE0%type; --终端设备号 LS_OPERATORID BM_ZFRZMX.VALUE0%type; --操作员id LS_OPERATORNAME BM_ZFRZMX.VALUE0%type; --操作员姓名 LS_NAME BM_ZFRZMX.VALUE0%type; --订单关联的用户姓名 LS_MOBILE BM_ZFRZMX.VALUE0%type; --订单关联的用户手机号 LS_IDCARDNO BM_ZFRZMX.VALUE0%type; --订单关联的用户身份证 LS_DOCTORCODE BM_ZFRZMX.VALUE0%type; --关联医生ID LS_DOCTORNAME BM_ZFRZMX.VALUE0%type; --关联医生名字 LS_DEPTCODE BM_ZFRZMX.VALUE0%type; --关联科室ID LS_DEPTNAME BM_ZFRZMX.VALUE0%type; --关联科室名称 LS_EXTENSION BM_ZFRZMX.VALUE0%type; --额外附加数据,查询订单时原样返回 LS_FORMAT BM_ZFRZMX.VALUE0%type; --出参格式: json 或 xml ,默认是json LS_TKDDH0 BM_ZFRZ00.TKDDH0%type; LS_NBJYDH BM_ZFRZ00.NBJYDH%type; --内部校验流水号 LS_ZFMXBH BM_ZFRZ00.ZFMXBH%type; LS_ZFMXBH_ORD BM_ZFFSMX.ZFMXBH%type; RZFRZ BM_ZFRZ00%rowtype; LS_POS_TRADE_NO varchar2(50); --交易参考号 N 银行卡交易的时候必传 LS_POS_SERIAL varchar2(50); --流水号 N 银行卡交易的时候必传 LS_POS_TRADE_DATE varchar2(50); --交易日期 N 银行卡交易的时候必传 LS_POS_ENCRYPT_CARD_NUMBER varchar2(50); --卡号加密数据 N 线下银行卡无卡退款时传 LS_CZYKS0 BM_ZFRZ00.CZYKS0%type; --操作员科室 LS_JKQQCS BM_ZFRZ00.JKQQCS%type; --请求入参xml格式 LS_MZJYBM BM_ZFFSMX.MZJYBM%type;--门诊交易厂家接口交易编码 LS_ZYJYBM BM_ZFFSMX.MZJYBM%type;--住院交易厂家接口交易编码 LS_HisMemberId BM_ZFRZMX.VALUE0%type;--his患者唯一标识 LS_IsCheckCardNo BM_ZFRZMX.VALUE0%type;--1:正常卡 0:新办卡 LS_PAYWAY BM_ZFRZ00.PAYWAY%type;--(交易渠道编码) LS_ZFDDH0 BM_ZFRZ00.DDLSH0%type;--院内优先退款订单 LS_JSTKLX varchar2(1);--0:正常模式 1:交互前院内优先退款 2:结算后院内优先退款 3:平台退款成功 LS_POSIP varchar2(50); LS_JYRQ00 SF_POSLSZ.JYRQ00%type; LS_DJH000 BM_ZFRZ00.DJH000%type; LS_PAYWAY_ORD BM_ZFRZ00.PAYWAY%type;--原单_交易渠道编码 LS_JKLXBH_ORD BM_ZFRZ00.JKLXBH%type;--原接口类型编号 0:设置服务 1:查询预交金 2:预交金充值 3:预交金退款 4:查询交易结果 LS_ZFFS00_ORD BM_ZFRZ00.ZFFS00%type; LS_isDevicePay varchar2(50);--[医信]是否刷脸设备发起支付(1:是 0:否) LS_macId varchar2(50);--[医信]电脑物理地址(MAC地址) LS_TEPSTR varchar2(50);--字符临时变量 LS_bke284 BM_ZFRZ00.bke284%type;--身份认证类型(01:读卡02:融合码06:医保码20:医疗证 03:刷脸 99:线上) LS_pay_way BM_ZFRZ00.PAYWAY%type;--医联:交易渠道(Q1:自助机 Q2:窗口) LS_ZFMXBH_DMRH BM_ZFFSMX.ZFMXBH%type;--多码融合支付明细编码(13:多码融合微信 14:多码融合支付宝) LS_DMYLJYM_XTCS varchar2(100);--医联PAYWAY参数格式:多码交易码|非多码交易码 LS_DMYLJYM_DMRH varchar2(20); --医联PAYWAY参数格式:多码交易码 LS_DMYLJYM_STK varchar2(20); --医联PAYWAY参数格式:非多码交易码(实体卡) LS_traceNo varchar2(50); --易惠:traceNo:原平台交易流水号=充值正单JYLSH0 LS_outChargeNo varchar2(50); --易惠:outChargeNo:商户订单流水号=充值正单DDLSH0 LS_ZFQDBM_Ord BM_ZFRZ00.ZFQDBM%type;--原支付渠道编码 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_TKCZJE:=0; LS_CZRQ00:=to_char(sysdate,'YYYYMMDD'); LS_CZSJ00:=to_char(sysdate,'HH24:MI:SS'); LS_ZFQDBM:=nvl(PZFQDBM,'YXPAY');--支付渠道编码 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:平台退款成功 LS_isDevicePay:='0';--[医信]是否刷脸设备发起支付(1:是 0:否) LS_macId:='';--[医信]电脑物理地址(MAC地址) LS_TEPSTR:=null;--字符临时变量 LS_bke284:=null;--身份认证类型(01:读卡02:融合码06:医保码20:医疗证 03:刷脸 99:线上) LS_pay_way:=null;--医联:交易渠道(Q1:自助机 Q2:窗口) LS_ZFMXBH_DMRH:=null;--多码融合支付明细编码(13:多码融合微信 14:多码融合支付宝) LS_DMYLJYM_XTCS:=null;--医联PAYWAY参数格式:多码交易码|非多码交易码 LS_DMYLJYM_DMRH:=null; --医联PAYWAY参数格式:多码交易码 LS_DMYLJYM_STK:=null; --医联PAYWAY参数格式:非多码交易码(实体卡) --缴费备注0:交,1:退 if LS_JFBZ00='0' then LS_JFBZMC:='消费'; else LS_JFBZMC:='退费'; end if; if LS_MZZYBZ='0' then LS_MZZYMC:='门诊'; else LS_MZZYMC:='住院'; end if; LS_HisMemberId:=PBRID00;--his患者唯一标识(BRID00) if PJKLXBH in (11) then --11:门诊建档充值 LS_IsCheckCardNo:='0';--1:正常卡 0:新办卡 else LS_IsCheckCardNo:='1';--1:正常卡 0:新办卡 end if; --获取医院ID begin select SF_XT_GETYYID00() YYID00 into LS_YYID00 from dual; exception when others then LS_YYID00:='0'; end; --医院名称 begin select YYQC00,YYJC00 into LS_YYQC00,LS_YYJC00 from XT_YYXX00 where YYID00=LS_YYID00; exception when others then LS_YYQC00:=''; LS_YYJC00:=''; end; --获取员工胸卡号 begin select XKH000,BMBH00 into LS_XKH000,LS_BMBH00 from BM_YGBM00 where YGBH00=PCZY000; exception when others then LS_XKH000:=null; LS_BMBH00:=0; end; if LS_BMBH00 not in (0) then begin select YYID00 into LS_BMYYID from BM_BMBM00 where BMBH00=LS_BMBH00; exception when others then LS_BMYYID:=null; end; end if; if nvl(PCZYKS0,0)=0 then LS_CZYKS0:=LS_BMBH00; else LS_CZYKS0:=PCZYKS0; end if; --LS_POSIP:接口报文POSIP取值 begin select substrb(SF_SF_TYZD00('支付统一平台参数','POS_IP'),1,50) into LS_POSIP from dual; exception when others then LS_POSIP:=''; end; if LS_JKQQCS is not null then begin LS_isDevicePay:=substrb(SF_SF_GETXMLNOTE('isDevicePay',LS_JKQQCS),1,50);--是否刷脸设备发起支付(1:是 0:否) LS_macId:=substrb(SF_SF_GETXMLNOTE('macId',LS_JKQQCS),1,50);--电脑物理地址(MAC地址) exception when others then LS_isDevicePay:='0'; LS_macId:=null; end; end if; --判断支付字典是否正常 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; begin LS_TEPSTR:=substrb(SF_SF_RETURNINDEXEH(trim(PINCS00),'|', 17),1,30); if instrb(':'||LS_TEPSTR||':',':'||'bke284'||':')>0 then LS_bke284:=substrb(SF_SF_RETURNINDEXEH(trim(LS_TEPSTR),':', 2),1,2); end if; exception when others then LS_bke284:=null;--身份认证类型(01:读卡02:融合码06:医保码20:医疗证 03:刷脸 99:线上) 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 JKLXBH,ZFMXBH,trim(PAYWAY)PAYWAY,trim(ZFQDBM)ZFQDBM,trim(JYLSH0)JYLSH0,trim(YKTSH0)YKTSH0,trim(PAYWAY)as PAYWAY_ORD into LS_JKLXBH_Ord,LS_ZFMXBH_ORD,LS_PAYWAY,LS_ZFQDBM_Ord,LS_YPTLSH,LS_YQDLSH,LS_PAYWAY_ORD from BM_ZFRZ00 where DDLSH0=PTKDDH0 and BRID00=PBRID00; exception when others then LS_ZFMXBH_ORD:=null; LS_ZFQDBM_Ord:=null;--原支付渠道编码 LS_YPTLSH:=null; LS_YQDLSH:=null; LS_PAYWAY_ORD:=null; end; if LS_ZFMXBH_ORD is not null then LS_ZFMXBH:=LS_ZFMXBH_ORD; end if; LS_outChargeNo:=substrb(PTKDDH0,1,50); --outChargeNo:商户订单流水号=充值正单DDLSH0 LS_traceNo :=substrb(LS_YPTLSH,1,50); --易惠:traceNo:原平台交易流水号=充值正单JYLSH0 end if; --获取BM_ZFFSMX表对应的交易码:MZJYBM:门诊交易编码 ZYJYBM:住院交易编码 if LS_ZFMXBH is not null then begin select MZJYBM,ZYJYBM into LS_MZJYBM,LS_ZYJYBM from BM_ZFFSMX where ZFFSBH=PZFFS00 and ZFMXBH=LS_ZFMXBH; exception when others then LS_MZJYBM:=null; LS_ZYJYBM:=null; end; end if; --PJKLXBH=43:出院结算院内先退款 if PJKLXBH=43 then begin LS_ZFDDH0:=trim(substrb(SF_SF_GETXMLNOTE('ZFDDH0',LS_JKQQCS),1,32));--院内优先退款订单 LS_JSTKLX:=trim(substrb(SF_SF_GETXMLNOTE('JSTKLX',LS_JKQQCS),1,1));--0:正常模式 1:交互前院内优先退款 2:结算院内优先退款 3:平台退款成功 exception when others then LS_ZFDDH0:=''; LS_JSTKLX:='0'; end; if LS_ZFDDH0 is null and PZPDWMC in ('结算院内优先退款') then LS_ZFDDH0:=trim(substrb(PZPH000,1,32)); LS_JSTKLX:='2'; 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; --应用ID或院内平台操作员编码 参考格式:易惠:1BMJLJNQA00E7B2CA8C000002523570D 医信:1000 联空网络:DEFA9850-7849-4B02-978D-F38798F0D571 select substrb(SF_XT_TYZD00('支付统一平台参数','appid'),1,100) into LS_USERID from dual; LS_APPID_MZ:=LS_USERID; --应用密码或院内平台操作员姓名 参考格式:易惠:1BMJLI16A0116E0A0A0A000027F1EB0F 医信:HIS系统 联空网络 select substrb(SF_XT_TYZD00('支付统一平台参数','appsecret'),1,100) into LS_USERNAME from dual; --住院应用ID或院内平台操作员编码 参考格式:易惠:1BMJLJNQA00E7B2CA8C000002523570D 医信:1000 联空:DEFA9850-7849-4B02-978D-F38798F0D571 select substrb(SF_XT_TYZD00('支付统一平台参数','appid_ZY'),1,100) into LS_APPID_ZY from dual; --住院应用密码或院内平台操作员姓名 参考格式:易惠:1BMJLI16A0116E0A0A0A000027F1EB0F 医信:HIS系统 联空: select substrb(SF_XT_TYZD00('支付统一平台参数','appsecret_ZY'),1,100) into LS_APPSECRET_ZY from dual; --服务地址 select substrb(SF_XT_TYZD00('支付统一平台参数','serveraddr'),1,100) into LS_ADDURL from dual; --易惠:微信扫描方式 WX_QR:微信二维码支付 WX_BAR:微信条形码支付 ONE_QR:一码付 健康之路当面付:100123 --医联:POS: POS刷卡 ALI_QR:支付宝二维码支付 ALI_BAR:支付宝条形码支付 WX_QR:微信二维码支付) --医联:WX_BAR:微信条形码支付 UNION_QR:银联二维码支付 UNION_BAR:银联条码支付 --医联:ONEPAY_BAR:一码付(条码支付)ONEPAY_QR:一码付(二维码支付) select substrb(SF_XT_TYZD00('支付统一平台参数','WXSMFS'),1,100) into LS_WXSMFS from dual; --易惠:支付宝扫描方式 ALI_QR:支付宝二维码支付 ALI_BAR:支付宝条形码支付 ONE_QR:一码付 健康之路当面付:100125 --医联:POS: POS刷卡 ALI_QR:支付宝二维码支付 ALI_BAR:支付宝条形码支付 WX_QR:微信二维码支付) --医联:WX_BAR:微信条形码支付 UNION_QR:银联二维码支付 UNION_BAR:银联条码支付 --医联:ONEPAY_BAR:一码付(条码支付)ONEPAY_QR:一码付(二维码支付) select substrb(SF_XT_TYZD00('支付统一平台参数','ZFBSMFS'),1,100) into LS_ZFBSMFS from dual; --银行卡刷卡方式 POS:POS刷卡 POS_OFF:离线POS刷卡 select substrb(SF_SF_TYZD00('支付统一平台参数','YHKSKFS'),1,100) into LS_YHKSKFS from dual; if LS_MZZYBZ='1' then --门诊住院标志 0:门诊 1:住院 if LS_APPID_ZY is not null then LS_USERID:=LS_APPID_ZY; end if; if LS_APPSECRET_ZY is not null then LS_USERNAME:=LS_APPSECRET_ZY; end if; end if; if LS_USERID is null then PERRMSG:='字典数据维护不完整(select BH0000,MC0000 from bm_tyzd00 where ZDMC00=''支付统一平台参数'' order by XSXH00)'; return; end if; if LS_USERID is null then LS_USERID:=PCZY000; end if; if LS_USERNAME is null then LS_USERNAME:=PCZYXM0; end if; if LS_XKH000 is null then LS_XKH000:=PCZY000; end if; --退款渠道 1现金 2支付宝 3微信 4银联 5POS if PZFFS00 in (24) then LS_CHANNEL_TYPE:='3'; elsif PZFFS00 in (25) then LS_CHANNEL_TYPE:='2'; else LS_CHANNEL_TYPE:=PZFFSMC; end if; if LS_JFBZ00 in ('0') then --:缴费备注0:交,1:退 LS_AMOUNT:=PJFJE00; LS_AMOUNT_MC:='充值金额'; else --:缴费备注,1:退 LS_AMOUNT:=abs(PJFJE00); LS_AMOUNT_MC:='退款金额'; end if; if LS_MZZYBZ in ('0') then --门诊住院标志 0:门诊 1:住院 begin select ICKH00,KLDH00,KMH000,ICKNBH,ICKSX0 into LS_ICKH00,LS_KLDH00,LS_KMH000,LS_ICKNBH,LS_ICKSX0 from IC_YHXX00 where BRID00=PBRID00 and ZT0000='1'; exception when others then LS_ICKH00:=null; end; select SF_SF_ICKH00_CARDNO(LS_ICKH00) into LS_CARDNO from dual; --select SF_SF_MSTCARDNO(PBRID00,'5.0',trim(LS_ICKH00),trim(LS_KLDH00),trim(LS_ICKSX0),trim(LS_ICKNBH),trim(LS_KMH000)) into LS_CARDNO from dual; --9位:社保卡 10位:居民健康卡 if length(LS_CARDNO) in (9,12) then LS_CARDTYPE:='01'; elsif length(LS_CARDNO) in (10) then LS_CARDTYPE:='02'; else LS_CARDTYPE:='03'; end if; --LS_CARDTYPE:='05';--测试用 LS_ACCOUNTTYPE:='01';--帐户类型 01:门诊账户 02:住院账户 LS_HISCUSTID:=PBRID00; --院内ID、门诊或住院ID LS_KMZYH0:=trim(LS_KMH000);--卡面号或住院号 else --住院 LS_CARDTYPE:='05'; LS_ACCOUNTTYPE:='02';--帐户类型 01:门诊账户 02:住院账户 LS_HISCUSTID:=PZYGHID; --院内ID、门诊或住院ID LS_CARDNO:=PZYHGHH; LS_KMZYH0:=trim(LS_KMH000);--卡面号或住院号 end if; --数据统一校验 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; if LS_ZFQDBM in ('YLZF','YXPAY') then LS_JGMC00:='医信支付';--机构名称 LS_JYLXMC:='';--交易类型名称 elsif LS_ZFQDBM in ('LKWL','LKWLPAY') then --LKWL:联空网络 LS_JGMC00:='联空网络';--机构名称 LS_JYLXMC:='';--交易类型名称 --付款方式或支付类型(是否必须:N)[Alipay]支付宝 [WeiXin]微信 if PZFFS00 in (24) then LS_CHANNEL_TYPE:='WeiXin'; LS_CAPTION:='微信'; elsif PZFFS00 in (25) then LS_CHANNEL_TYPE:='Alipay'; LS_CAPTION:='支付宝'; else LS_CHANNEL_TYPE:=PZFFSMC; LS_CAPTION:=PZFFSMC; end if; --标题 LS_CAPTION:=trim(LS_YYJC00)||'.'||LS_MZZYMC||'.'||trim(LS_CAPTION)||'.'||LS_JFBZMC; --描述 LS_DESCRIPTIVE:='院内订单号:'||LS_DDLSH0||' 交易金额:'||trim(to_char(abs(PJFJE00),'9999999990.00')); elsif LS_ZFQDBM in ('JKZLPAY') then --健康之路当面付 LS_JGMC00:='健康之路当面付 ';--机构名称 LS_JYLXMC:='';--交易类型名称 if PZFFS00 in (24) then --微信 LS_CHANNELID:=LS_WXSMFS;-- 渠道id (必填) 微信:100123 支付宝:100125 --chenrh 2024-03-21 LS_CARGETYPE由9改成3 LS_CARGETYPE:='3';--支付方式: 1:当面付支付宝 2:银联 3:当面付微信 4:掌医支付宝 5掌医微信 9威富通微信 10威富通支付宝 LS_CAPTION:='微信'; elsif PZFFS00 in (25) then --支付宝 LS_CHANNELID:=LS_ZFBSMFS; -- 渠道id (必填) 微信:100123 支付宝:100125 --chenrh 2024-03-21 LS_CARGETYPE由10改成1 LS_CARGETYPE:='1';--支付方式: 1:当面付支付宝 2:银联 3:当面付微信 4:掌医支付宝 5掌医微信 9威富通微信 10威富通支付宝 LS_CAPTION:='支付宝'; elsif PZFFS00 in (8) then --支付宝 LS_CHANNELID:=LS_YHKSKFS; -- 渠道id (必填) 微信:100123 支付宝:100125 LS_CARGETYPE:='2';--支付方式: 1:当面付支付宝 2:银联 3:当面付微信 4:掌医支付宝 5掌医微信 9威富通微信 10威富通支付宝 LS_CAPTION:='银联'; end if; --LS_TOTALFEE:=trim(to_char(round(LS_AMOUNT,2),'9999999990.00'));--订单金额(以分为单位,整数) (必填) --chargeType 支付方式: 1:当面付支付宝 2:银联 3:当面付微信 4:掌医支付宝 5掌医微信 9威富通微信 10威富通支付宝 if LS_MZJYBM is not null and LS_MZZYBZ='0' then LS_CARGETYPE:=LS_MZJYBM; end if; if LS_ZYJYBM is not null and LS_MZZYBZ='1' then LS_CARGETYPE:=LS_ZYJYBM; end if; --LS_TOTALFEE:=trim(to_char(round(LS_AMOUNT,2),'9999999990.00'));--订单金额(以分为单位,整数) (必填) LS_TOTALFEE:=round(LS_AMOUNT,2)*100; LS_SUBJECT:=trim(LS_YYJC00)||'.'||LS_MZZYMC||'.'||trim(LS_CAPTION)||'.'||LS_JFBZMC;--订单标题 (必填) LS_ORDERMEMO:='调用方订单号:'||LS_DDLSH0||' 病人姓名:'||trim(LS_BRXM00);--订单说明 if LS_MZZYBZ='0' then --门诊住院标志 0:门诊 1:住院 LS_SERVICEID:='005';--订单类型000:预约挂号,006:处方缴费, 005:就诊卡充值 007:住院预交金充值, 008:当日挂号 LS_SIGN:=LS_APPID_MZ;--LS_APPID_MZ;--sign (必填) else LS_SERVICEID:='007';--订单类型000:预约挂号,006:处方缴费, 005:就诊卡充值 007:住院预交金充值, 008:当日挂号 LS_SIGN:=LS_APPID_ZY;--sign (必填) end if; LS_AUTHCODE:=PFKTM00;--扫码支付授权码 (必填) LS_DEVICEINFO:=LS_YYID00;--终端设备号 LS_OPERATORID:=PCZY000;--操作员id LS_OPERATORNAME:=PCZYXM0;--操作员姓名 LS_NAME:=trim(LS_BRXM00);--订单关联的用户姓名 LS_MOBILE:=nvl(LS_BRLXDH,LS_BRDH00);--订单关联的用户手机号 LS_IDCARDNO:=trim(LS_BRZJBH);--订单关联的用户身份证 LS_CARDNO:=LS_CARDNO;--订单关联的卡号 LS_CARDTYPE:=LS_CARDTYPE;--卡类型 LS_DOCTORCODE:=null;--关联医生ID LS_DOCTORNAME:=null;--关联医生名字 LS_DEPTCODE:=null;--关联科室ID LS_DEPTNAME:=null;--关联科室名称 LS_EXTENSION:=null;--额外附加数据,查询订单时原样返回 LS_FORMAT:='xml';--出参格式: json 或 xml ,默认是json end if; if PJKLXBH=43 and LS_ZFDDH0 is not null and LS_JSTKLX in ('2') then update BM_ZFRZ00 set INCS00=PINCS00, JKQQCS=LS_JKQQCS where DDLSH0=LS_DDLSH0 and BRID00=PBRID00 ; else --插入日志主表 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 ); end if; --------------------------------------》》福建易联众医疗信息系统有限公司.Begin《《-------------------------------------- if LS_ZFQDBM in ('YLZF','YXPAY') then if PZFFS00 in (24) then LS_CHANNEL_TYPE:='3'; elsif PZFFS00 in (25) then LS_CHANNEL_TYPE:='2'; else select substrb(SF_SF_PAY_CZFS00(LS_JFBZ00,'0','0',PZFFS00),1,10) into LS_CZFSBM from dual; if LS_CZFSBM is not null then LS_CHANNEL_TYPE:=LS_CZFSBM; else --支付明细编码H:现金I:转账J:POS离线K:POS刷卡L:龙支付M:银联二维码D:微信离线E:微信扫码F:支付宝离线G:支付宝扫码A:榕医通B:聚合支付C:健康通N:银医通P:一卡通 if PZFMXBH in ('K') then LS_CHANNEL_TYPE:='5'; elsif PZFMXBH in ('M') then LS_CHANNEL_TYPE:='4'; else LS_CHANNEL_TYPE:=PZFFSMC; end if; end if; end if; if LS_MZJYBM is not null and LS_MZZYBZ='0' then LS_CHANNEL_TYPE:=LS_MZJYBM; end if; if LS_ZYJYBM is not null and LS_MZZYBZ='1' then LS_CHANNEL_TYPE:=LS_ZYJYBM; end if; if PJKLXBH in (4) then --医信统一支付.订单查询---Begin--- if LS_JFBZ00 in ('0') then --输入:缴费备注0:交,1:退 --入参: --关联系统付款时生成的流水号 system_id string 必输 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','system_id','付款HIS内部订单流水号',PTKDDH0,'0','N'); --系统ID userid number 必输 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','userid','系统ID(住院appid)',LS_APPID_ZY,'0','N'); --出参: --返回的结果 result string 成功success,fail代表失败 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'出参','result','返回的结果成功:success 失败:fail',null,'1','N'); --支付平台状态 status number 0支付失败 1已支付 2等待支付 3已退款 4退款已受理 6交易撤销 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'出参','status','订单状态(0:支付失败 1:已支付 2:等待支付 3:已退款 4:退款已受理 6:交易撤销)',null,'1','N'); --错误信息 faildes string 返回失败的情况下返回的参数 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'出参','faildes','错误信息',null,'1','N'); --HIS充值预交金成功失败标志 his_status number 0失败 1充值成功 2待充值 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'出参','his_status','HIS返回状态(0:失败 1:充值成功 2:待充值)',null,'1','N'); --渠道类型 channel_type number 渠道 1现金 2支付宝 3微信 4银联 5POS insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'出参','channel_type','渠道类型(1:现金 2:支付宝 3:微信 4:银联 5:POS)',null,'1','N'); --商户订单号 id string insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'出参','id','平台流水号',null,'1','N'); --渠道交易号 channel_id string insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'出参','channel_id','渠道流水号',null,'1','N'); else --入参数 --关联系统付款时生成的流水号 system_id string 必输 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','system_id','付款HIS内部订单流水号',PTKDDH0,'0','N'); --系统ID userid number 必输 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','userid','系统ID(住院appid)',LS_APPID_ZY,'0','N'); --出参: --返回的结果 result string 成功success,fail代表失败 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'出参','result','返回的结果成功:success 失败:fail',null,'1','N'); --支付平台状态 status number 0支付失败 1已支付 2等待支付 3已退款 4退款已受理 6交易撤销 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'出参','status','订单状态(0:支付失败 1:已支付 2:等待支付 3:已退款 4:退款已受理 6:交易撤销)',null,'1','N'); --错误信息 faildes string 返回失败的情况下返回的参数 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'出参','faildes','错误信息',null,'1','N'); --HIS充值预交金成功失败标志 his_status number 0失败 1充值成功 2待充值 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'出参','his_status','HIS返回状态(0:失败 1:充值成功 2:待充值)',null,'1','N'); --渠道类型 channel_type number 渠道 1现金 2支付宝 3微信 4银联 5POS insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'出参','channel_type','渠道类型(1:现金 2:支付宝 3:微信 4:银联 5:POS)',null,'1','N'); --商户订单号 out_trade_no string insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'出参','out_trade_no','平台流水号',null,'1','N'); --渠道交易号 trade_no string insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'出参','trade_no','渠道流水号',null,'1','N'); end if; --医信统一支付.订单查询---End--- else --插入接口名称---begin--- if LS_JFBZ00 in ('0') then --输入:缴费备注0:交,1:退 if LS_isDevicePay='1' then --是否刷脸(1:是 0:否) LS_CHANNEL_TYPE:='';--渠道(2支付宝 3微信 4银联 5 POS 刷脸支付空值); end if; insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','p_id','患者id',LS_BRID00,'0','N'); insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','id_card','病人身份证',trim(LS_BRZJBH),'0','N'); insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','account_type','账户类型(01:门诊02:住院)',LS_ACCOUNTTYPE,'0','N'); insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','p_name','患者姓名',trim(LS_BRXM00),'0','Y'); insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','system_id','订单流水号',LS_DDLSH0,'0','N'); insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','username','平台操作员姓名',LS_USERNAME,'0','Y'); insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','password','密码',null,'0','N'); insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','authCode','付款条码',PFKTM00,'0','D'); insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','WIDsubject','类型','预交金','0','Y'); insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','card_type','卡类型',LS_CARDTYPE,'0','N'); insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','id','商户订单号',null,'2','N'); insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','card_no','卡号/住院号',LS_CARDNO,'0','N'); insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','channel_type','支付渠道2:支付宝 3:微信 4:银联 5:POS',LS_CHANNEL_TYPE,'2','N'); insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','userid','平台操作员',LS_USERID,'0','N'); insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','operator_id','操作员胸卡号',LS_XKH000,'0','Y'); insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','operator_name','操作员姓名',PCZYXM0,'0','Y'); insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','amount','交易金额',trim(to_char(round(LS_AMOUNT,2),'9999999990.00')),'0','N'); --POSIP POSIP string 必输,POS支付必输 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','POSIP','POS刷卡电脑IP',LS_POSIP,'0','Y'); --2020.09.24 增加刷脸支付充值功能入参 if LS_isDevicePay='1' then --是否刷脸(1:是 0:否) --电脑物理地址 macId insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','macId','刷脸电脑MAC地址',LS_macId,'0','Y'); --是否刷脸设备发起支付 isDevicePay insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','isDevicePay','是否刷脸(1:是 0:否)',LS_isDevicePay,'0','Y'); end if; --返回参数 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'出参','result','返回的结果成功:success 失败:fail',null,'1','N'); insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'出参','faildes','错误信息',null,'1','N'); insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'出参','channel_id','渠道流水号',null,'1','N'); --HIS充值预交金成功失败标志 0失败 1充值成功 2待充值 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'出参','his_status','HIS充值标志(0:失败 1:成功 2:待充值)',null,'1','N'); --posTrans 银行卡刷卡信息(JSON标识(UF)|刷卡交易类型(01)|银行卡号(6222105496151362)|1|交易参考号(832811)|交易流水号(741939)|商户号(M00000001)|终端号(T00000001)|银联卡(02)|有效期(1118)|批次号(B0001)|成功日期(20151217)|成功时间(111423)|发卡行名称(中国工商银行)|原POS交易参考号|原POS交易流水号|原POS商户号|原终端号) insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'出参','posTrans','银行POS刷卡信息',null,'1','N'); else --退款 begin if trim(PTKDDH0) is not null then select JYLSH0,YKTSH0, JFJE00,DJH000 into LS_YPTLSH,LS_YQDLSH,LS_YJYJE0,LS_DJH000 from BM_ZFRZ00 where DDLSH0=PTKDDH0 and BRID00=PBRID00; end if; exception when others then LS_YPTLSH:=null; LS_YQDLSH:=null; LS_YJYJE0:=0; end; --银行卡获取交易日期 if (PZFFS00 in (8)) and nvl(LS_DJH000,0)>0 then begin if PMZZYBZ='0' then --输入:门诊住院标志 0:门诊 1:住院 select JYRQ00 into LS_JYRQ00 from SF_POSLSZ where BRID00=PBRID00 and DJH000=LS_DJH000; else select JYRQ00 into LS_JYRQ00 from ZY_POSLSZ where BRID00=PBRID00 and DJH000=LS_DJH000; end if; exception when others then LS_JYRQ00:=null; end; end if; --病人姓名 p_name string 可选 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','p_name','患者姓名',trim(LS_BRXM00),'0','Y'); --账号类型 account_type string 可选 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','account_type','账号类型',LS_ACCOUNTTYPE,'0','N'); --卡号类型 card_type string 可选 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','card_type','卡号类型',LS_CARDTYPE,'0','N'); --病人卡号 card_no string 可选 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','card_no','卡号/住院号',LS_CARDNO,'0','N'); --病人id p_id string 可选 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','p_id','病人id',LS_BRID00,'0','N'); --原订单名称 order_name string 可选 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','order_name','原订单名称',null,'0','N'); --退款渠道 channel_type string 退款渠道 1现金 2支付宝 3微信 4银联 5POS insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','channel_type','退款渠道 2:支付宝 3:微信 4:银联 5:POS',LS_CHANNEL_TYPE,'0','N'); --关联系统退款流水号 system_id string insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','system_id','订单流水号',LS_DDLSH0,'2','N'); --操作员id userid number 必填 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','userid','平台操作员',LS_USERID,'0','N'); insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','operator_id','操作员胸卡号',LS_XKH000,'0','Y'); insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','operator_name','操作员姓名',PCZYXM0,'0','Y'); --退款的金额 refund_free number 必选 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','refund_free','退款的金额',trim(to_char(round(LS_AMOUNT,2),'9999999990.00')),'0','N'); --退款批号 out_request_no string 退款批号(out_request_no)如果不传默认是商户订单号out_trade_no(原订单流水号PTKDDH0) insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','out_request_no','原订单流水号',PTKDDH0,'0','N'); --电子支付平台退款批号(商户订单号) id string 不输,退款批号(out_request_no)如果不传默认是商户订单号out_trade_no,商户订单号(out_trade_no),不能和 trade_no同时为空。 -- insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','id','原平台流水号',LS_YPTLSH,'2','N'); --身份证 id_card string 可选 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','id_card','身份证',trim(LS_BRZJBH),'0','N'); --渠道交易号 channel_id string 渠道交易号(trade_no),和商户订单号不能同时为空 --原渠道流水号LS_YQDLSH insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','channel_id','渠道交易号',LS_YQDLSH,'0','N'); --密码 password string 约定的密文+关联系统流水号+金额 的MD5 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','password','密码',null,'0','N'); --退款的原因说明 refund_reason string 可选 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','refund_reason','退款的原因说明','院内退款','0','Y'); --该订单下的支付总金额 amount number 必填 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','amount','原支付总金额',trim(to_char(round(LS_YJYJE0,2),'9999999990.00')),'0','N'); --POSIP POSIP string 必输,POS支付必输 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','POSIP','POS刷卡电脑IP',LS_POSIP,'0','Y'); --交易日期 if PZFFS00 in (8) then insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','org_log_date','原银行交易日期',LS_JYRQ00,'0','Y'); end if; --返回参数 --返回的结果 result string 成功success,fail代表失败 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'出参','result','返回的结果',null,'1','N'); --电子支付平台退款批号 id string --关联系统退款流水号 system_id string --订单状态 status string result:success时返回 3已退款 4退款已受理 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'出参','status','订单状态',null,'1','N'); --错误信息 faildes string 返回失败的情况下返回的参数 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'出参','faildes','错误信息',null,'1','N'); --posTrans 银行卡刷卡信息(JSON标识(UF)|刷卡交易类型(01)|银行卡号(6222105496151362)|1|交易参考号(832811)|交易流水号(741939)|商户号(M00000001)|终端号(T00000001)|银联卡(02)|有效期(1118)|批次号(B0001)|成功日期(20151217)|成功时间(111423)|发卡行名称(中国工商银行)|原POS交易参考号|原POS交易流水号|原POS商户号|原终端号) insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'出参','posTrans','银行POS刷卡信息',null,'1','N'); end if; --插入接口名称---end--- end if; end if; --------------------------------------》》福建易联众医疗信息系统有限公司.End《《-------------------------------------- --------------------------------------》》上海联空网络科技有限公司.Begin《《-------------------------------------- if LS_ZFQDBM in ('LKWL','LKWLPAY') then --付款方式或支付类型(是否必须:N)[Alipay]支付宝 [WeiXin]微信 if PZFFS00 in (24) then LS_CHANNEL_TYPE:='WeiXin'; LS_CAPTION:='微信'; elsif PZFFS00 in (25) then LS_CHANNEL_TYPE:='Alipay'; LS_CAPTION:='支付宝'; else LS_CHANNEL_TYPE:=PZFFSMC; LS_CAPTION:=PZFFSMC; end if; --标题 LS_CAPTION:=trim(LS_YYJC00)||'.'||LS_MZZYMC||'.'||trim(LS_CAPTION)||'.'||LS_JFBZMC; --描述 LS_DESCRIPTIVE:='院内订单号:'||LS_DDLSH0||' 交易金额:'||trim(to_char(abs(PJFJE00),'9999999990.00')); if LS_JFBZ00 in ('0') then --0:交 1:退--begin--交款-- --插入明细项 --调用接口的授权码(是否必须:Y) insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'head','AccessToken','调用接口的授权码',LS_USERID,'0','N'); --外部订单编号(是否必须:Y) insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'head','OutTradeNo','HIS订单流水号',LS_DDLSH0,'0','N'); --支付宝支付授权码(付款条码)(是否必须:Y) insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'head','AuthCode','付款条码',PFKTM00,'0','N'); --付款金额(是否必须:Y) insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'head','TotalAmount','付款金额',trim(to_char(abs(PJFJE00),'9999999990.00')),'0','N'); --可打折金额(是否必须:N) insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'head','DiscountableAmount','可打折金额','0','0','N'); --不可打折金额(是否必须:N) insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'head','UndiscountableAmount','不可打折金额','0','0','N'); --标题(是否必须:Y) insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'head','Caption','标题',LS_CAPTION,'0','N'); --描述(是否必须:N) insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'head','Descriptive','描述',LS_DESCRIPTIVE,'0','N'); --订单明细(是否必须:N) Json串:[{"goods_id": "apple-01","goods_name":"ipad","goods_category":"7788 230","price":" 2000.00","quantity":"1","body":"商品描述"}] insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'head','TradeDetail','订单明细','','0','N'); --操作员编号(是否必须:N) insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'head','OperatorID','操作员编号',PCZY000,'0','N'); --医院编号(是否必须:N) insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'head','HospitalID','医院编号',trim(LS_YYID00),'0','N'); --设备终端号(是否必须:N) insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'head','TerminalID','设备终端号',PZDBH00,'0','N'); --付款方式或支付类型(是否必须:N)[Alipay]支付宝 [WeiXin]微信 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'head','PayType','付款方式',LS_CHANNEL_TYPE,'0','N'); --次数(是否必须:N) insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'head','Cnt','次数','1','0','N'); --修改XML值 update BM_ZFRZMX set XML000='<'||ZDBM00||'>'||trim(VALUE0)||'' where DDLSH0=LS_DDLSH0; --插入返回值字段 --是否成功 [0]业务逻辑失败 [1]业务逻辑成功 [2]处理业务时发生错误,系统会重发3次 [3]AccessToken验证失败 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'head','IsSuccess','是否成功 [0]业务逻辑失败 [1]业务逻辑成功 [2]处理业务时发生错误,系统会重发3次 [3]AccessToken验证失败','','1','N'); --返回信息 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'head','Message','返回信息','','1','N'); --业务返回码 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'head','SubCode','业务返回码','','1','N'); --业务返回码描述 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'head','SubMessage','业务返回码描述','','1','N'); --渠道流水号 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'head','TradeNo','渠道流水号','','1','N'); --渠道流水号 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'head','OpenUserID','平台流水号','','1','N'); --交易时间 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'head','PaymentDateTime','交易时间','','1','N'); --0:交 1:退--end--交款-- else --0:交 1:退--begin--退款-- --查找原交易流水号和金额 if trim(PTKDDH0) is not null then begin select JYLSH0,YKTSH0, JFJE00 into LS_YPTLSH,LS_YQDLSH,LS_YJYJE0 from BM_ZFRZ00 where DDLSH0=PTKDDH0 and BRID00=PBRID00; exception when others then LS_YPTLSH:=null; LS_YQDLSH:=null; LS_YJYJE0:=0; end; end if; --插入明细项 --调用接口的授权码(是否必须:Y) insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'head','AccessToken','调用接口的授权码',LS_USERID,'0','N'); --商户退款请求号(是否必须:Y) 标识一次退款请求,同一笔交易多次退款需要保证唯一, insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'head','OutRequestNo','HIS订单流水号',LS_DDLSH0,'0','N'); --外部订单编号(是否必须:Y)一般指医院内部订单编号 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'head','OutTradeNo','外部订单编号',PTKDDH0,'2','N'); --支付平台订单号(是否必须:Y) 支付宝微信等第三方支付平台订单号 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'head','TradeNo','支付平台订单号',LS_YQDLSH,'2','N'); --退款金额(是否必须:Y) insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'head','RefundAmount','退款金额',trim(to_char(abs(PJFJE00),'9999999990.00')),'0','N'); --总金额(是否必须:Y) insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'head','TotalAmount','原订单总金额',trim(to_char(abs(LS_YJYJE0),'9999999990.00')),'0','N'); --退款原因(是否必须:N) insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'head','RefundmentReason','退款原因',LS_CAPTION,'0','N'); --医院编号(是否必须:N) insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'head','HospitalID','医院编号',trim(LS_YYID00),'0','N'); --设备终端号(是否必须:N) insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'head','TerminalID','设备终端号',PZDBH00,'0','N'); --付款方式或支付类型(是否必须:N)[Alipay]支付宝 [WeiXin]微信 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'head','PayType','付款方式',LS_CHANNEL_TYPE,'0','N'); --修改XML值 update BM_ZFRZMX set XML000='<'||ZDBM00||'>'||trim(VALUE0)||'' where DDLSH0=LS_DDLSH0; --插入返回值字段 --是否成功 [0]业务逻辑失败 [1]业务逻辑成功 [2]处理业务时发生错误,系统会重发3次 [3]AccessToken验证失败 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'head','IsSuccess','是否成功 [0]业务逻辑失败 [1]业务逻辑成功 [2]处理业务时发生错误,系统会重发3次 [3]AccessToken验证失败','','1','N'); --返回信息 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'head','Message','返回信息','','1','N'); --业务返回码 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'head','SubCode','业务返回码','','1','N'); --业务返回码描述 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'head','SubMessage','业务返回码描述','','1','N'); --渠道流水号 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'head','OpenUserID','平台流水号','','1','N'); --返回金额 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'head','RefundFee','返回金额','','1','N'); --返回标志 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'head','RefundChange','返回标志','','1','N'); end if; --0:交 1:退--end--退款-- end if; --------------------------------------》》上海联空网络科技有限公司.End《《-------------------------------------- --------------------------------------》》福建健康之路信息技术有限公司.Begin《《-------------------------------------- if LS_ZFQDBM in ('JKZLPAY') then --数据统一校验 SP_SF_PAY_CHECK(PBRID00,PCZY000,PZFFS00,LS_MZZYBZ,LS_JFBZ00,PJFJE00,'',LS_ERRSTR); if (trim(LS_ERRSTR) is not null) then PERRMSG:=LS_ERRSTR; return; end if; --CardType:卡类型:1:门诊 14:住院 if PMZZYBZ='0' then --输入:门诊住院标志 0:门诊 1:住院 LS_CARDTYPE:='1'; else LS_CARDTYPE:='14'; end if; if LS_JFBZ00 in ('0') then --0:交 1:退--begin--交款-- if PJKLXBH in ('4','10') then --4:查询交易结果 10:门诊支付撤销 begin select * into RZFRZ from BM_ZFRZ00 A where DDLSH0=PTKDDH0 and BRID00=PBRID00; exception when others then PERRMSG:='未找到有效的订单信息!select * BM_ZFRZ00 where DDLSH0= '||PTKDDH0; return; end; LS_YPTLSH:=RZFRZ.JYLSH0; LS_YQDLSH:=RZFRZ.YKTSH0; if LS_YPTLSH is null or LS_YPTLSH='0' then select substrb(SF_SF_PAY_JKFHZ0(RZFRZ.DDLSH0,'OrderId','1'),1,50) into LS_YPTLSH from dual;--获取平台流水号 end if; if LS_YPTLSH is null or LS_YQDLSH='0' then select substrb(SF_SF_PAY_JKFHZ0(RZFRZ.DDLSH0,'TransactionId','1'),1,50) into LS_YQDLSH from dual; --获取渠道流水号; end if; --交易查询和订单撤销--begin-- if PJKLXBH in ('4') then --4:查询交易结果 --channelId 渠道id (必填) 微信:100123 支付宝:100125 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','channelId','渠道ID 微信:100123 支付宝:100125',LS_CHANNELID,'0','N'); --sign sign (必填) insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','sign','sign',LS_SIGN,'0','N'); --cargeType 支付方式:1当面付支付宝 2:银联 3:当面付微信 4:掌医支付宝 5:掌医微信 9:威富通微信 10:威富通支付宝 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','cargeType','支付方式:1:当面付支付宝2:银联3:当面付微信4:掌医支付宝5:掌医微信9:威富通微信10:威富通支付宝',LS_CARGETYPE,'0','N'); --OrderId 平台订单id insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'出参','OrderId','平台订单号',LS_YPTLSH,'0','N'); --TransactionId 支付渠道交易流水号 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'出参','TransactionId','渠道订单号',LS_YQDLSH,'2','N'); --authCode 扫码支付授权码 (必填) insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','authCode','扫码支付授权码(条码)',RZFRZ.FKTM00,'0','N'); --operatorId 操作员id insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','operatorId','操作员id',RZFRZ.CZY000,'0','N'); --operatorName 操作员姓名 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','operatorName','操作员姓名',RZFRZ.CZYXM0,'0','N'); --format 出参格式: json 或 xml ,默认是json insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','format','出参格式json 或 xml',LS_FORMAT,'0','N'); --出参 --10000 查询成功,其他查询失败 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'出参','RespCode','10000 查询成功,其他查询失败',null,'1','N'); --RespMessage 返回信息 调用结果说明,支付失败或支付结果未知时的原因 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'出参','RespMessage','返回信息',null,'1','N'); --渠道支付结果 -1 等待用户支付,用户支付中 0 未支付、支付失败 1 支付成功 2 订单关闭或退款或撤销 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'出参','TradeResult','渠道支付结果(1:支付成功 -1:等待支付 0:支付失败 2:订单关闭)',null,'1','N'); --渠道支付结果 -1 等待用户支付,用户支付中 0 未支付、支付失败 1 支付成功 2 订单关闭或退款或撤销 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'出参','TradeState','渠道交易状态(SUCCESS:微信支付成功 TRADE_SUCCESS:支付宝支付成功)',null,'1','N'); elsif PJKLXBH in ('10') then --10:门诊支付撤销 --channelId 渠道id (必填) 微信:100123 支付宝:100125 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','channelId','渠道ID 微信:100123 支付宝:100125',LS_CHANNELID,'0','N'); --sign sign (必填) insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','sign','sign',LS_SIGN,'0','N'); --cargeType 支付方式:1:当面付支付宝2:银联3:当面付微信4:掌医支付宝5:掌医微信9:威富通微信10:威富通支付宝 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','cargeType','支付方式:1:当面付支付宝2:银联3:当面付微信4:掌医支付宝5:掌医微信9:威富通微信10:威富通支付宝',LS_CARGETYPE,'0','N'); --OrderId 平台订单id insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'出参','OrderId','平台订单号',LS_YPTLSH,'0','N'); --TransactionId 支付渠道交易流水号 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'出参','TransactionId','渠道订单号',LS_YQDLSH,'2','N'); --authCode 扫码支付授权码 (必填) insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','authCode','扫码支付授权码(条码)',RZFRZ.FKTM00,'0','N'); --HIS订单流水号 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','hisOrderId','HIS订单流水号',LS_DDLSH0,'0','N'); --operatorId 操作员id insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','operatorId','操作员id',RZFRZ.CZY000,'0','N'); --operatorName 操作员姓名 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','operatorName','操作员姓名',RZFRZ.CZYXM0,'0','N'); --format 出参格式: json 或 xml ,默认是json insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','format','出参格式json 或 xml',LS_FORMAT,'0','N'); --出参 --10000 查询成功,其他查询失败 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'出参','RespCode','10000:撤销成功,其他失败',null,'1','N'); --RespMessage 返回信息 调用结果说明,支付失败或支付结果未知时的原因 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'出参','RespMessage','返回信息',null,'1','N'); end if; --交易查询和订单撤销--end-- else --入参 --channelId 渠道id (必填) 微信:100123 支付宝:100125 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','channelId','渠道ID 微信:100123 支付宝:100125',LS_CHANNELID,'0','N'); --sign sign (必填) insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','sign','sign',LS_SIGN,'0','N'); --cargeType 支付方式:1:当面付支付宝2:银联3:当面付微信4:掌医支付宝5:掌医微信9:威富通微信10:威富通支付宝 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','cargeType','支付方式:1:当面付支付宝2:银联3:当面付微信4:掌医支付宝5:掌医微信9:威富通微信10:威富通支付宝',LS_CARGETYPE,'2','N'); --totalFee 订单金额(以分为单位,整数) (必填) insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','totalFee','交款金额(单位:分)',LS_TOTALFEE,'2','N'); --hisOrderId 调用方订单id,用以标识唯一标识 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','hisOrderId','HIS订单流水号',LS_DDLSH0,'2','N'); --subject 订单标题 (必填) insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','subject','订单标题',LS_SUBJECT,'0','N'); --orderMemo 订单说明 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','orderMemo','订单说明',LS_ORDERMEMO,'0','N'); --serviceId 订单类型000:预约挂号,006:处方缴费, 005:就诊卡充值007:住院预交金充值, 008:当日挂号 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','serviceId','订单类型',LS_SERVICEID,'0','N'); --authCode 扫码支付授权码 (必填) insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','authCode','扫码支付授权码(条码)',LS_AUTHCODE,'0','N'); --deviceInfo 终端设备号 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','deviceInfo','终端设备号',LS_DEVICEINFO,'0','N'); --operatorId 操作员id insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','operatorId','操作员id',LS_OPERATORID,'0','N'); --operatorName 操作员姓名 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','operatorName','操作员姓名',LS_OPERATORNAME,'0','N'); --name 订单关联的用户姓名 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','name','病人姓名',LS_NAME,'0','N'); --mobile 订单关联的用户手机号 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','mobile','联系电话',LS_MOBILE,'0','N'); --idCardNo 订单关联的用户身份证 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','idCardNo','身份证号',LS_IDCARDNO,'0','N'); --cardNo 订单关联的卡号 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','cardNo','卡号或住院号',trim(PZYHGHH),'0','N'); --HisMemberId:his患者唯一标识 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','HisMemberId','His患者唯一标识(BRID00)',LS_HisMemberId,'0','N'); --IsCheckCardNo:1:正常卡 0:新办卡 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','IsCheckCardNo','办卡类型(1:正常卡 0:新办卡)',LS_IsCheckCardNo,'0','N'); --cardType 卡类型 1:门诊 14:住院 卡类型 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','cardType','卡类型',LS_CARDTYPE,'0','N'); --doctorCode 关联医生ID insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','doctorCode','医生编码',LS_DOCTORCODE,'0','N'); --doctorName 关联医生名字 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','doctorName','医生姓名',LS_DOCTORNAME,'0','N'); --deptCode 关联科室ID insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','deptCode','科室编码',LS_DEPTCODE,'0','N'); --deptName 关联科室名称 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','deptName','科室名称',LS_DEPTNAME,'0','N'); --extension 额外附加数据,查询订单时原样返回 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','extension','附加信息',LS_EXTENSION,'0','N'); --format 出参格式: json 或 xml ,默认是json insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','format','出参格式json 或 xml',LS_FORMAT,'0','N'); --出参 --返回码 RespCode 10000:支付成功; 0:在调用支付接口前校验失败(此时传入的支付授权码并未使用) ; -- -1:支付失败; -2:支付结果未知; -3:系统异常,未知异常 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'出参','RespCode','10000:支付成功 -1:支付失败 -2:支付结果未知 -3:系统异常,未知异常',null,'1','N'); --RespMessage 返回信息 调用结果说明,支付失败或支付结果未知时的原因 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'出参','RespMessage','返回信息',null,'1','N'); --OrderId 平台订单id insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'出参','OrderId','平台订单号',null,'1','N'); --TransactionId 支付渠道交易流水号 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'出参','TransactionId','渠道订单号',null,'1','N'); --TradeType 交易类型 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'出参','TradeType','交易类型',null,'1','N'); --PayTime 支付时间 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'出参','PayTime','支付时间',null,'1','N'); end if; --0:交 1:退--end--交款-- else --0:交 1:退--begin--退款-- if PJKLXBH in ('4') then --4:查询交易结果 10:门诊支付撤销 begin select * into RZFRZ from BM_ZFRZ00 A where DDLSH0=PTKDDH0 and BRID00=PBRID00; exception when others then PERRMSG:='未找到有效的订单信息!select * BM_ZFRZ00 where DDLSH0= '||PTKDDH0; return; end; begin select TKDDH0 into LS_TKDDH0 from BM_ZFRZ00 where DDLSH0=RZFRZ.DDLSH0 and BRID00=PBRID00; exception when others then LS_TKDDH0:=null; end; if nvl(LS_TKDDH0,'0') not in ('0') then begin select JYLSH0,YKTSH0 into LS_YPTLSH,LS_YQDLSH from BM_ZFRZ00 where DDLSH0=LS_TKDDH0 and BRID00=PBRID00; exception when others then LS_YPTLSH:=null; LS_YQDLSH:=null; end; else LS_YPTLSH:=null; LS_YQDLSH:=null; end if; --交易查询和订单撤销--begin-- if PJKLXBH in ('4') then --4:查询交易结果 --channelId 渠道id (必填) 微信:100123 支付宝:100125 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','channelId','渠道ID 微信:100123 支付宝:100125',LS_CHANNELID,'0','N'); --sign sign (必填) insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','sign','sign',LS_SIGN,'0','N'); --cargeType 支付方式:1:当面付支付宝2:银联3:当面付微信4:掌医支付宝5:掌医微信9:威富通微信10:威富通支付宝 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','cargeType','交易场景:(1:当面付支付宝2:银联3:当面付微信4:掌医支付宝5:掌医微信9:威富通微信10:威富通支付宝)',LS_CARGETYPE,'0','N'); --OrderId 平台订单id insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'出参','orderId','原平台支付订单id',LS_YPTLSH,'0','N'); --TransactionId 支付渠道交易流水号 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'出参','transactionId','原渠道支付订单号',LS_YQDLSH,'2','N'); --authCode 扫码支付授权码 (必填) insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','hisRefundId','His原退款订单流号',PTKDDH0,'0','N'); --format 出参格式: json 或 xml ,默认是json insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','format','出参格式json 或 xml',LS_FORMAT,'0','N'); --出参 --10000 查询成功,其他查询失败 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'出参','RespCode','10000 查询成功,其他查询失败',null,'1','N'); --RespMessage 返回信息 调用结果说明,支付失败或支付结果未知时的原因 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'出参','RespMessage','返回信息',null,'1','N'); --集成平台订单状态 1退款成功 0退款失败 -1未知状态 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'出参','OrderState','平台订单状态(1:退款成功 0:退款失败 -1:未知状态)',null,'1','N'); end if; else --查找原交易流水号和金额 if trim(PTKDDH0) is not null then begin select JYLSH0,YKTSH0, JFJE00 into LS_YPTLSH,LS_YQDLSH,LS_YJYJE0 from BM_ZFRZ00 where DDLSH0=PTKDDH0 and BRID00=PBRID00; exception when others then LS_YPTLSH:=null; LS_YQDLSH:=null; LS_YJYJE0:=0; end; end if; --入参 --channelId 渠道id (必填) 微信:100123 支付宝:100125 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','channelId','渠道ID 微信:100123 支付宝:100125',LS_CHANNELID,'0','N'); --sign sign (必填) insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','sign','sign',LS_SIGN,'0','N'); --cargeType 支付方式:1:当面付支付宝2:银联3:当面付微信4:掌医支付宝5:掌医微信9:威富通微信10:威富通支付宝 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','cargeType','支付方式:1:当面付支付宝2:银联3:当面付微信4:掌医支付宝5:掌医微信9:威富通微信10:威富通支付宝',LS_CARGETYPE,'2','N'); --totalFee 订单金额(以分为单位,整数) (必填) insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','totalFee','退款金额(单位:分)',LS_TOTALFEE,'2','N'); --orderId 平台订单id insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','orderId','平台订单id',LS_YPTLSH,'0','N'); --transactionId 支付流水号 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','transactionId','支付渠道流水号',LS_YQDLSH,'0','N'); --hisRefundId 调用方订单id,用以标识唯一标识 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','hisRefundId','HIS订单流水号',LS_DDLSH0,'0','N'); --subject 订单标题 (必填) insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','subject','订单标题',LS_SUBJECT,'0','N'); --orderMemo 订单说明 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','orderMemo','订单说明',LS_ORDERMEMO,'0','N'); --reason 退款原因 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','reason','退款原因','预交金退款','0','N'); --deviceInfo 终端设备号 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','deviceInfo','终端设备号',LS_DEVICEINFO,'0','N'); --operatorId 操作员id insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','operatorId','操作员id',LS_OPERATORID,'0','N'); --operatorName 操作员姓名 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','operatorName','操作员姓名',LS_OPERATORNAME,'0','N'); --name 订单关联的用户姓名 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','name','病人姓名',LS_NAME,'0','N'); --mobile 订单关联的用户手机号 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','mobile','联系电话',LS_MOBILE,'0','N'); --idCardNo 订单关联的用户身份证 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','idCardNo','身份证号',LS_IDCARDNO,'0','N'); --cardNo 订单关联的卡号 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','cardNo','卡号或住院号',trim(PZYHGHH),'0','N'); --HisMemberId:his患者唯一标识 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','HisMemberId','His患者唯一标识(BRID00)',LS_HisMemberId,'0','N'); --IsCheckCardNo:1:正常卡 0:新办卡 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','IsCheckCardNo','办卡类型(1:正常卡 0:新办卡)',LS_IsCheckCardNo,'0','N'); --cardType 卡类型 1:门诊 14:住院 卡类型 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','cardType','卡类型',LS_CARDTYPE,'0','N'); --format 出参格式: json 或 xml ,默认是json insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'入参','format','出参格式json 或 xml',LS_FORMAT,'0','N'); --出参 --返回码 RespCode 10000:支付成功; 0:在调用支付接口前校验失败(此时传入的支付授权码并未使用) ; -- -1:支付失败; -2:支付结果未知; -3:系统异常,未知异常 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'出参','RespCode','10000:支付成功 -1:支付失败 -2:支付结果未知 -3:系统异常,未知异常',null,'1','N'); --RespMessage 返回信息 调用结果说明,支付失败或支付结果未知时的原因 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'出参','RespMessage','返回信息',null,'1','N'); --OrderId 平台订单id insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'出参','OrderId','平台订单号',null,'1','N'); --TransactionId 支付渠道交易流水号 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'出参','TransactionId','渠道订单号',null,'1','N'); --TradeType 交易类型 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'出参','TradeType','交易类型',null,'1','N'); --PayTime 支付时间 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'出参','PayTime','支付时间',null,'1','N'); --0:交 1:退--end--退款-- end if; end if; --修改xml值name=value update BM_ZFRZMX set XML000=ZDBM00||'='||trim(VALUE0) where DDLSH0=LS_DDLSH0 ; end if; --------------------------------------》》福建健康之路信息技术有限公司.End《《-------------------------------------- --------------------------------------》》福建易联众医联信息技术股份有限公司.Begin《《-------------------------------------- --医联支付:交易状态(trade_status) --init 初始化 ing 等待 succ 成功 ext 异常(需要打印失败凭条)closed 关闭fail 充值失败已退款 if upper(LS_ZFQDBM) in ('YLPAY') then --Q:医联支付 --查找字典维护是否正常 --charge_type 充值方式 Y 见4.1 --CASH:现金 POS: POS刷卡 ALI_QR:支付宝二维码支付 ALI_BAR:支付宝条形码支付 WX_QR:微信二维码支付) --WX_BAR:微信条形码支付 UNION_QR:银联二维码支付 UNION_BAR:银联条码支付 --ONEPAY_BAR:一码付(条码支付)ONEPAY_QR:一码付(二维码支付) --SF_SF_PAY_CZFS00:缴费备注 0:交 1:退 \返回类型 0:院内 1:平台 其它\返回编码类型 0:编码 1:名称\支付方式编码 select SF_SF_PAY_CZFS00(LS_JFBZ00,upper(LS_ZFQDBM),'0',PZFFS00) into LS_CHANNEL_TYPE from dual; --充值方式 if LS_CHANNEL_TYPE is null then PERRMSG:='充值方式不能为空,请核对字典参数维护是否正常!'; return; end if; --数据统一校验 SP_SF_PAY_CHECK(PBRID00,PCZY000,PZFFS00,LS_MZZYBZ,LS_JFBZ00,PJFJE00,'',LS_ERRSTR); if (trim(LS_ERRSTR) is not null) then PERRMSG:=LS_ERRSTR; return; end if; LS_OPERATORID:=trim(LS_XKH000); LS_OPERATORNAME:=trim(PCZYXM0); LS_pay_way:='Q2';--医联:交易渠道(Q1:自助机 Q2:窗口) --根据部门医院id获取对应配置交易码LS_BMYYID (多码宁化:总院传Q7中医院Q8) LS_DMYLJYM_XTCS:=substrb(SF_SF_TYZD00('支付统一平台参数',LS_BMYYID),1,100);--参数格式:多码交易码|非多码交易码 if LS_DMYLJYM_XTCS is not null then LS_DMYLJYM_DMRH:=substrb(SF_SF_RETURNINDEXEH(LS_DMYLJYM_XTCS,'|', 1),1,20); --医联PAYWAY参数格式:多码交易码 LS_DMYLJYM_STK:=substrb(SF_SF_RETURNINDEXEH(LS_DMYLJYM_XTCS,'|', 2),1,20); --医联PAYWAY参数格式:非多码交易码(实体卡) if LS_DMYLJYM_STK is not null then --医联PAYWAY参数格式:非多码交易码(实体卡) LS_pay_way:=LS_DMYLJYM_STK; end if; end if; if LS_JFBZ00 in ('0') then --0:交 1:退--begin--交款-- --微信和支付--begin--- if PZFFS00 in (24,25) then --身份认证类型=03:刷脸 06:医保码--begin--- if LS_bke284 in ('03','06')and LS_DMYLJYM_DMRH is not null then ---2023.08.18 增加条件判断LS_DMYLJYM_DMRH为空不处理 if LS_DMYLJYM_DMRH is not null then LS_pay_way:=LS_DMYLJYM_DMRH; --医联PAYWAY参数格式:多码交易码 end if; --'13','多码融合微信' '14','多码融合支付宝' if PZFFS00=24 then LS_ZFMXBH_DMRH:='13';--多码融合支付明细编码(13:多码融合微信 14:多码融合支付宝) elsif PZFFS00=25 then LS_ZFMXBH_DMRH:='14';--多码融合支付明细编码(13:多码融合微信 14:多码融合支付宝) end if; end if; --身份认证类型=03:刷脸 06:医保码--end--- end if; --微信和支付--end--- --请求参数 说明 是否必传 备注 --funid YLPAY.01.01.01 Y insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'Header','funid','接口方法','YLPAY.01.01.01','0','N'); if PMZZYBZ='0' then --输入:门诊住院标志 0:门诊 1:住院 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'Header','sign','appid',LS_APPID_MZ,'0','N'); else insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'Header','sign','appid',LS_APPID_ZY,'0','N'); end if; --charge_type 充值方式 Y 见4.1 --POS: POS刷卡 ALI_QR:支付宝二维码支付 ALI_BAR:支付宝条形码支付 WX_QR:微信二维码支付) --WX_BAR:微信条形码支付 UNION_QR:银联二维码支付 UNION_BAR:银联条码支付 --ONEPAY_BAR:一码付(条码支付)ONEPAY_QR:一码付(二维码支付) --YYID00 医院ID 根据操作员所在部门对应YYID00值; insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'Body','YYID00','医院ID',LS_BMYYID,'0','N'); insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'Body','YYQC00','医院全称',LS_YYQC00,'0','N'); insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'Body','charge_type','充值方式',LS_CHANNEL_TYPE,'0','N'); --charge_no 充值流水号 Y 调用方生成,保证唯一性 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'Body','charge_no','His订单号',LS_DDLSH0,'0','N'); --pay_way 交易渠道 Y 见4.2 --Q1:自助机 Q2:窗口 Q3:医生工作站 Q4:护士站 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'Body','pay_way','交易渠道(Q1:自助机 Q2:窗口)',nvl(LS_pay_way,'Q2'),'0','N'); --amount 交易金额(元) 例如: 100.01 Y insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'Body','amount','交易金额(元)',trim(to_char(round(LS_AMOUNT,2),'9999999990.00')),'2','N'); --card_no 卡号 Y 测试卡号:DA4424530 --LS_CARDNO:='DA4424530'; insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'Body','card_no','卡号',LS_CARDNO,'0','N'); --card_type 卡类型 Y 见4.3 --01:社保卡 02:就诊卡 03:身份证 04:住院号 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'Body','card_type','卡类型(01:社保卡02:就诊卡)',nvl(LS_CARDTYPE,'02'),'0','N'); --account_type 账号类型 Y 见4.4 --01:门诊 02:住院 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'Body','account_type','账号类型(01:门诊 02:住院)',nvl(LS_ACCOUNTTYPE,'02'),'0','N'); --id_no 身份证号 N insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'Body','id_no','身份证号',LS_IDCARDNO,'0','N'); --name 姓名 Y insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'Body','name','病人姓名',LS_BRXM00,'0','N'); --inpatient_id 住院号 N 账户类型为住院时要传 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'Body','inpatient_id','住院号',PZYHGHH,'0','N'); --patient_id 院内病人 ID Y insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'Body','patient_id','院内病人ID或住院ID',LS_BRID00,'0','N'); --operator_id 操作员编号 Y 测试操作员:zzj insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'Body','operator_id','操作员编号',LS_OPERATORID,'0','N'); --operator_name 操作员姓名 Y 测试操作姓名:自助机 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'Body','operator_name','操作员姓名',LS_OPERATORNAME,'0','N'); --auth_code 付款码 N 微信/支付宝条码支付需传入 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'Body','auth_code','付款条码',PFKTM00,'0','N'); --返回数据 说明 是否必传 备注 --amount 交易金额(元) 例如: 100.01 Y --pos_serial POS流水号 N 银行卡交易的时候传出 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'Body','pos_serial','POS流水号','','1','N'); --pos_trade_no 参考号 N 银行卡交易的时候传出 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'Body','pos_trade_no','POS参考号','','1','N'); --pos_bank_card 银行卡卡号 N 银行卡交易的时候传出 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'Body','pos_bank_card','POS银行卡卡号','','1','N'); --pos_mch 商户号 N 银行卡交易的时候传出 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'Body','pos_mch','POS商户号','','1','N'); --pos_terminal 终端号 N 银行卡交易的时候传出 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'Body','pos_terminal','POS终端号','','1','N'); --pos_mearch_name 商户名称 N 银行卡交易的时候传出 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'Body','pos_mearch_name','POS商户名称','','1','N'); --pos_batch 批次号 N 银行卡交易的时候传出 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'Body','pos_batch','POS批次号','','1','N'); --pos_trade_date 交易日期 N 银行卡交易的时候传出 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'Body','pos_trade_date','POS交易日期','','1','N'); --pos_trade_time 交易时间 N 银行卡交易的时候传出 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'Body','pos_trade_time','POS交易时间','','1','N'); --pos_bank_name 发卡行 N 银行卡交易的时候传出 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'Body','pos_bank_name','POS发卡行','','1','N'); --pos_encrypt_card_number 加密卡号 N 银行卡交易的时候传出 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'Body','pos_encrypt_card_number','POS加密卡号','','1','N'); --out_trade_no 平台流水号 N insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'Body','out_trade_no','平台流水号','','1','N'); --trade_no 微信\支付宝等流水号 N insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'Body','trade_no','渠道流水号','','1','N'); --trade_time 交易时间 N insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'Body','trade_time','平台交易时间','','1','N'); --account_balance 账户余额 N insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'Body','account_balance','账户余额','','1','N'); --pay_type 支付类型编码 N 见4.4 扫码付传出 --1:龙支付2:微信 3:支付宝 4:银联 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'Body','pay_type','支付类型编码(1:龙支付2:微信 3:支付宝 4:银联)','','1','N'); --his_no HIS 系统跟踪号 N HIS交易状态为succ时返回 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'Body','his_no','His系统跟踪号','','1','N'); --修改XML值 update BM_ZFRZMX set XML000='<'||ZDBM00||'>'||trim(VALUE0)||'' where DDLSH0=LS_DDLSH0; end if;--0:交 1:退--end--交款-- --医联支付退款-->开始 if LS_JFBZ00 in ('1') then --0:交 1:退--begin--退款-- begin if trim(PTKDDH0) is not null then select JYLSH0,YKTSH0, JFJE00 into LS_YPTLSH,LS_YQDLSH,LS_YJYJE0 from BM_ZFRZ00 where DDLSH0=PTKDDH0 and BRID00=PBRID00; end if; exception when others then LS_YPTLSH:=null; LS_YQDLSH:=null; LS_YJYJE0:=0; end; LS_pay_way:=nvl(LS_PAYWAY,'Q2');--医联:交易渠道(Q1:自助机 Q2:窗口) if LS_DMYLJYM_STK is not null then --医联PAYWAY参数格式:非多码交易码(实体卡) LS_pay_way:=LS_DMYLJYM_STK; end if; --微信和支付--begin--- if PZFFS00 in (24,25) then if LS_bke284 in ('03','06') and LS_ZFMXBH_ORD in ('13','14') and LS_PAYWAY is null then --身份认证类型(01:读卡02:融合码06:医保码20:医疗证 03:刷脸 99:线上) if LS_DMYLJYM_DMRH is not null then LS_pay_way:=LS_DMYLJYM_DMRH; --医联PAYWAY参数格式:多码交易码 end if; end if; end if; --微信和支付--end-- --请求参数 说明 是否必传 备注 --funid YLPAY.01.01.01 Y insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'Header','funid','接口方法','YLPAY.01.01.02','0','N'); if PMZZYBZ='0' then --输入:门诊住院标志 0:门诊 1:住院 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'Header','sign','appid',LS_APPID_MZ,'0','N'); else insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'Header','sign','appid',LS_APPID_ZY,'0','N'); end if; --charge_type 充值方式 Y 见4.1 --POS: POS刷卡 ALI_QR:支付宝二维码支付 ALI_BAR:支付宝条形码支付 WX_QR:微信二维码支付) --WX_BAR:微信条形码支付 UNION_QR:银联二维码支付 UNION_BAR:银联条码支付 --ONEPAY_BAR:一码付(条码支付)ONEPAY_QR:一码付(二维码支付) --/* --2023.08.05 zhangyc 参考5.0处理微信公众号需求:MZSF-20210908-001 if LS_YYID00='223510' then --223510 莆田市秀屿区医院 LS_CHANNEL_TYPE:=substrb(nvl(LS_PAYWAY_ORD,LS_CHANNEL_TYPE),1,20); end if; insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'Body','charge_type','充值方式',LS_CHANNEL_TYPE,'0','N'); --*/ --YYID00 医院ID 根据操作员所在部门对应YYID00值; insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'Body','YYID00','医院ID',LS_BMYYID,'0','N'); insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'Body','YYQC00','医院全称',LS_YYQC00,'0','N'); --2023.05.26 如果是易惠充值 out_trade_no发送LS_outChargeNo以及增加节点outChargeNo、traceNo--begin-- if LS_ZFQDBM_Ord in ('YHPAY') or LS_JKLXBH_Ord in ('2') then LS_YPTLSH:=substrb(nvl(trim(LS_outChargeNo),trim(LS_YPTLSH)),1,50); end if; --traceNo:商户订单流水号=充值正单JYLSH0 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'Body','traceNo','原平台交易流水号',LS_traceNo,'0','N'); --outChargeNo:商户订单流水号=充值正单DDLSH0 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'Body','outChargeNo','商户订单流水号',LS_outChargeNo,'0','N'); --out_trade_no 平台流水号 Y insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'Body','out_trade_no','原平台流水号',LS_YPTLSH,'2','N'); --refund_no 退款His订单号,保证唯一性 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'Body','refund_no','退款His订单号',LS_DDLSH0,'0','N'); --pos_trade_no 交易参考号 N 银行卡交易的时候必传 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'Body','pos_trade_no','银行交易参考号',LS_POS_TRADE_NO,'0','N'); --pos_serial 流水号 N 银行卡交易的时候必传 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'Body','pos_serial','银行流水号',LS_POS_SERIAL,'0','N'); --pos_trade_date 交易日期 N 银行卡交易的时候必传 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'Body','pos_trade_date','银行交易日期',LS_POS_TRADE_DATE,'0','N'); --pos_encrypt_card_number 卡号加密数据 N 线下银行卡无卡退款时传 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'Body','pos_encrypt_card_number','银行卡号加密数据',LS_POS_ENCRYPT_CARD_NUMBER,'2','N'); --pay_way 交易渠道 Y 见4.2 --Q1:自助机 Q2:窗口 Q3:医生工作站 Q4:护士站 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'Body','pay_way','交易渠道(Q1:自助机 Q2:窗口)',nvl(LS_pay_way,'Q2'),'0','N'); --amount 交易金额(元) 例如: 100.01 Y insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'Body','refund_amount','退款金额(元)',trim(to_char(round(LS_AMOUNT,2),'9999999990.00')),'2','N'); --card_no 卡号 Y 测试卡号:DA4424530 --LS_CARDNO:='DA4424530'; insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'Body','card_no','卡号',LS_CARDNO,'0','N'); --card_type 卡类型 Y 见4.3 --01:社保卡 02:就诊卡 03:身份证 04:住院号 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'Body','card_type','卡类型(01:社保卡02:就诊卡)',nvl(LS_CARDTYPE,'02'),'0','N'); --account_type 账号类型 Y 见4.4 --01:门诊 02:住院 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'Body','account_type','账号类型(01:门诊 02:住院)',nvl(LS_ACCOUNTTYPE,'02'),'0','N'); --id_no 身份证号 N insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'Body','id_no','身份证号',LS_IDCARDNO,'0','N'); --name 姓名 Y insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'Body','name','病人姓名',LS_BRXM00,'0','N'); --inpatient_id 住院号 N 账户类型为住院时要传 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'Body','inpatient_id','住院号',PZYHGHH,'0','N'); --patient_id 院内病人 ID Y insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'Body','patient_id','院内病人ID或住院ID',LS_BRID00,'0','N'); --operator_id 操作员编号 Y 测试操作员:zzj insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'Body','operator_id','操作员胸卡号',LS_OPERATORID,'0','N'); --operator_name 操作员姓名 Y 测试操作姓名:自助机 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'Body','operator_name','操作员姓名',LS_OPERATORNAME,'0','N'); --operator_password 操作员密码 N 特定项目使用 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'Body','operator_password','操作员密码',null,'0','N'); --返回数据 说明 是否必传 备注 --amount 交易金额(元) 例如: 100.01 Y --pos_serial POS流水号 N 银行卡交易的时候传出 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'Body','pos_serial','POS流水号','','1','N'); --pos_trade_no 参考号 N 银行卡交易的时候传出 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'Body','pos_trade_no','POS参考号','','1','N'); --pos_bank_card 银行卡卡号 N 银行卡交易的时候传出 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'Body','pos_bank_card','POS银行卡卡号','','1','N'); --pos_mch 商户号 N 银行卡交易的时候传出 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'Body','pos_mch','POS商户号','','1','N'); --pos_terminal 终端号 N 银行卡交易的时候传出 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'Body','pos_terminal','POS终端号','','1','N'); --pos_mearch_name 商户名称 N 银行卡交易的时候传出 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'Body','pos_mearch_name','POS商户名称','','1','N'); --pos_batch 批次号 N 银行卡交易的时候传出 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'Body','pos_batch','POS批次号','','1','N'); --pos_trade_date 交易日期 N 银行卡交易的时候传出 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'Body','pos_trade_date','POS交易日期','','1','N'); --pos_trade_time 交易时间 N 银行卡交易的时候传出 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'Body','pos_trade_time','POS交易时间','','1','N'); --pos_bank_name 发卡行 N 银行卡交易的时候传出 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'Body','pos_bank_name','POS发卡行','','1','N'); /* --pos_encrypt_card_number 加密卡号 N 银行卡交易的时候传出 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'Body','pos_encrypt_card_number','POS加密卡号','','1','N'); */ --trade_no 交易跟踪号 N 扫码付被扫的时候传出 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'Body','trade_no','交易跟踪号','','1','N'); --trade_time 交易时间 N insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'Body','trade_time','平台交易时间','','1','N'); --out_request_no 退款请求订单号 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'Body','out_request_no','退款请求订单号','','1','N'); /* --account_balance 账户余额 N insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'Body','account_balance','账户余额','','1','N'); --pay_type 支付类型编码 N 见4.4 扫码付传出 --1:龙支付2:微信 3:支付宝 4:银联 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'Body','pay_type','支付类型编码(1:龙支付2:微信 3:支付宝 4:银联)','','1','N'); --his_no HIS 系统跟踪号 N HIS交易状态为succ时返回 insert into BM_ZFRZMX(DDLSH0,MXID00,CSLXMC,ZDBM00,ZDSM00,VALUE0,FSLX00,SFJM00) values(LS_DDLSH0,SQ_BM_ZFRZMX_MXID00.nextval,'Body','his_no','His系统跟踪号','','1','N'); */ --修改XML值 update BM_ZFRZMX set XML000='<'||ZDBM00||'>'||trim(VALUE0)||'' where DDLSH0=LS_DDLSH0; end if;--0:交 1:退--end--退款-- --医联支付退款-->结束 --修改PAYWAY update BM_ZFRZ00 Set PAYWAY=nvl(LS_pay_way,PAYWAY),ZFMXBH=nvl(LS_ZFMXBH_DMRH,ZFMXBH) where DDLSH0=LS_DDLSH0 and BRID00=PBRID00; 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_ZY_PAY_YNZFRZ错误!'||sqlerrm,1,200); when others then PZXZT00:=0; PERRMSG:=substrb('执行过程SP_ZY_PAY_YNZFRZ错误!'||sqlerrm,1,200); end; / show error; --%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%