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)|银行卡号([REDACTED])|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)|银行卡号([REDACTED])|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)||'</'||ZDBM00||'>'   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)||'</'||ZDBM00||'>'   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)||'</'||ZDBM00||'>'   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)||'</'||ZDBM00||'>'   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;

--%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%