背景
项目上使用的HIS程序(C/S架构:PowerBuilder+Oracle12c)需要对接第三方支付系统(REST接口)实现收退费。
为了尽量实现对现有的收费模块做最少改动(主要还是PB功力不够,没把握),决定通过PL/SQL完成接口交互模块,PB只完成数据写入和存储过程调用。
程序运行环境
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
相关函数
程序包 | 作用描述 |
---|---|
UTL_HTTP | 发送http请求 |
DBMS_CRYPTO | 数据加解密 |
UTL_I18N | 字符串和16进制互转 |
代码
declare
/*
-- 请求服务url,此处ip和端口需要配置ACL
*/
V_URL constant varchar2(50) := 'http://111.111.111.87:8081/ta404/mzjzk/';
-- 医疗机构编码
V_AKB020 constant varchar2(8) := '2020';
-- 医疗机构密钥
V_AES_KEY constant raw(16) := 'd87da23b8e3c6e9b799914c4d6f2af87';
/*--------------------------------------------------
|| 函数名称:fun_http_aes
|| 功能描述:用于发起http请求rest接口
||------------------------------------------------*/
function fun_http_aes(prm_url in varchar2, prm_data in clob) return clob is
req utl_http.req;
resp utl_http.resp;
v_resp_data varchar2(4000)