# 微信长辈就医开发文档
# 1 修订记录
2024年03月20 日
消息推送接口与就医助手合并,原长辈就医消息接口即将下线;
2024年4月23 日
新增医院适老版主页调用说明,详见3.5;
新增按视觉规范设计开发方式,详见3.3.2;
# 2 功能介绍
微信长辈就医是微信官方提供的医疗行业适老化版本建设方案,医院公众号或小程序均可接入以实现适老化版开发,为老年患者提供友好的线上诊疗服务。
微信长辈就医主要包括三个功能:
1)页面适老化改造标准方案,提供两种方式,接入微信长辈就医SDK或按微信长辈就医设计规范设计全流程;
2)快捷建档接口,医院调用后可获得老年患者实名信息(姓名、身份证、手机号),免去建档填写的繁琐流程;
3)门诊主流程消息推送接口,底层对接就医助手消息方案,为医院提供一整套消息能力,可按需调用生成可视化门诊就诊流程。
微信长辈就医体验路径:扫描下方二维码,按公众号引导开通后,点击“我的医院”菜单,查找含关怀版标志的医院进行挂号体验即可。
图1 微信长辈就医体验路径示意图
# 3 产品开发
# 3.1 调用方式
文档所有接口请求方式均为HTTPS-POST请求,UTF-8编码,请求和相应参数仅支持JSON数据格式,所有接口的调用均需要获取access_token授权,服务商获取access_token,走微信开放平台-第三方平台的模式,由医院为第三方服务商授权“微信长辈就医“权限集,授权流程操作指引点击这里查看。
# 3.2 开发前的准备
开发准备清单如下,收集完备后提供给我们工作人员协助配置测试环境:
- [x] 开发测试的公众号appid;
- [x] 开发人员微信账号;
- [x] 用来测试获取wxmed_authcode的测试路径,H5链接或者小程序路径均可;
- [x] 医院信息,字段如下:
字段 | 示例 |
---|---|
医院名称 | 广东省第二人民医院 |
公众号昵称 | 广东省第二人民医院 |
公众号appid | 公众号appid信息 |
医院地址 提供省市区+详细地址+坐标,多院区分别提供 | 广东省广州市海珠区新港中路466号(23.094539;113.333887) 广东省广州市白云区机场路290号(23.179604;113.260129) |
医院等级 | 三级甲等 |
是否公立 | 是 |
医院属性 | 综合医院 |
# 3.3 页面适老化改造标准方案
医院适老化建设中,微信长辈就医提供两种页面适老化改造标准方案,分别为微信长辈就医SDK或按微信长辈就医设计规范设计全流程,下面会详细介绍两种方案,医院可按需选择。
# 3.3.1 微信长辈就医SDK
# 1)SDK文档
# 2)方案介绍
本方案由微信提供一套包含门诊挂号、缴费、查询、个人中心(挂号、缴费记录)功能的标准化前端SDK,医院只需要类似于接入 VUE 一样提供一个 div 的选择器进行初始化后,在不同的页面步骤中传入对应的协议字段, SDK 就会在对应 div 中渲染出对应状态的适老化后的页面,轻松实现线上字体放大、按钮放大、对比度加深、页面交互简化,便捷老年患者操作。
页面样式以及交互全部由 SDK 进行处理,接入方只需要处理页面的逻辑部分(数据接口拉取、事件钩子回调逻辑等)。
图2-1 微信长辈就医SDK挂号流程
图2-2 微信长辈就医SDK挂号流程
图3 微信长辈就医SDK缴费流程
图4 微信长辈就医SDK报告查询流程
# 3)方案说明
本SDK方案目前支持H5形式,若医院计划使用H5提供适老化服务,可直接参照微信长辈就医SDK方案文档开发。
若医院计划采用小程序形式开发,也可接入本方案,通过小程序内嵌webview实现。因小程序内嵌webview不支持拉起支付,故此处支付流程需切换为小程序支付实现。
# 4)就医公告接口(选用)
部分医院挂号过程中,可能需要向患者展示来院就诊前的注意事项,我们把这类信息称为就医公告,如下图。
图5 医院就医须知demo
SDK支持医院按既定样式展示就医公告,可通过本接口进行内容设置。设置步骤为:添加草稿->编辑人员线上预览草稿->确认发布,医院也可以直接跳过预览步骤,将公告直接发布。
步骤1 添加公告草稿
接口说明
添加一条草稿状态的公告,草稿状态下的公告指定用户可以查看效果
接口地址 https://api.weixin.qq.com/intp/eldermedical/sethopsnotice/?access_token=ACCESS_TOKEN
请求参数名
字段 | 字段名 | 类型 | 是否必填 | 说明 |
---|---|---|---|---|
app_id | 业务方app_id | string | 是 | 公众号的appid |
notice_type | 公告类型 | uint32 | 是 | 1:挂号前的就医须知2:来院须知 |
notice_content | 公告内容 | string | 是 | 长度限制3000个字符,支持富文本,图片用标签的方式嵌入富文本内,例如:<img src="https://res.wx.qq.com/op_res/uuuyIn2NDBPzbSu0VnQ13lEQNv6A2uPJNtLnvr3NuuoKU2v-hg5YJ4CDklPQc5yVAWSVGbkA-sMkQQnmkvR8Sg" style="width:100px;height:100px;"/> |
notice_id | 公告ID | uint32 | 否 | 不传notice_id则新增一条草稿,传notice_id不新增,会覆盖指定草稿的内容 |
返回参数名
字段 | 字段名 | 类型 | 是否必填 | 说明 |
---|---|---|---|---|
errcode | 返回码 | int32 | 是 | 错误码 |
errmsg | 返回信息 | string | 是 | 错误信息 |
请求成功的情况下返回以下参数 | ||||
notice_id | uint32 | 是 |
新增一条公告请求示例:
{"app_id":"wx5f6e43071809a9dd""notice_content":"Hello World!!!</br>Hello World!!!</br>Hello World!!!</br><img src=\"https://res.wx.qq.com/op_res/uuuyIn2NDBPzbSu0VnQ13lEQNv6A2uPJNtLnvr3NuuoKU2v-hg5YJ4CDklPQc5yVAWSVGbkA-sMkQQnmkvR8Sg\" style=\"width:100px;height:100px;\" />","notice_type":1
}
返回示例:
{"notice_id":1,"errcode":0,"errmsg":"ok"}
图6 医院就医公告富文本demo
步骤2 公告草稿预览设置
接口说明
设置草稿的预览人员名单,设置成功后,指定的用户可以查看草稿公告的效果
接口地址
https://api.weixin.qq.com//intp/eldermedical/previewhopsnotice?access_token=ACCESS_TOKEN
请求参数名
字段 | 字段名 | 类型 | 是否必填 | 说明 |
---|---|---|---|---|
app_id | 业务方app_id | string | 是 | 公众号的appid |
notice_type | 公告类型 | uint32 | 是 | 1:挂号前的就医须知2:来院须知 |
notice_id | 公告ID | uint32 | 是 | |
preview_username | 可以预览公告的微信号 | string | 是 | |
operation | 操作类型 | uint32 | 是 | 1:删除预览权限2:添加预览权限 |
返回参数名
字段 | 字段名 | 类型 | 是否必填 | 说明 |
---|---|---|---|---|
errcode | 返回码 | int32 | 是 | 错误码 |
errmsg | 返回信息 | string | 是 | 错误信息 |
请求成功的情况下返回以下参数 | ||||
notice_id | uint32 | 是 |
请求参数示例:
{
"app_id": "wx5f6e43071809a9dd",
"notice_type": 1,
"preview_username": "WX_TEST_ACCT",
"notice_id": 2,
"operation": 1
}
返回参数示例:
{"notice_id":2,"errcode":0,"errmsg":"ok"}
步骤3 正式发布公告
接口说明
确认草稿状态下的公告效果后,将草稿状态的公告设置发布状态,设置完成后公告所有人可见
接口地址 https://api.weixin.qq.com/intp/eldermedical/publichopsnotice?access_token=ACCESS_TOKEN
请求参数名
字段 | 字段名 | 类型 | 是否必填 | 说明 |
---|---|---|---|---|
app_id | 业务方app_id | string | 是 | 公众号的appid |
notice_type | 公告类型 | uint32 | 是 | 1:挂号前的就医须知2:来院须知 |
notice_id | 公告ID | uint32 | 是 |
返回参数名
字段 | 字段名 | 类型 | 是否必填 | 说明 |
---|---|---|---|---|
errcode | 返回码 | int32 | 是 | 错误码 |
errmsg | 返回信息 | string | 是 | 错误信息 |
请求成功的情况下返回以下参数 | ||||
notice_id | uint32 | 是 |
请求参数示例:
{"app_id":"wx5f6e43071809a9dd","notice_type":1,"notice_id":1}
返回参数示例:
{"notice_id":1,"errcode":0,"errmsg":"ok"}
步骤4 查询所有公告
接口说明
查询当前医院所有的公告,包括草稿状态下的公告,微信侧保留最近五条公告。
接口地址
https://api.weixin.qq.com/intp/eldermedical/gethospnoticelist?access_token=ACCESS_TOKEN
请求参数名
字段 | 字段名 | 类型 | 是否必填 | 说明 |
---|---|---|---|---|
app_id | 业务方app_id | string | 是 | 公众号的appid |
notice_type | 公告类型 | uint32 | 是 | 1:挂号前的就医须知2:来院须知 |
返回参数名
字段 | 字段名 | 类型 | 是否必填 | 说明 |
---|---|---|---|---|
errcode | 返回码 | int32 | 是 | 错误码 |
errmsg | 返回信息 | string | 是 | 错误信息 |
请求成功的情况下返回以下参数 | ||||
notice_list | 数组 | object array | 是 | 数组内的元素字段如下 |
-notice_id | 公告ID | uint32 | 是 | |
-content | 公告内容 | string | 是 | |
-status | 公告状态 | string | 是 | DRAFT:草稿,PUBLIC:发布 |
preview_openid | 可以预览草稿的用户openid | string array | 否 |
请求参数示例
{"app_id":"wx5f6e43071809a9dd","notice_type":1}
{
"notice_list": [{
"notice_id": 1,
"content": "Hello World!",
"status": "PUBLIC",
"preview_openid": []
}, {
"notice_id": 2,
"content": "Hello World",
"status": "DRAFT",
"preview_openid": ["ont-9vhrWCkLFRNKw_8SkWFdmUnc"]
}],
"errcode": 0,
"errmsg": "ok"
}
# 3.3.2 微信长辈就医设计规范
# 1)规范文档
# 2)规范介绍
微信长辈就医设计规范 由微信提供一套页面适老化设计规范,医院可参考规范,遵循可感知性、可可操作性、理解性、兼容性和安全性设计老年用户访问的界面功能,功能开发完毕后经微信团队验收通过即可发布上线。本方案设计、前后端均由医院实现。
# 3)开通组件
医院可在适老化入口调用本组件,调用后用户进入微信长辈就医标准化开通流程,开通后医院可调用3.3.2下文提及的实名组件,获取用户实名信息。
图7 微信长辈就医开通组件
H5开通组件
H5的跳转链接为:
https://mp.weixin.qq.com/insurance/template/eldermedical/open.html?appid={appid}#wechat_redirect
链接上的{appid}需要替换成公众号的appid。
小程序开通组件
wx.navigateToMiniProgram({
appId: 'wx308bd2aeb83d3345',
path: '/subPages/medical-mvp/auth/main?from=hospital&appid={appid}',
complete: (res) => {
console.log('onTapToEldmOpen res', res)
}
});
# 4)实名组件
医院可在挂号时按需调用实名组件,调用后将唤起微信名授权弹窗经用户同意,微信将生成长辈就医信息授权码wxmed_authcode并传递给医院页面,医院可调用3.4.1查询用户实名API进行解密并帮助老年患者完成后台建档,免去填写个人信息的繁琐工作。
图8 微信长辈就医实名组件
H5实名组件
H5的跳转链接为:
https://mp.weixin.qq.com/insurance/template/eldermedical/auth-realname.html?appid={appid}&returnUrl={returnUrl}#wechat_redirect
说明:链接上的参数{returnUrl} -> 授权后会返回此{returnUrl},注意链接必须经过encodeURIComponent,授权获得的wxamedAuthcode会携带在此参数上返回。 参数{appid}需要替换成公众号的appid。
小程序实名组件
wx.openBusinessView({
businessType: 'eldermedicalAuthRealname',
queryString: 'appid={appid}',
complete: (res) => {
console.log('onTapToEldmAuth res code', res.extraData.wxamedAuthcode)
}
});
# 3.4 API接口列表
# 3.4.1 查询用户实名API
# 1)接口说明
为降低老年患者建档门槛,微信向公立医院免费提供本接口。老年患者挂号时,医院可通过本接口查询用户实名信息(姓名、身份证、手机号),并获取上述信息在后台为用户创建诊疗卡,后续老年患者挂号时无需再次建档,可直接挂号。
上述流程示例:
用户访问医院适老版主页时,实名开通微信长辈就医服务。使用医院关怀版服务时,院方可请求查询用户实名API获取实名信息,完成后台建档**(说明:下图全部流程由微信提供,医院无需开发前端界面)。**
图9 微信长辈就医获取用户实名授权流程(若用户已在别处开通长辈就医,则点击图一服务直接拉起第五张图的实名弹窗)
用户点击医院服务后,医院获取实名的时序图如下:
图10 微信长辈就医获取用户实名时序图
时序图说明:
用户进入医院适老版主页,点击医院挂号服务;
用户同意授权将实名信息传递给医院;
微信生成长辈就医信息授权码wxmed_authcode;
跳转医院的挂号页面,wxmed_authcode通过url query传递给医院,示例如下:
小程序path: /pages/registerpage?wxmed_authcode=xxx
h5链接:https://registerpage.hospital.com?wxmed_authcode=xxx
进入医院的建档流程;
医院后台通过本文档提供的"查询用户实名API"和wxmed_authcode,查询用户的身份信息和手机号;
微信返回加密后的用户身份信息和手机号;
微信给每家医院分配了各自的实名信息解密KEY, 解密后可获得用户实名信息;开发者提供本文档3.2要求的信息后由微信工作人员提供解密密钥;
医院完成后续的建档和挂号流程。
# 2)接口详情
请求地址:
https://api.weixin.qq.com/cityservice/getmedrealname?access_token=ACCESS_TOKEN
请求参数列表:
字段 | 字段名 | 类型 | 是否必填 | 说明 |
---|---|---|---|---|
app_id | 业务方appid | string | 是 | 要求access_token和appid相匹配 |
open_id | 微信用户openid | string | 是 | 用户在当前appid下的用户标识 |
wxmed_authcode | 实名信息code | string | 是 | 对应url中的wxmed_authcode,有效期10分钟 |
请求参数示例
{
"app_id": "wx23dde3xd34569cba",
"open_id": "ont-9vr_is4GBmeuh_xy1YHidhgY",
"wxmed_authcode": "BMUewIb9qr2GMDeInZKOBg.."
}
返回参数列表
字段 | 字段名 | 类型 | 是否必填 | 说明 |
---|---|---|---|---|
errcode | int32 | 是 | 错误码 | |
errmsg | string | 是 | 错误信息 | |
请求成功的情况下返回以下参数 | ||||
cipher_real_name | 加密后的实名信息 | string | 否 | base64后的加密信息 |
cipher_algorithm | 加密算法 | string | 否 | 默认:AES_256_ECB_PKCS7Padding |
key_version | 实名信息加密key版本号 | int | 否 | 初始版本号为0,用于识别后续密钥更换升级 |
app_id | 业务方appid | string | 否 | |
open_id | 微信用户openid | string | 否 |
用户实名数据属于敏感信息,不能以明文形式传输,所以平台返回的实名信息是经过对称加密后的base64字符串,平台会给进驻的每家医院分配长度为32位(256bit)密钥,解密后可获得明文,默认使用的加解密算法为:AES_256_ECB_PKCS7Padding;解密示例代码下载
解密后的实名明文
{"real_name":"张三","id_card_no":"45088100000000","id_card_type":1,"phone":"13800000138","timestamp":1661420431,"phone_country_code":"86"}
实名信息字段说明
字段 | 字段名 | 类型 | 是否必填 | 说明 |
---|---|---|---|---|
real_name | 姓名 | string | 是 | |
id_card_no | 证件号 | string | 是 | |
id_card_type | 证件类型 | int32 | 是 | 1 居民身份证; 4 澳门居民往来内地通行证; 5 台湾居民往来内地通行证; 6香港居民往来内地通行证。 |
phone | 电话号码 | string | 是 | |
timestamp | 时间戳 | int64 | 是 |
# 3.4.2 门诊主流程消息推送接口
# 1)接口说明
医院调用本接口推送4条门诊主流程消息(挂号成功通知、待缴费订单通知、检验检查报告、取药提醒)给用户,用户点击可访问医院相关服务的适老化页面。
此外,为了便利患者,我们也建议医院通过长辈就医下发停诊通知、排队候诊提醒、检验检查排队提醒、取消预约挂号通知和缴费成功通知。
注意事项:
1)接口中status 值1501001、1501018、1501030、1501031、1501034分别对应预约挂号成功通知、门诊待缴费提醒、检查结果通知、检验结果通知、取药提醒这5条消息,是门诊就医主流程消息,必须下发;
2)status 值1501010、1501014、1501026、1501027、1501004、1501019分别对应停诊通知、排队候诊提醒、检查排号提醒、检验排号提醒、取消预约挂号通知、门诊缴费成功通知,是门诊就医体验优化类消息,建议下发;
3)为给医院提供丰富的模板消息,同时减少医院对接的工作,本接口和就医助手共用同一套消息接口和模板库。曾经对接过就医助手的医院只需在原就医助手的基础上,提供适老化的网页链接或小程序页面路径,即可完成改造。
demo示例:
医院调用本接口后,老年患者可在【微信长辈就医】公众号中收到院方下发的就医主流程消息,消息跳转到院方服务。
图11 微信长辈就医消息下发流程
# 2)接口详情
参见微信就医助手接口文档
# 3.4.3 查询用户是否开通长辈就医功能
# 1)接口说明
微信长辈就医功能需用户简单开通,用户有多种开通方式,包括:
路径1 访问医院公众号、小程序的适老版主页时开通,适老版主页生成方式参见3.5;
图12 医院公众号/小程序入口访问长辈就医服务
路径2 访问「微信」-「我」-「服务」-「城市服务」-「医疗」-「长辈就医」进行开通;
图13 微信城市服务入口访问长辈就医服务
路径3 关注“微信长辈就医”公众号,按指引开通。
图14 微信长辈就医公众号访问长辈就医服务
医院调用本接口可查询用户开通状态。请注意:1)该开通流程无需医院开发,为微信统一流程;2)用户开通状态为“已开通”时,才可以获取用户实名信息和推送门诊主流程消息。
# 2)接口详情
请求地址:
https://api.weixin.qq.com/cityservice/getmsgrelation?access_token=ACCESS_TOKEN
请求参数名
字段 | 字段名 | 类型 | 是否必填 | 说明 |
---|---|---|---|---|
business_id | 业务id | uint32 | 是 | 长辈就医业务填130 |
open_id | 微信用户openid | string | 是 |
请求参数示例
{
"business_id": 130,
"open_id": "ont-9vr_is4GBmeuh_xy1YHidhgY",
}
返回参数名
字段 | 字段名 | 类型 | 是否必有 | 说明 |
---|---|---|---|---|
errcode | 返回码 | uint32_t | 是 | 0-成功 非0-失败 |
errmsg | 返回说明 | string | 是 | |
is_subscribed | 是否订阅 | uint32_t | 是 | 1-已开通 0-未开通 |
返回参数示例
{
"err_code": 0,
"err_msg": "ok",
"is_subscribed": 1
}
# 3.5 医院适老版主页
医院参照文档完成前述流程开发后,可将适老化版本放在公众号、小程序上供老年用户访问,具体如下:
# 3.5.1 放置入口
为降低老年患者查找成本,建议将适老版入口放在医院微信公众号菜单或小程序首页。入口文案由医院自定义,可参考名称:长辈模式、长辈服务、关怀版。
图15 医院微信公众号/小程序长辈就医入口示例图
# 3.5.2 医院适老版主页生成
微信提供快速生成医院适老版主页的能力,无需额外开发,医院提供已开发好的挂号、缴费、查询报告、个人中心(挂号、缴费记录)功能链接/路径,即可快速生成适老版主页,供用户访问。
适老版主页主色调可自适应医院公众号主色值。
图16 医院适老版主页示例图
**公众号适老版主页生成方式**
H5的跳转链接为:
https://mp.weixin.qq.com/insurance/template/eldermedical/hospital-homepage.html?appid={appid}#wechat_redirect
链接上的{appid}需要替换成公众号的appid。
**小程序适老版主页生成方式**
wx.navigateToMiniProgram({
appId: 'wx308bd2aeb83d3345',
path: '/subPages/medical-mvp/hospital-homepage/main?appid={appid}',
complete: (res) => {
console.log('onTapToEldmHomePage res', res)
}
});
# 4 验收材料和宣传物料
# 4.1 验收要求
为确保微信老年用户就医体验,微信团队将对本功能进行验收,可通过第五点联系我们获取验收指引。
# 4.2 宣传物料
为便利医院线下推广本功能,我们准备了易拉宝、桌贴、海报的源文件,医院可下载并二次制作,点击查看微信长辈就医宣传物料。
# 5 联系我们
对上述产品有任何疑问,欢迎联系我们。