苹果签名

iphoneqm
首页 > 苹果签名 > 正文内容

尚医通 (二十五) --------- 医院接口开发

admin2个月前 (03-08)苹果签名49

  ① 找到资源文件夹下面的 hospital-manage 项目,导入 idea

  ② 导入sql,路径:hospital-manage/资源文件/sql/表结构.sql

  ③ 修改 application-dev.yml 文件数据库连接

  ④ 启动项目

  ① 访问项目

  浏览器:://localhost:9998/,如图

  ② 医院设置

  我们在尚医通管理后台设置的医院信息配置到医院接口模拟系统,如图:

  配置参数:

  医院 code:尚医通分配的医院 code签名 key:尚医通分配的签名 key统一预约挂号平台基础路径:尚医通接口基础路径

  上传接口包括的相关操作有医院、科室与排班等。

  对应的测试数据在:hospital-manage/资源文件/示例数据。

  回调接口包括预约下单、更新支付状态和取消预约等。

  ① 业务术语

  医院编号:医院与尚医通合作后,尚医通合提供给医院的唯一标识ID号(hoscode)。

  签名密钥:医院与尚医通合作后,尚医通提供给医院,用于接口调用的 MD5 数字签名算法的密码串 (signKey)。

  ② 安全控制

  接口采用数据签名的方式来保证医院与尚医通系统间的身份验证、中间信息传递的完整性,以便进行电子商务安全当中非常重要的交易身份辨识、不可抵赖、防止篡改等功能。

  ③ 业务接口

  传参说明:

  所有参数递交的方式必须为 POST,参数值编码为 gb2312。如果采用拼接(如://localhost?a=1&b=李四) 的形式提交,传参时要对参数值进行 url 编码,尤其是汉字、网址等。采用 Form 表单形式提交则不需要。参数值不要带空格。

  验签参数sign生成:

  a、组成加密串。所有变量值按照参数名 (不包含sign参数) 升序用 | 连接,最后连接 signKey。

  b、加密。采用 32 位 MD5 小写 (编码utf-8) 加密。

  c、例:假设接口参数 a=1,b=张三,c=13012345678,指派给商户的签名密钥signKey=1234567890,则加密串如下:。

  d、MD5(32位小写) 加密值核对。

  所有的字段都使用驼峰形式,如:agent_id 改为 agentId

  返回/通知结果:所有接口同步返回

  ④ 平台接口

  A、上传医院

  医院的基本信息与规则信息

  提交地址:://localhost/api/hosp/saveHospital

  请求参数:变量定义

  字段名类型长度必输说明hoscodestring30是给医院分配的唯一标识hosnamestring50是医院名称hostypestring1是医院类型(1:三级甲等,2:三级乙等,3:二级甲等,4:二级乙等,5:一级)provinceCodestring18是省code (国家统计局对应省的code)cityCodestring50是市code (国家统计局对应市的code)districtCodestring10是区code(国家统计局对应区的code)addressstring20是详情地址logoDatastring11是医院logo(转换为base64字符串)introstring是医院简介routestring255是坐车路线bookingRulestring8000是预约规则,json数据timestamplong是时间戳,从1970-01-01 00:00:00算起的毫秒数signstring32是验签参数

  bookingRule 例子:

  bookingRule 说明:属性说明

  cycle:预约周期releaseTime:放号时间stopTime:停挂时间quitDay:退号截止天数(如:就诊前一天为-1,当天为0)quitTime:退号时间rule:预约规则,以数组形式传递

  同步返回:

  结果参数含义:

  字段名类型长度必输说明codestring是结果编码。200:请求成功。不等于200:请求失败(message:失败原因)messagestring100是结果描述datastring5000是业务数据

  B、上传科室

  科室信息:

  提交地址:://localhost/api/hosp/saveDepartment

  请求参数:

  变量定义

  字段名类型长度必输说明hoscodestring30是给医院分配的唯一标识depcodestring50是科室编号depnamestring1是科室名称introstring18是科室描述bigcodestring50是大科室编号bignamestring10是大科室名称addressstring20是详情地址timestamplong是时间戳。从1970-01-01 00:00:00算起的毫秒数signstring32是验签参数

  同步返回:

  结果参数含义

  字段名类型长度必输说明codestring是结果编码。200:请求成功;不等于200:请求失败(message:失败原因)messagestring100是结果描述datastring5000是业务数据

  C、上传排班

  排班信息

  提交地址:://localhost/api/hosp/saveSchedule

  请求参数:

  变量定义

  字段名类型长度必输说明hoscodestring30是给医院分配的唯一标识depcodestring20是科室编号titlestring30是职称docnamestring30是医生名称skillstring300是擅长技能workDatestring10是安排日期(yyyy-MM-dd)workTimeint是安排时间 (0:上午 1:下午)reservedNumberint可预约数availableNumberint剩余预约数amountstring5挂号费statusint排班状态 (-1:停诊 0:停约 1:可约)hosScheduleIdstring30排班编号 (医院自己的排班主键)timestamplong是时间戳,从1970-01-01 00:00:00算起的毫秒数signstring32是

  同步返回 :

  结果参数含义

  字段名类型长度必输说明codestring是结果编码。200:请求成功,不等于200:请求失败 (message:失败原因)messagestring100是结果描述datastring5000是业务数据

  D、查询医院

  医院信息

  提交地址:://localhost/api/hosp/hospital/show

  请求参数:

  变量定义

  字段名类型长度必输说明hoscodestring30是给医院分配的唯一标识timestamplong是时间戳,从1970-01-01 00:00:00算起的毫秒数signstring32是验签参数。

  同步返回:

  结果参数含义

  字段名类型长度必输说明codestring是结果编码,200:请求成功。不等于200:请求失败 (message:失败原因)messagestring100是结果描述datastring5000是业务数据

  E、查询科室

  科室信息

  提交地址:://localhost/api/hosp/department/list

  请求参数

  变量定义

  字段名类型长度必输说明hoscodestring30是给医院分配的唯一标识pageNumInt是第几页pageSizeInt是每页个数timestamplong是时间戳。从1970-01-01 00:00:00算起的毫秒数signstring32是验签参数。

  同步返回

  结果参数含义

  字段名类型长度必输说明codestring是结果编码,200:请求成功。不等于200:请求失败 (message:失败原因)messagestring100是结果描述datastring5000是业务数据

  F、查询排班

  医院信息

  提交地址:://localhost/api/hosp/schedule/list

  请求参数

  变量定义:

  字段名类型长度必输说明hoscodestring30是给医院分配的唯一标识pageNumInt是第几页pageSizeInt是每页个数timestamplong是时间戳,从 1970-01-01 00:00:00 算起的毫秒数signstring32是验签参数

  同步返回

  结果参数含义:

  字段名类型长度必输说明codestring是结果编码,200:请求成功,不等于200:请求失败 (message:失败原因)messagestring100是结果描述datastring5000是业务数据

尚医通 (二十五) --------- 医院接口开发

  G、删除科室

  删除科室信息

  提交地址:://localhost/api/hosp/department/remove

  请求参数

  变量定义:

  字段名类型长度必输说明hoscodestring30是给医院分配的唯一标识depcodestring30是科室编号timestamplong是时间戳,从1970-01-01 00:00:00算起的毫秒数signstring32是验签参数

  同步返回

  结果参数含义:

  字段名类型长度必输说明codestring是结果编码 200:请求成功。不等于200:请求失败 (message:失败原因)messagstring100是结果描述datastring5000是业务数据

  H、删除排班

  删除排班信息

  提交地址:://localhost/api/hosp/schedule/remove

  请求参数:

  变量定义

  字段名类型长度必输说明hoscodestring30是给医院分配的唯一标识hosScheduleIdstrin30排班编号 (医院自己的排班主键)timestamplong是时间戳,从1970-01-01 00:00:00算起的毫秒数signstring32是验签参数

  同步返回

  结果参数含义

  字段名类型长度必输说明codestring是结果编码。200:请求成功,不等于200:请求失败 (message:失败原因)messagestring100是结果描述datastring5000是业务数据

  ⑤ 医院接口

  A、预约下单

  医院的基本信息与规则信息

  提交地址:

  请求参数:

  变量定义

  字段名类型长度必输说明hoscodestring30是给医院分配的唯一标识depcodestring20是科室编号hosScheduleIdstring30排班编号 (医院自己的排班主键)reserveDatestring10是安排日期 (yyyy-MM-dd)reserveTimeint是安排时间(0:上午 1:下午)amountstring5挂号费namestring20就诊人姓名sexint就诊人性别birthdatestring20就诊人出生年月phonestring11就诊人手机isMarryint就诊人是否结婚provinceCodestring50cityCodestring50是市code (国家统计局对应市的code)districtCodestring10是区code (国家统计局对应区的code)addressstring20是就诊人详情地址contactsNamestring11是联系人姓名contactsCertificatesTypeint否联系人证件类型contactsCertificatesNostring30是联系人证件号contactsPhonestring11是联系人手机isInsureint是否有医保timestamplong是时间戳,从 1970-01-01 00:00:00 算起的毫秒数signstring32是验签参数

  同步返回

  结果参数含义:

  字段名类型长度必输说明codestring是结果编码:200:请求成功,不等于200:请求失败(message:失败原因)messagestring100是结果描述datastring5000是业务数据

  data业务数据字段:

  字段名类型长度必输说明hosRecordIdstring是预约记录唯一标识 (医院预约记录主键)numberint是预约序号reservedNumberint是排班可预约数availableNumberint是排班剩余预约数fetchTimestring50是取号时间fetchAddressstring200是取号地址

  B、更新支付状态

  平台支付成功,通过该接口更新医院支付状态

  提交地址 :

  请求参数 :

  变量定义

  字段名类型长度必输说明hoscodestring30是给医院分配的唯一标识hosRecordIdstring是预约记录唯一标识 (医院预约记录主键)timestamplong是时间戳,从1970-01-01 00:00:00算起的毫秒数signstring32是验签参数

  同步返回:

  结果参数含义

  字段名类型长度必输说明codestring是结果编码,200:请求成功。不等于200:请求失败 (message:失败原因)messagestring100是结果描述datastring5000是业务数据

  C、取消预约

  平台通过该接口取消预约

  提交地址:

  请求参数

  变量定义

  字段名类型长度必输说明hoscodestring30是给医院分配的唯一标识hosRecordIdstring是预约记录唯一标识 (医院预约记录主键)timestamplong是时间戳,从 1970-01-01 00:00:00 算起的毫秒数signstring32是验签参数

  同步返回

  结果参数含义

  字段名类型长度必输说明codestring是结果编码,200:请求成功,不等于200:请求失败 (message:失败原因)messagestring100是结果描述datastring5000是业务数据

  A、添加依赖

  service-hosp 模块 pom.xml 添加依赖

  B、添加配置

  在 application.properties 文件添加配置

  说明:改为自己安装 MongoDB 的 IP 地址

  这样写也可以:

  A、添加 model

  说明:由于实体对象没有逻辑,我们已经统一导入com.fancy.yygh.model.hosp.Hospital

  B、添加 Repository

  C、添加 service 接口及实现类

  添加 com.fancy.yygh.hosp.service.HospitalService 接口

尚医通 (二十五) --------- 医院接口开发

  添加com.fancy.yygh.hosp.service.impl.HospitalServiceImpl接口实现

  D、添加 controller

  添加 com.fancy.yygh.hosp.api.ApiController

  说明:平台对外开发的接口都写在该 Controller 类

  医院编号是平台分配的,全局唯一,上传医院接口可以多次调用,如果存在相同编号的为更新操作

  A、接口数据分析

  说明:

  数据分为医院基本信息与预约规则信息医院logo转换为base64字符串预约规则信息属于医院基本信息的一个属性预约规则rule,以数组形式传递数据传递过来我们还要验证签名,只允许平台开通的医院可以上传数据,保证数据安全性

  B、添加 service 接口

  在 HospitalService 类添加接口

  说明:参数使用Map,减少对象封装,有利于签名校验,后续会体验到

  在 HospitalServiceImpl 类添加实现

  说明:

  Map 转换为 Hospital 对象时,预约规则 bookingRule 为一个对象属性,rule 为一个数组属性,因此在转换时我们要重新对应的 set 方法,不然转换不会成功

  C、添加repository接口

  在 HospitalRepository 类添加接口

  D、添加 controller 接口

  在 ApiController 类添加接口

  E、添加帮助类

  在 service-util 模块添加 HttpRequestHelper 帮助类

  A、封装签名方法

  在 service-util 模块 HttpRequestHelper 类添加方法

  B、上传医院添加签名校验

  我们在医院设置的时候,为每个医院生成了医院编码与签名key,因此我在验证签名时要根据医院编码去动态获取签名key,然后再做签名校验

  添加获取签名key接口

  1,在 HospitalSetService 类添加接口

  2,在 HospitalSetServiceImpl 类实现接口

  修改 ApiController 类上传医院接口:

  修改 ApiController 类上传医院接口

  A、图片 base64 说明

  图片的 Base64 编码就是可以将一张图片数据编码成一串字符串,使用该字符串代替图像地址 url

  在前端页面中常见的 Base64 图片的引入方式:

  优点

  Base64 格式的图片是文本格式,占用内存小,转换后的大小比例大概为 1/3,降低了资源服务器的消耗;网页中使用 Base64 格式的图片时,不用再请求服务器调用图片资源,减少了服务器访问次数。

  缺点

  Base64 格式的文本内容较多,存储在数据库中增大了数据库服务器的压力网页加载图片虽然不用访问服务器了,但因为 Base64 格式的内容太多,所以加载网页的速度会降低,可能会影响用户的体验。

  说明:医院 logo 图片小,因此上传医院 logo 是可以使用Base64 格式保存

  B、图片 Base64 工具类

  在 common-util 模块添加工具类

  添加 com.fancy.yyghmon.util.ImageBase64Util 类

  C、上传医院接口修正

  图片转换为 Base64 字符串时,该字符串中包含大量的加号“+”,服务器在解析数据时会把加号当成连接符,转换为空格,因此我们要做一下特殊处理

  修改 ApiController 类上传接口

  A、添加 service 接口

  在 HospitalService 类添加接口

  在 HospitalServiceImpl 类添加实现

  B、添加 controller 接口

  在 ApiController 类添加接口

扫描二维码推送至手机访问。

版权声明:本文由MDM苹果签名,IPA签名,苹果企业签名,苹果超级签,ios企业签名,iphoneqm.com发布,如需转载请注明出处。

转载请注明出处https://iphoneqm.com/iphoneqm/668.html

分享给朋友:

相关文章

tf签名到期之后该如何解决处理呢?

tf签名到期之后该如何解决处理呢?

  很多人都想知道为何下载了app之后没多久就会显示企业签名已过期,妨碍后续的运用,不少消费者都不清楚该如何解决。事实上企业签名过期就是掉签,今天小编就来说说tf签名到期之后该如何解决处理呢?...

苹果企业签名/超级签名/TF签名 三种签名如何选择呢?

苹果企业签名/超级签名/TF签名 三种签名如何选择呢?

  相信很多人看到三种签名会感到困惑,这三种怎么选择才最适合呢,那么接下来小微就来给各位分一下三者的优势和不同   首先通俗的来讲下~   自己的App不特别在乎稳定性,成本不算太高,适合...

ios游戏提示企业签名已过期是什么意思?怎么办?播报文章

ios游戏提示企业签名已过期是什么意思?怎么办?播报文章

  当ios手机用户在玩游戏比如绝地求生等,有时候会受到“企业签名已过期”的提示,无法打开游戏,无法登陆账号,不能继续使用,ios游戏企业签名是什么意思呢?企业签名过期是什么意思呢?遇到这种情况该怎么...

苹果ios签名教程是什么

苹果ios签名教程是什么

  苹果iOS签名指的是对iOS应用进行数字签名,以保证应用的安全性和完整性。每个iOS应用都必须通过苹果的数字签名机制才能在设备上运行,否则将无法安装和启动。本文将详细介绍苹果iOS签名的原理和相关...

一张苹果证书可以测试安装多少个app?

一张苹果证书可以测试安装多少个app?

  苹果证书是苹果公司用于验证开发者身份和应用程序完整性的一种数字证书。每个开发者在苹果开发者平台上注册账号后,可以通过申请证书来获得一组用于签名应用程序的密钥对。这些密钥对包括一个私钥和一个公钥,私...

山寨APP这个难题,现在有了新的解决方案

山寨APP这个难题,现在有了新的解决方案

  “山寨机”无疑是国内手机行业历史上极为浓墨重彩的一页,同时也是小米等互联网手机品牌当年得以崛起的原因。“山寨”在21世纪的第一个10年已然成为了某种流行文化,因此当移动互联网时代到来、APP成为了...

现在,非常期待与您的又一次邂逅

我们努力让每一次邂逅总能超越期待