# 微信长辈就医开发文档

# 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文档

参见微信长辈就医SDK方案

# 2)方案介绍

本方案由微信提供一套包含门诊挂号、缴费、查询、个人中心(挂号、缴费记录)功能的标准化前端SDK,医院只需要类似于接入 VUE 一样提供一个 div 的选择器进行初始化后,在不同的页面步骤中传入对应的协议字段, SDK 就会在对应 div 中渲染出对应状态的适老化后的页面,轻松实现线上字体放大、按钮放大、对比度加深、页面交互简化,便捷老年患者操作。

页面样式以及交互全部由 SDK 进行处理,接入方只需要处理页面的逻辑部分(数据接口拉取、事件钩子回调逻辑等)。


图2-1 微信长辈就医SDK挂号流程

descript


图2-2 微信长辈就医SDK挂号流程

descript


图3 微信长辈就医SDK缴费流程

descript


图4 微信长辈就医SDK报告查询流程

descript

# 3)方案说明

本SDK方案目前支持H5形式,若医院计划使用H5提供适老化服务,可直接参照微信长辈就医SDK方案文档开发。

若医院计划采用小程序形式开发,也可接入本方案,通过小程序内嵌webview实现。因小程序内嵌webview不支持拉起支付,故此处支付流程需切换为小程序支付实现。

# 4)就医公告接口(选用)

部分医院挂号过程中,可能需要向患者展示来院就诊前的注意事项,我们把这类信息称为就医公告,如下图。


图5 医院就医须知demo

descript


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

descript


步骤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 微信长辈就医开通组件

descript


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 微信长辈就医实名组件

descript


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 微信长辈就医获取用户实名授权流程(若用户已在别处开通长辈就医,则点击图一服务直接拉起第五张图的实名弹窗)

descript

用户点击医院服务后,医院获取实名的时序图如下:


图10 微信长辈就医获取用户实名时序图


时序图说明:

  1. 用户进入医院适老版主页,点击医院挂号服务;

  2. 用户同意授权将实名信息传递给医院;

  3. 微信生成长辈就医信息授权码wxmed_authcode;

  4. 跳转医院的挂号页面,wxmed_authcode通过url query传递给医院,示例如下:

小程序path: /pages/registerpage?wxmed_authcode=xxx
h5链接:https://registerpage.hospital.com?wxmed_authcode=xxx
  1. 进入医院的建档流程;

  2. 医院后台通过本文档提供的"查询用户实名API"和wxmed_authcode,查询用户的身份信息和手机号;

  3. 微信返回加密后的用户身份信息和手机号;

  4. 微信给每家医院分配了各自的实名信息解密KEY, 解密后可获得用户实名信息;开发者提供本文档3.2要求的信息后由微信工作人员提供解密密钥;

  5. 医院完成后续的建档和挂号流程。

# 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 微信长辈就医消息下发流程

descript



# 2)接口详情

参见微信就医助手接口文档

# 3.4.3 查询用户是否开通长辈就医功能

# 1)接口说明

微信长辈就医功能需用户简单开通,用户有多种开通方式,包括:

路径1 访问医院公众号、小程序的适老版主页时开通,适老版主页生成方式参见3.5;

图12 医院公众号/小程序入口访问长辈就医服务

descript


路径2 访问「微信」-「我」-「服务」-「城市服务」-「医疗」-「长辈就医」进行开通;


图13 微信城市服务入口访问长辈就医服务

descript


路径3 关注“微信长辈就医”公众号,按指引开通。


图14 微信长辈就医公众号访问长辈就医服务

descript


医院调用本接口可查询用户开通状态。请注意: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 医院微信公众号/小程序长辈就医入口示例图

descript

# 3.5.2 医院适老版主页生成

微信提供快速生成医院适老版主页的能力,无需额外开发,医院提供已开发好的挂号、缴费、查询报告、个人中心(挂号、缴费记录)功能链接/路径,即可快速生成适老版主页,供用户访问。

适老版主页主色调可自适应医院公众号主色值。


图16 医院适老版主页示例图

descript


**公众号适老版主页生成方式**

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 联系我们

对上述产品有任何疑问,欢迎联系我们。

descript