API交互示意图

开发流程示意图

第三方可根据春雨提供的api按照如下大致流程进行开发


问题状态的流转示意图

账号同步/注册接口

  • 账号不存在 春雨会为该用户创建一个新账号,并登陆
  • 账号已存在 春雨为当前用户执行登录操作,不必每次请求,新用户只要同步过一次即可

URL: /cooperation/server/login

请求方式: POST

请求参数:

名称 说明 类型 长度 必要 备注
user_id 用户名 String 32 用户唯一标识,合作方定义(可为字母、数字、下划线或其组合)
password 密码 String 32
lon 经度 String 例如: 北京 lon = '116.3'
lat 纬度 String 例如: 北京 lat = '39.9'
partner 合作方标识 String 32 我要申请
sign 签名 String 32 必须在服务器端生成 生成方法
atime 签名时间戳 Long 64 当前UNIX TIMESTAMP签名时间戳 (如:137322417)

返回:

名称 说明 类型 长度 必要 备注
error 错误码 Int 32 0 代表成功,其它 代表异常
error_msg 异常信息 String

post数据示例

            
              {
                "partner": "test",
                "user_id": "test_user",
                "password": "12345678",
                "sign": "cb5a715fdbeb7220",
                "atime": "1608207278"
              }
            
          

响应示例

            
              {
                "error": 0,
                "error_msg": "user logged in ok"
              }
            
          

普通众包服务

简介

指用户不筛选医生资质发起提问,由春雨通过智能分诊匹配合适医生;医生可以选择是否认领问题,若在24小时内医生未回复,该问题即会被系统关闭。

接入流程

1、申请测试partner和partner_key,并参考基本注意事项

2、提供第三方接口用于接收医生回复通知问题关闭通知

3、同步第三方账户信息(即调用账号同步/登陆接口),对于新用户发起一次即可。

4、第三方创建众包问题(由系统分配科室,或由第三方自主选择科室)。

5、通过管理后台模拟医生回复问题, 第三方接口问题的回复通知,或者根据需求由春雨人员配合回复医生问题。

6、第三方提交用户追问。

7、第三方发起问题关闭,并接收问题关闭通知。

8、测试完后,联系春雨人员开通正式环境账户后即可,第三方需要提供接收业务警报的邮箱地址。

9、完整的问诊流程需要结合通用接口来实现

创建众包问题接口

URL: /cooperation/server/free_problem/create

请求方式: POST

请求参数:

名称 说明 类型 长度 必要 备注
user_id 用户名 String 32 用户唯一标识,合作方定义(可为字母、数字、下划线或其组合)
partner 合作方标识 String 32 我要申请
content 为用户提问内容列表 String 5120 数据结构,其中 patient_meta 不能传递多次,以第一次内容的为准。
sign 签名 String 32 必须在服务器端生成 生成方法
atime 签名时间戳 Long 64 当前UNIX TIMESTAMP签名时间戳 (如:137322417)
clinic_no 需要分配的科室号 String 20 科室

返回:

名称 说明 类型 长度 必要 备注
error 错误码 Int 32 0 代表成功,其它 代表异常
error_msg 异常信息 String
problem_id 问题编号 Int 32 当 error 为 0 时返回创建的问题 ID

post数据示例

            
              {
                "user_id": "test_user",
                "partner": "test",
                "content": "[{\"type\": \"patient_meta\",\"age\": \"20岁\",\"sex\": \"男\"},{\"type\": \"text\",\"text\": \"创建免费问诊问题测试\"}]",
                "sign": "b26144805c3f88f4",
                "atime": "1608207611"
              }
            
          

响应示例

            
              {
                "error": 0,
                "problem_id": 443258121
              }
            
          

众包升级服务

简介

即春雨平台会将用户问题智能分配给特定医生等级或特定医院等级的医生;比起普通众包服务,众包升级具备更优质的服务质量。

当用户发起提问,春雨平台首先对匹配的医院或医生等级进行筛选,而后进行智能分诊,若在1小时内没有回复,系统即自动关闭该问题。

接入流程

创建众包升级问题接口

URL: /cooperation/server/problem/create_paid_problem/

请求方式: POST

请求参数:

名称 说明 类型 长度 必要 备注
user_id 用户ID String 32 用户唯一标识,合作方定义(可为字母、数字、下划线或其组合)
partner 合作方标识 String 32 我要申请
content 问题内容 String 5120 数据结构,其中 patient_meta 不能传递多次,以第一次内容的为准。
sign 签名 String 32 必须在服务器端生成 生成方法
atime 时间戳 Long 64 当前UNIX TIMESTAMP签名时间戳 (如:137322417)
partner_order_id 合作方支付ID String 32 唯一标识本次支付行为
pay_type 付费升级类型 String 32 二甲医生:
qc_hospital_common
三甲医生:
qc_hospital_upgrade
clinic_no 需要分配的科室号 String 10 科室

返回:

名称 说明 类型 长度 必要 备注
error 错误码 Int 0 代表成功,其它 代表异常
error_msg 异常信息 String
problem_id 问题编号 Int 64 当 error 为 0 时返回创建的问题 ID

post数据示例

            
              {
                "user_id": "test_user",
                "partner": "test",
                "content": "[{\"type\": \"patient_meta\",\"age\": \"20岁\",\"sex\": \"男\"},{\"type\": \"text\",\"text\": \"创建众包升级问诊问题测试\"}]",
                "sign": "b26144805c3f88f4",
                "atime": "1608207611",
                "partner_order_id": "000001",
                "pay_type": "qc_hospital_upgrade"
              }
            
          

响应示例

            
              {
                "error": 0,
                "error_msg": "",
                "problem_id": 443258122
              }
            
          

众包升级问题退款接口

退款条件:医生未回答情况下才可调用该接口实现退款

URL: /cooperation/server/problem/refund

请求方式: POST

请求参数:

名称 说明 类型 长度 必要 备注
user_id 用户ID String 32 用户唯一标识,合作方定义(可为字母、数字、下划线或其组合)
partner 合作方标识 String 32 我要申请
sign 签名 String 32 必须在服务器端生成 生成方法
atime 时间戳 Long 64 当前UNIX TIMESTAMP签名时间戳 (如:137322417)
problem_id 问题ID Int 64

返回:

名称 说明 类型 长度 必要 备注
error 错误码 Int 0 代表成功,其它 代表异常
error_msg 异常信息 String

post数据示例

            
              {
                "user_id": "test_user",
                "problem_id": "443258127",
                "partner": "test",
                "sign": "5a236b488f7eaacc",
                "atime": "1608208460"
              }
            
          

响应示例

            
              {
                "error": 0,
                "error_msg": ""
              }
            
          

定向图文服务

简介

指用户付费购买指定医生的图文咨询服务。

包括四种产品形态:找医生/名医咨询/推荐医生/搜索医生,具体请参见下方的接口说明。

包含两种服务标准:普通定向咨询和名医咨询,普通定向咨询指用户购买指定医生的图文咨询,医生通过图文形式耐心细致的解答用户健康问题,最多30次交互/医生首次回复48H后问题关闭;名医咨询是指由春雨平台精选的各个专科领域的大牌专家资源,用户付费购买后,专家将以图文形式提供明确、放心的诊疗建议;需要注意的是,名医咨询最多10次交互/医生首次回复48H后问题关闭。

接入流程

1、申请测试 partner和partner_key,并参考基本注意事项

2、提供第三方接口用于接收医生回复通知问题关闭通知

3、同步第三方账户信息,对于新用户发起一次即可。

4、第三方查询推荐医生,获取医生列表。

5、第三方创建付费问诊记录,并引导用户在第三方APP内进行付费(付费流程由第三方自己实现)。

6、第三方发送付费成功通知,春雨创建付费问题后返回相关问题信息给第三方。

7、第三方调用相关接口进行问题交互,方法同众包问题交互一样。

8、第三方接收问题关闭通知,触发方式:第三方主动发起 或 春雨医生拒绝问题。

9、测试完毕后,联系春雨人员开通正式环境账户后即可,第三方需要提供接收业务警报的邮箱地址。

10、第三方开发定向问诊需用以下接口结合通用接口来完善整个流程。

找医生接口

说明:第三方根据一级科室编号查询医生,获取医生列表;该接口可借助筛选名医来实现名医咨询服务,若不筛选名医将返回春雨普通医生和名医

URL: /cooperation/server/doctor/get_clinic_doctors

请求方式: POST

请求参数:

名称 说明 类型 长度 必要 备注
clinic_no 科室编号 String 一级科室;科室信息请查看科室划分
famous_doctor 是否筛选名医 Int 32 接受值:0:否, 1:是
partner 合作方标识 String 32 我要申请
sign 签名 String 32 必须在服务器端生成 生成方法
user_id 用户名 String 32 用户唯一标识,合作方定义(可为字母、数字、下划线或其组合)
atime 签名时间戳 Long 64 当前UNIX TIMESTAMP签名时间戳 (如:137322417)
start_num 开始数 Int 32 翻页时的起始序列号,举例:比如从第40个医生开始,就意味着获取第40-60的医生
count 每次取的医生数 Int 32 取值范围1-20
province 省份 String 具体查看
city 城市 String 具体查看
title 职称 String 职称筛选,可选项[主任医师, 副主任医师, 主治医师, 医师, 心理咨询师, 公共营养师]
min_price 最低图文价格 不传则不限制最低价
max_price 最高图文价格 不传则不限制最高价
service_type 服务类型 String 不填为默认获取开通图文服务的医生;值为inquiry表示获取开通普通电话服务的医生,值为expert_call表示获取开通专家电话服务的医生,值为expert_register_apply表示获取开通专家预约挂号服务的医生;支持多选,多选时以|分隔

返回:

名称 说明 类型 长度 必要 备注
doctors 医生list array
clinic_name 科室名称 String
second_clinic_name 二级科室名称 String
hospital_grade 医院等级 String 如:三级甲等
good_at 擅长 String
hospital_name 医院名称 String
image 医生头像 String 200 医生照片的 url
id 医生id String
name 医生姓名 String
price 价格 Int 单位为分,不需要缓存医生价钱信息,该信息必须实时获取
purchase_num 购买数量 Int
title 职称 string
is_famous_doctor 是否是名医咨询 bool 名医咨询10次交互/48h后问题关闭;普通定向问题30次交互/48h后问题关闭
tel_online 是否可以预约电话问诊 bool 是否支持电话问诊下单
tel_price 电话问诊时长对应的价格 string json格式,key为时长,value为对应的价格,单位分。-1为此时长服务未开通
expert_call_price_fen 专家电话价格 Int 单位为分,-1为此服务未开通
expert_register_price_fen 专家预约挂号价格 Int 单位为分,-1为此服务未开通
error 错误码 Int 32 0 代表成功,其它 代表异常
error_msg 异常信息 String

post数据示例

    
      {
        "clinic_no": "1",
        "famous_doctor": "1",
        "user_id": "test_user",
        "start_num": "20",
        "count": "20",
        "partner": "test",
        "sign": "24c0b782f23e71f1",
        "atime": "1608209559"
      }
    
  

响应示例

    
      {
        "error": 0,
        "doctors": [{
          "clinic_name": "儿科",
          "second_clinic_name": "小儿科",
          "good_at": "发育迟缓、头痛、遗传代谢病",
          "hospital_name": "北京第一医院",
          "hospital_grade": "三级甲等",
          "id": "0000001",
          "image": "https://resource.chunyu.mobi/@/media/images/image1.jpg",
          "name": "测试医生",
          "price": 100,
          "purchase_num": 771,
          "title": "主治医师",
          "is_famous_doctor": false,
          "tel_online": false,
          "tel_price": "{\"10\": -1, \"15\": -1, \"20\": -1, \"30\": -1}"
        },
        {
          "clinic_name": "儿科",
          "second_clinic_name": "小儿科",
          "good_at": "多动症、小儿癫痫、抽动症",
          "hospital_name": "解放军总医院",
          "hospital_grade": "三级甲等",
          "id": "0000002",
          "image": "https://resource.chunyu.mobi/@/media/images/image2.jpg",
          "name": "测试医生2",
          "price": 10000,
          "purchase_num": 1000,
          "title": "主任医师",
          "is_famous_doctor": true,
          "tel_online": true,
          "tel_price": "{\"10\": 16000, \"15\": 24000, \"20\": 40000, \"30\": -1}"
        }]
      }
    
  

推荐医生接口

说明:用户输入提问内容后,春雨智能推荐一批擅长解答用户问题的医生列表;此服务可作为找医生服务的补充,一方面避免用户选错科室医生问诊,另外推荐的医生回复时效性较好

URL: /cooperation/server/doctor/get_recommended_doctors

请求方式: POST

请求参数:

名称 说明 类型 长度 必要 备注
ask 首次提问内容文本 String 患者首问字数请限制在10-500字
partner 合作方标识 String 32 我要申请
sign 签名 String 32 必须在服务器端生成 生成方法
user_id 用户名 String 32 用户唯一标识,合作方定义(可为字母、数字、下划线或其组合)
atime 签名时间戳 Long 64 当前UNIX TIMESTAMP签名时间戳 (如:137322417)

返回:

名称 说明 类型 长度 必要 备注
doctors 医生list array
clinic_name 科室名称 String
second_clinic_name 二级科室名称 String
hospital_grade 医院等级 String 如:三级甲等
good_at 擅长 String
hospital_name 医院名称 String
image 医生头像 String 200 医生照片的 url
id 医生id String
name 医生姓名 String
price 价格 Int 单位为分,不需要缓存医生价钱信息,该信息必须实时获取
purchase_num 购买数量 Int
title 职称 string
is_famous_doctor 是否是名医咨询 bool 名医咨询10次交互/48h后问题关闭;普通定向问题30次交互/48h后问题关闭
tel_online 是否可以预约电话问诊 bool 是否支持电话问诊下单
tel_price 电话问诊时长对应的价格 string json格式,key为时长,value为对应的价格,单位分。-1为此时长服务未开通
error 错误码 Int 32 0 代表成功,其它 代表异常
error_msg 异常信息 String

post数据示例

    
      {
        "ask": "孩子发烧总不好",
        "user_id": "test_user",
        "partner": "test",
        "sign": "c30cd1025b2e7912",
        "atime": "1608260984"
      }
    
  

响应示例

    
      {
        "error": 0,
        "doctors": [{
          "clinic_name": "儿科",
          "second_clinic_name": "小儿科",
          "good_at": "发育迟缓、头痛、遗传代谢病",
          "hospital_name": "北京第一医院",
          "hospital_grade": "三级甲等",
          "id": "0000001",
          "image": "https://resource.chunyu.mobi/@/media/images/image1.jpg",
          "name": "测试医生",
          "price": 100,
          "purchase_num": 771,
          "title": "主治医师",
          "is_famous_doctor": false,
          "tel_online": false,
          "tel_price": "{\"10\": -1, \"15\": -1, \"20\": -1, \"30\": -1}"
        },
        {
          "clinic_name": "儿科",
          "second_clinic_name": "小儿科",
          "good_at": "多动症、小儿癫痫、抽动症",
          "hospital_name": "解放军总医院",
          "hospital_grade": "三级甲等",
          "id": "0000002",
          "image": "https://resource.chunyu.mobi/@/media/images/image2.jpg",
          "name": "测试医生2",
          "price": 10000,
          "purchase_num": 1000,
          "title": "主任医师",
          "is_famous_doctor": true,
          "tel_online": true,
          "tel_price": "{\"10\": 16000, \"15\": 24000, \"20\": 40000, \"30\": -1}"
        }]
      }
    
  

搜索医生接口

说明:按照疾病、症状、医院、科室、医生名搜索医生(此接口为搜索接口非过滤接口,返回的搜索结果可能与搜索词存在偏差),一次返回20个医生

URL: /cooperation/server/doctor/search_doctor/

请求方式: POST

请求参数:

名称 说明 类型 长度 必要 备注
user_id 用户id String 32 用户唯一标识,合作方定义(可为字母、数字、下划线或其组合)
partner 合作方标识 String 32 partner_name
atime 时间戳 Long 64 当前UNIX TIMESTAMP签名时间戳 (如:137322417)
sign 签名 String 32 必须在服务器端生成 生成方法
query_text 查找参数 String 100 搜索词(症状,疾病,医院,科室,医生名)
page 页码 int 32 取值范围1-10
province 省份 String 具体查看
city 城市 String 具体查看
title 职称 String 职称筛选,可选项[主任医师, 副主任医师, 主治医师, 医师, 心理咨询师, 公共营养师]
min_price 最低图文价格 不传则不限制最低价
max_price 最高图文价格 不传则不限制最高价
service_type 服务类型 String 不填为默认获取开通图文服务的医生;值为inquiry表示获取开通普通电话服务的医生,值为expert_call表示获取开通专家电话服务的医生,值为expert_register_apply表示获取开通专家预约挂号服务的医生;支持多选,多选时以|分隔

返回:

名称 说明 类型 长度 必要 备注
doctors 医生list array
clinic_name 科室名称 String
second_clinic_name 二级科室名称 String
hospital_grade 医院等级 String 如:三级甲等
good_at 擅长 String
hospital_name 医院名称 String
image 医生头像 String 200 医生照片的 url
id 医生id String
name 医生姓名 String
price 价格 Int 单位为分,不需要缓存医生价钱信息,该信息必须实时获取
purchase_num 购买数量 Int
title 职称 string
is_famous_doctor 是否是名医咨询 bool 名医咨询10次交互/48h后问题关闭;普通定向问题30次交互/48h后问题关闭
tel_online 是否可以预约电话问诊 bool 是否支持电话问诊下单
tel_price 电话问诊时长对应的价格 string json格式,key为时长,value为对应的价格,单位分。-1为此时长服务未开通
expert_call_price_fen 专家电话价格 Int 单位为分,-1为此服务未开通
expert_register_price_fen 专家预约挂号价格 Int 单位为分,-1为此服务未开通
error 错误码 Int 32 0 代表成功,其它 代表异常
error_msg 异常信息 String

post数据示例

    
      {
        "user_id": "test_user",
        "query_text": "头疼",
        "famous_doctor": "1",
        "page": "1",
        "partner": "test",
        "sign": "d47372cb2e28ba13",
        "atime": "1608261465"
      }
    
  

响应示例

    
      {
        "error": 0,
        "doctors": [{
          "clinic_name": "儿科",
          "second_clinic_name": "小儿科",
          "good_at": "发育迟缓、头痛、遗传代谢病",
          "hospital_name": "北京第一医院",
          "hospital_grade": "三级甲等",
          "id": "0000001",
          "image": "https://resource.chunyu.mobi/@/media/images/image1.jpg",
          "name": "测试医生",
          "price": 100,
          "purchase_num": 771,
          "title": "主治医师",
          "is_famous_doctor": false,
          "tel_online": false,
          "tel_price": "{\"10\": -1, \"15\": -1, \"20\": -1, \"30\": -1}"
        },
        {
          "clinic_name": "儿科",
          "second_clinic_name": "小儿科",
          "good_at": "多动症、小儿癫痫、抽动症",
          "hospital_name": "解放军总医院",
          "hospital_grade": "三级甲等",
          "id": "0000002",
          "image": "https://resource.chunyu.mobi/@/media/images/image2.jpg",
          "name": "测试医生2",
          "price": 10000,
          "purchase_num": 1000,
          "title": "主任医师",
          "is_famous_doctor": true,
          "tel_online": true,
          "tel_price": "{\"10\": 16000, \"15\": 24000, \"20\": 40000, \"30\": -1}"
        }]
      }
    
  

创建定向问题

说明:付费记录有效时间为1小时

URL: /cooperation/server/problem/create_oriented_problem/

请求方式: POST

请求参数:

名称 说明 类型 长度 必要 备注
doctor_id 购买的医生id String
content 首次提问内容 String 5120 数据结构,其中 patient_meta 不能传递多次,以第一次内容的为准。
partner 合作方标识 String 32 我要申请
partner_order_id 合作方支付ID String 需要是唯一标识的支持字母与数字组合
price 订单价格 Int 单位为分
user_id 用户名 String 32 用户唯一标识,合作方定义(可为字母、数字、下划线或其组合)
sign 签名 String 32 必须在服务器端生成 生成方法
atime 签名时间戳 Long 64 当前UNIX TIMESTAMP签名时间戳 (如:137322417)

返回:

名称 说明 类型 长度 必要 备注
problem_id 问题id int
error 错误码 Int 32 0 代表成功,其它 代表异常
error_msg 异常信息 String

post数据示例

    
      {
        "doctor_id": "clinic_web_ae8068a4df5f189e",
        "content": "[{\"type\": \"patient_meta\",\"age\": \"20岁\",\"sex\": \"男\"},{\"type\": \"text\",\"text\": \"测试创建定向问诊问题\"}]",
        "partner": "test",
        "partner_order_id": "000001",
        "price": "200",
        "user_id": "test_user",
        "sign": "162c86f9d6c94a65",
        "atime": "1608262345"
      }
    
  

响应示例

    
      {
        "problem_id": 443258142,
        "error": 0,
        "error_msg": ""
      }
    
  

付费问题退款

说明:第三方可借助该接口实现用户主动发起付费问题退款,退款只能在医生未回答的情况下才能成功。

URL: /cooperation/server/problem/refund

请求方式: POST

请求参数:

名称 说明 类型 长度 必要 备注
user_id 用户ID String 用户唯一标识,合作方定义(可为字母、数字、下划线或其组合)
partner 合作方标识 String 我要申请
sign 签名 String 必须在服务器端生成 生成方法
problem_id 问题ID Long 64
atime 签名时间戳 Long 64 当前UNIX TIMESTAMP签名时间戳 (如:137322417)

返回:

名称 说明 类型 长度 必要 备注
error 错误码 Int 32 0 代表成功,其它 代表异常
error_msg 异常信息 String

post数据示例

    
      {
        "user_id": "test_user",
        "problem_id": "443258127",
        "partner": "test",
        "sign": "5a236b488f7eaacc",
        "atime": "1608208460"
      }
    
  

响应示例

    
      {
        "error": 0,
        "error_msg": ""
      }
    
  

图文急诊服务

简介

急诊服务是一项高效的图文问诊服务。当用户提问后,能够得到医生快速回复(60秒),图文急诊达到20次交互或医生首次回复30分钟后问题关闭。

服务价格以商务合同中敲定的为准,在接口参数中不做体现。

服务流程

1. 先获取图文急诊信息

2. 根据获取到的科室和价格信息创建图文急诊(注意服务时间)

获取图文急诊信息接口

说明:获取春雨图文急诊开通的相关信息,包括开通的时间,价格,科室

URL: /cooperation/server/problem/get_emergency_graph_info/

请求方式:POST

请求参数:

名称 说明 类型 长度 必要 备注
user_id 用户ID String 32 用户唯一标识,合作方定义(可为字母、数字、下划线或其组合)
partner 合作方标识 String 32 partner_name
sign 签名 String 32 必须在服务器端生成 生成方法
atime 时间戳 Long 64 当前UNIX TIMESTAMP签名时间戳 (如:137322417)

返回:

名称 说明 类型 长度 必要 备注
error 结果 Int 0 成功,1 失败
clinic_info 科室信息list Array
clinic_no 科室号 str 10 '1':妇科, '15':眼科, '21':产科, 'fa' :小儿科,'ha':皮肤科
clinic_name 科室名 str 32
begin 服务开始时间 str 10 格式为24小时制
end 服务结束时间 str 10 格式为24小时制
disabled 是否可用 Boolean 32 没有值班医生时服务不可用,此字段为True, 可用时无此字段。不存在则默认为False

post数据示例

    
      {
        "user_id": "test_user",
        "partner": "test",
        "sign": "6de9382451be403f",
        "atime": "1608276441"
      }
    
  

响应示例

    
      {
        "error": 0,
        "clinic_info": [
          {
            "clinic_no": "fa",
            "clinic_name": "小儿科",
            "begin": "07:00",
            "end": "15:45",
          },
          {
            "clinic_no": "ha",
            "clinic_name": "皮肤科",
            "disabled": true
          }
        ]
      }
    
  

创建急诊问题接口

说明:用户确定需要问诊的急诊科室,调用此接口生成付费急诊问题

URL: /cooperation/server/problem/create_emergency_graph/

请求方式:POST

请求参数:

名称 说明 类型 长度 必要 备注
user_id 用户ID String 32 用户唯一标识,合作方定义(可为字母、数字、下划线或其组合)
partner 合作方标识 String 32 partner_name
content 问题内容 String 5120 数据结构,其中 patient_meta 不能传递多次,以第一次内容的为准。
sign 签名 String 32 必须在服务器端生成 生成方法
atime 时间戳 Long 64 当前UNIX TIMESTAMP签名时间戳 (如:137322417)
partner_order_id 合作方支付ID String 32 唯一标识本次支付行为
clinic_no 科室号 String 10 必须是春雨开通急诊的科室

返回:

名称 说明 类型 长度 必要 备注
problem_id 问题id Int 64 创建的问题ID
error 错误码 Int
error_msg 错误原因 String

post数据示例

    
      {
        "user_id": "test_user",
        "content": "[{\"type\": \"patient_meta\",\"age\": \"15岁\",\"sex\": \"男\"},{\"type\": \"text\",\"text\": \"测试创建急诊问诊问题\"}]",
        "clinic_no": "fa",
        "partner_order_id": "1700",
        "partner": "test",
        "sign": "64bff638925fecea",
        "atime": "1608284147"
      }
    
  

响应示例

    
      {
        "problem_id": 443258195,
        "error": 0,
        "error_msg": ""
      }
    
  

通用接口

问题追问接口

说明:通过此接口实现用户对医生的追问

URL: /cooperation/server/problem_content/create

请求方式: POST

请求参数:

名称 说明 类型 长度 必要 备注
user_id 用户名 String 32 用户唯一标识,合作方定义(可为字母、数字、下划线或其组合)
partner 合作方标识 String 32 我要申请
problem_id 问题ID Int 32
content String String 数据结构,可以传递 patient_meta 之外的其余三种类型的contentItem。
sign 签名 String 32 必须在服务器端生成 生成方法
atime 签名时间戳 Long 64 当前UNIX TIMESTAMP签名时间戳 (如:137322417)

返回:

名称 说明 类型 长度 必要 备注
content_id 回复编号 Long 64 当前回复内容的id
error 错误码 Int 32 0 代表成功,其它 代表异常
error_msg 异常信息 String

post数据示例

    
      {
        "user_id": "test_user",
        "partner": "test",
        "problem_id": "443258196",
        "content": "[{\"type\": \"text\",\"text\": \"测试追问\"}]",
        "sign": "1bad37f433370896",
        "atime": "1608285064"
      }
    
  

响应示例

    
      {
        "error": 0,
        "content_id": 11536441
      }
    
  

问题详情接口

说明:通过此接口获取用户提问问题的详情

URL: /cooperation/server/problem/detail

请求方式: POST

请求参数:

名称 说明 类型 长度 必要 备注
user_id Int String 用户唯一标识,合作方定义(可为字母、数字、下划线或其组合)
partner 合作方标识 String 我要申请
problem_id 问题ID Int 64
sign 签名 String 必须在服务器端生成 生成方法
atime 签名时间戳 Long 64 当前UNIX TIMESTAMP签名时间戳 (如:137322417)
last_content_id 最后一个回复编号 Long 64 参考问题追问返回的content_id,会返回所有大于此编号的回复列表

返回:

名称 说明 类型 长度 必要 备注
problem 问题信息 dict
id 问题 ID Int
status 问题状态 String

n 新问题

a 已认领---医生认领,等待医生回答

s 已回复

c 已关闭

p 被举报---因为含有违禁词/辱骂医生等原因被举报

状态转换示意图 点击查看

ask 提问内容 String 20 提问内容
clinic_no 问题所在的科室号 String 20 N
star 问题星级 Int 32 (4,5 为好评, 1,2 为差评,3 为中评,-1 暂未 评价)
interaction 交互次数 Int 32 详细定义:点击查看
content 内容 array
id 回复编号 Long
created_time_ms String 创建问题时间戳
type 类型 String 200 p是用户回复,d是医生回复
content array 同问题追问的 content数据结构
subtype string 20 返回值标识为summary,则表示这条医生回复为医生总结信息;当医生回复内容为非总结信息时,不返回这个字段
doctor 医生信息 dict 医生信息
id 医生 ID String
name 医生姓名 String 200
image 医生头像 String 200 医生照片的 url
title 医生职称 String
level_title 带医院级别的医生职称 String 带医院级别的医生职称
clinic 科室号 String 20 问题列表
hospital 医院名字 String 100
error 错误码 Int 32 0 代表成功,其它代表异常
error_msg 异常信息 String

post数据示例

    
      {
        "user_id": "test_user",
        "problem_id": "443258234",
        "partner": "test",
        "sign": "d3ba697b786a9a17",
        "atime": "1608449384"
      }
    
  

响应示例

    
      {
        "problem": {
          "id": 443258234,
          "status": "a",
          "ask": "医生你好,测试创建众包升级问题(男,40岁)",
          "clinic_no": "2",
          "star": -1,
          "level": "",
          "has_assessed": false,
          "interaction": 1
        },
        "content": [
          {
            "id": 11536625,
            "type": "p",
            "content": "[{\"text\": \"医生你好,测试创建众包升级问题(男,40岁)\", \"type\": \"text\"}]",
            "created_time_ms": 1608450103000
          },
          {
            "id": 11536628,
            "type": "d",
            "content": "[{\"text\": \"快速医生回复,时间: 2020-12-20 15:42:02.676034\", \"type\": \"text\"}]",
            "created_time_ms": 1608450123000
          },
          {
            "id": 11536629,
            "type": "p",
            "content": "[{\"text\": \"测试追问\", \"type\": \"text\"}]",
            "created_time_ms": 1608450134000
          }
        ],
        "doctor": {
          "id": "clinic_web_ae8068a4df5f189e",
          "name": "测试医生",
          "image": "https://test.chunyutianxia.com/media/images/fc7d/8968fe2e5cb5?imageMogr2/thumbnail/150x",
          "title": "主治医师",
          "level_title": "二级甲等医院主治医师",
          "clinic": "2",
          "hospital": "上饶市妇幼保健院"
        },
        "error": 0,
        "error_msg": ""
      }
    
  

医生详情接口

说明:医生详细信息以此接口返回的数据为准

URL: /cooperation/server/doctor/detail

请求方式: POST

请求参数:

名称 说明 类型 长度 必要 备注
user_id 用户名 String 32 用户唯一标识,合作方定义(可为字母、数字、下划线或其组合)
partner 合作方标识 String 32 我要申请
doctor_id 医生 ID String 32 医生 ID
sign 签名 String 32 必须在服务器端生成 生成方法
atime 签名时间戳 Long 64 当前UNIX TIMESTAMP签名时间戳 (如:137322417)

返回:

名称 说明 类型 长度 必要 备注
id 医生 ID String 32 医生 ID
name 姓名 String 32 姓名
image 头像地址 String 头像地址
title 职称 String 职称
clinic_name 科室 String 科室
hospital 医院名字 String 医院名字
hospital_grade 医院级别 String 医院级别
good_at 擅长领域 String 擅长领域
recommend_rate 推荐指数 String 最高100
description 专家简介 String 专家简介
price 图文咨询 Int 单位为分
solution_score 专业度指数 int 最高100
good_rate 好评率 String 最高100,如‘98.8’
tags 医生标签 Array String Array
reward_num 送心意数量 int
reply_num 咨询数 int
fans_num 粉丝数 int
is_famous_doctor 是否是名医咨询 bool 名医咨询10次交互/48h后问题关闭;普通定向问题30次交互/48h后问题关闭
tel_price 电话咨询价格 json key:时长(单位:分钟),value:价格(单位:分)
tel_online 电话咨询状态 bool 医生的电话咨询是否开通
expert_call_price_fen 专家电话价格 Int 单位为分,-1为此服务未开通
expert_register_price_fen 专家预约挂号价格 Int 单位为分,-1为此服务未开通
education 教育背景 String
achievement 学术成果 String
welcome 医生寄语 String
error 错误码 Int 32 0 代表成功,其它代表异常
error_msg 异常信息 String

post数据示例

    
      {
        "user_id": "test_user",
        "doctor_id": "04c580dbeb2007220123",
        "partner": "test",
        "sign": "4d7de1d90f54c62d",
        "atime": "1608518154"
      }
    
  

响应示例

    
      {
        "id": "04c580dbeb2007220123",
        "name": "测试医生",
        "image": "https://resource.chunyu.mobi/@/media/images/99b3/5f9530432279?imageMogr2/thumbnail/150x",
        "title": "主治医师",
        "clinic_name": "小儿科",
        "hospital": "北京301医院",
        "hospital_grade": "三级甲等",
        "good_at": "临床工作20多年,经验丰富,擅长小儿呼吸道感染等诊治。",
        "solution_score": 98,
        "recommend_rate": 88,
        "good_rate": 92.8,
        "description": "",
        "price": 2500,
        "tags": [
          "百强医院",
          "从业26年",
          "北京市市"
        ],
        "reward_num": 7,
        "reply_num": 942,
        "fans_num": 55,
        "is_famous_doctor": false,
        "education": "1994年上海第二医科大学儿科系毕业,2006年去香港玛丽医院进修。",
        "achievement": "",
        "welcome": "欢迎关注我的小儿科个人诊所,希望能为你提供健康方面的帮助。",
        "tel_price": "{\"10\": 1000, \"15\": -1, \"20\": -1, \"30\": -1}",
        "tel_online": true,
        "error": 0,
        "error_msg": ""
      }
    
  

医生总结信息

说明:

在咨询过程中或服务关闭后7天内,医生可通过图文形式向用户下发总结。医生总结是医生的可选交流方式,并非所有问题都会下发总结。

总结信息可通过两种方式传达到合作方:1、通过【医生回复通知接口】以回调形式同步;2、通过【问题详情接口】同步。在这两种方式中,会对医生总结进行特殊标识,具体请参见接口规范。

医生可多次撰写总结,但春雨平台侧每个问题只会保留一份总结,以最后一次为准(即推送可能收到多次,但问题详情接口里只会体现一份总结,合作方可酌情设计该功能)。

查询问题分配科室接口

说明:该接口可用于查询众包(升级)问题将会被分配的科室号;春雨支持创建众包(升级)问题时指定科室问诊,合作方创建问题时传给春雨科室信息,就会按传递的科室进行分诊,以此实现用户自主选择科室;如果不传则春雨自动分配; 另外如果合作方选择的科室是错误的话,医生侧可将该问题转诊至正确的科室,最终显示的分诊科室可能与最初选择不同。

URL: /cooperation/server/problem/get_problem_clinic_no/

请求方式: POST

请求参数:

名称 说明 类型 长度 必要 备注
user_id 用户ID String 32 用户唯一标识,合作方定义(可为字母、数字、下划线或其组合)
partner 合作方标识 String 32 我要申请
sign 签名 String 32 必须在服务器端生成 生成方法
atime 时间戳 Long 64 当前UNIX TIMESTAMP签名时间戳 (如:137322417)
ask 问题的文本 String 100 首次提问的问题文本

返回:

名称 说明 类型 长度 必要 备注
clinic_no 结果 String 10 问题科室编号
error 错误码 Int 32 0 代表成功,其它 代表异常
error_msg 异常信息 String

post数据示例

    
      {
        "user_id": "test_user",
        "partner": "test",
        "ask": "浑身发热,没劲",
        "sign": "fdb57eee1bb66c91",
        "atime": "1608518632"
      }
    
  

响应示例

    
      {
        "error": 0,
        "error_msg": "",
        "clinic_no": "aa"
      }
    
  

评价问题接口

服务细则

1、问题未关闭时,交互3次以上可进行评价

2、问题关闭后:关闭后30天内可以评价;接收评价的有效期为问题关闭后30天内,超过30天,不能再评价;测试环境的有效期为问题关闭后1小时

3、评价次数限制:每个问题仅支持接收一次评价数据

接口信息

URL: /cooperation/server/problem/assess

请求方式: POST

请求参数:

名称 说明 类型 长度 必要 备注
user_id 用户名 String 32 用户唯一标识,合作方定义(可为字母、数字、下划线或其组合)
partner 合作方标识 String 32 我要申请
problem_id 问题ID Int 32
assess_info 评价信息 String 32 数据结构,生成方式可参考数据结构
如:'{"level": "best", "tag_keys":["3201", "3102"]}'
level 评价等级 String 32 'best','good','bad'
tag_keys 评价标签数组 Array 标签必须与 level 匹配
content String String 数据结构,只能传递text类型的contentItem。
sign 签名 String 32 必须在服务器端生成 生成方法
atime 签名时间戳 Long 64 当前UNIX TIMESTAMP签名时间戳 (如:137322417)
    
      {
        "bad": {
        "1101": '不友好',
        "1102": '不细致',
        "1201": '等好久没回复',
        "1301": '完全听不懂',
        "1302": '感觉不专业',
        "1303": '没有帮助',}
        "good": {
        "2101": '希望更热情',
        "2102": '希望更细致',
        "2201": '希望回复更快',
        "2301": '希望讲得更透彻',}
        "best": {
        "3101": '态度非常好',
        "3102": '非常清楚',
        "3201": '回复很及时',
        "3301": '非常专业认真',
        "3302": '意见很有帮助',
        "3303": '非常敬业',}
      }
    
  

返回:

名称 说明 类型 长度 必要 备注
error 错误码 Int 32 0 代表成功,其它 代表异常
error_msg 异常信息 String

post数据示例

    
      {
        "user_id": "test_user",
        "partner": "test",
        "problem_id": "443258196",
        "assess_info": "{\"level\": \"best\", \"tag_keys\":[\"3201\", \"3102\"]}",
        "content": "[{\"type\": \"text\",\"text\": \"医生解答的挺好的,给个好评。\"}]",
        "sign": "fdb57eee1bb66c91",
        "atime": "1608518632"
      }
    
  

响应示例

    
      {
        "error": 0,
        "error_msg": ""
      }
    
  

问题删除接口

删除问题后,"我的提问历史"接口中,会删除掉这个问题。

注意:问题未关闭时调用此接口时,会先关闭问题。请用户确保问诊完毕,不需要和医生交互后使用。

URL: /cooperation/server/problem/delete

请求方式: POST

请求参数:

名称 说明 类型 长度 必要 备注
user_id 用户名 String 32 用户唯一标识,合作方定义(可为字母、数字、下划线或其组合)
partner 合作方标识 String 32 我要申请
problem_id 问题ID Int 32
sign 签名 String 32 必须在服务器端生成 生成方法
atime 签名时间戳 Long 64 当前UNIX TIMESTAMP签名时间戳 (如:137322417)

返回:

名称 说明 类型 长度 必要 备注
error 错误码 Int 32 0 代表成功,其它 代表异常
error_msg 异常信息 String

post数据示例

    
      {
        "user_id": "test_user",
        "partner": "test",
        "problem_id": "443258241",
        "atime": "1608519397",
        "sign": "7d752c229c9cd583"
      }
    
  

响应示例

    
      {
        "error": 0,
        "error_msg": ""
      }
    
  

问题关闭接口

说明:第三方通过此接口主动关闭问题,主动关闭条件:状态不是已关闭且医生有回复

URL: /cooperation/server/problem/close

请求方式: POST

请求参数:

名称 说明 类型 长度 必要 备注
user_id 用户名 String 32 用户唯一标识,合作方定义(可为字母、数字、下划线或其组合)
partner 合作方标识 String 32 我要申请
problem_id 问题ID Int 32
sign 签名 String 32 必须在服务器端生成 生成方法
atime 签名时间戳 Long 64 当前UNIX TIMESTAMP签名时间戳 (如:137322417)

返回:

名称 说明 类型 长度 必要 备注
error 错误码 Int 32 0 代表成功,其它 代表异常
error_msg 异常信息 String

post数据示例

    
      {
        "user_id": "test_user",
        "partner": "test",
        "problem_id": "443258242",
        "atime": "1608519713",
        "sign": "8fddaee19d525886"
      }
    
  

响应示例

    
      {
        "error": 0,
        "error_msg": ""
      }
    
  

我的提问历史

说明:通过此接口获取用户的提问历史

URL: /cooperation/server/problem/list/my

请求方式: POST

请求参数:

名称 说明 类型 长度 必要 备注
user_id 用户名 String 32 用户唯一标识,合作方定义(可为字母、数字、下划线或其组合)
partner 合作方标识 String 32 我要申请
start_num 开始数 Int 32 用于支持翻页功能,从 0 开始计数
count 每次取的问题数 Int 32 最大200
sign 签名 String 32 必须在服务器端生成 生成方法
atime 签名时间戳 Long 64 当前UNIX TIMESTAMP签名时间戳 (如:137322417)

返回:

名称 说明 类型 长度 必要 备注
problem 问题信息 dict
id 问题 ID Int 32
status 问题状态 String

n 新问题

a 已认领---医生认领,等待医生回答

s 已回复

c 已关闭

p 被举报---因为含有违禁词/辱骂医生等原因被举报

状态转换示意图 点击查看

price 问题支付价格 Int 问题支付价格,单位: 元
to_doc 是否是针对医生的定向提问 Boolean
title 问题标题 String 200 问题标题
ask 提问内容 String 20 提问内容
clinic_no 问题所在的科室号 String 20 N
clinic_name 问题所在的科室名字 String 100
has_answer 是否被医生答复 Boolean
need_assess 问题是否需要被评价 Boolean
created_time_ms 创建时间的毫秒数 Long 64
created_time 创建时间的字符串格式 String '%Y-%m-%d %H: %M:%S'
star 问题星级 Int 32 (4,5 为好评, 1,2 为差评,3 为中评,-1 暂未 评价)
doctor 医生信息 dict 医生信息
id 医生 ID String
name 医生姓名 String 200
image 医生头像 String 200 医生照片的 url
title 医生职称 String
level_title 带医院级别的医生职称 String 带医院级别的医生职称
clinic 科室号 String 20 问题列表
hospital 医院名字 String 100

post数据示例

    
      {
        "user_id": "test_user",
        "start_num": "0",
        "count": "10",
        "partner": "test",
        "sign": "3bb28a7c0f4a463e",
        "atime": "1608520177"
      }
    
  

响应示例

    
      [{
        "problem": {
          "id": 443258245,
          "status": "a",
          "star": 5,
          "to_doc": false,
          "price": 6.0,
          "title": "医生您好,测试创建众包问题(...",
          "ask": "医生您好,测试创建众包问题(男,40岁)",
          "clinic_no": "2",
          "has_answer": true,
          "flag": "n",
          "created_time_ms": 1608519977000,
          "assess_remark": "挺好的,评价一下这个。",
          "clinic_name": "儿科",
          "created_time": "2020-12-21 11:06:17",
          "need_assess": false,
          "level": "best"
        },
        "doctor": {
          "id": "clinic_web_ae8068a4df5f189e",
          "name": "测试医生",
          "title": "主治医师",
          "image": "https://test.chunyutianxia.com/media/images/fc7d/8968fe2e5cb5?imageMogr2/thumbnail/150x",
          "clinic_no": "2",
          "clinic": "小儿科",
          "hospital": "上饶市妇幼保健院",
          "hospital_grade": "二级甲等",
          "level_title": "二级甲等医院主治医师"
        }
      }]
    
  

H5资源访问登录跳转

说明:由于接入方用户端没有登录状态,在使用某些H5链接资源时,需要将要访问的链接嵌套此接口,并实时生成链接下发给用户端进行访问,已完成登录并访问。 文档中的接口签名验证机制同春雨开放平台问诊对接;

URL: /cooperation/saas/login_redirect/

请求方式: GET

请求参数:

名称 说明 类型 必要 备注
url 问诊记录url String 需要进行URL编码
partner 合作方标识 String
user_id 用户名 String 用户唯一标识,合作方定义(可为字母、数字、下划线或其组合)
sign 签名 String 必须在服务器端生成 生成方法
atime 签名时间戳 Long 当前UNIX TIMESTAMP签名时间戳 (如:137322417)

示例:

其中问诊记录测试环境url:

    
      
        https://www.chunyuyisheng.com/cooperation/wap/my_all_services_page/?partner=xxx&from_saas=1
      
    
  

嵌套登录接口后下发给用户端:

    
      
        https://www.chunyuyisheng.com/cooperation/saas/login_redirect/?url=https%3A%2F%2Fwww.chunyuyisheng.com%2Fcooperation%2Fwap%2Fmy_all_services_page%2F%3Fpartner%3Dxxxx%26from_saas%3D1&partner=xxx&atime=1676883201&user_id=test_user1&sign=1f46b8e32d7ebd2e
      
    
  

退款及举报逻辑

针对众包升级、定向图文类型的付费问题,涉及到如下退款场景时,将下发对应的系统通知和文案

退款类型

1、退款类型共包括5类,具体参见下表《退款类型》

2、举报逻辑与被举报引起的退款(具体参见表《因被举报引起的退款逻辑》)

规则说明1:问题因被系统举报或被医生举报可能引发退款,举报逻辑共包括4种类型,其中3种涉及退款;

规则说明2:凡被举报的问题,平台侧都会下发多次推送通知,第1次下发关闭通知,是否做退款处理请以第2次通知为准,具体处理逻辑及文案细节见表;

退款类型 说明 前置条件 refund_type取值 春雨返回文案 建议显示文案(合作方自主决定是否显示)
医生拒绝 付费问题被医生拒绝触发退款 1 抱歉,医生评估您的问题后,认为自身经验与您的问题不大匹配或无法及时回复,已为您退款,请选择其他医生 抱歉,医生评估您的问题后,认为自身经验与您的问题不大匹配或无法及时回复,已为您退款,请选择其他医生
用户取消 当问题未被医生回复时,由用户主动发起退款 2 患者取消
超时退款 当付费问题在有效时间内未被医生接题,会被系统自动关闭,并向用户退款 3 超时退款 您的问题超时未回复已自动退款
客服退款 由于各种原因,比如用户或合作方投诉等,由春雨客服审核并操作退款 客服审核后认为该订单可退 4 (客服具体输入的内容) 已为您退款,请选择其他医生
被举报退款 举报逻辑共包括4种类型,其中3种涉及退款,具体参见下图 5 (见下图) (见下图)

因被举报引起的退款逻辑

问题被举报时会被立即关闭。若此时医生尚未回复,则退款;若医生回复后被医生举报,则先关闭问题,由客服审核举报,如果医生举报正确,则不退款;医生举报错误则退款并降低医生的指数。通知关闭情况见图:

黑名单逻辑

当问题被医生举报并达到一定次数时,该用户将被拉入春雨平台的黑名单中;当用户被拉入黑名单后,将导致该用户后续创建问题失败.

错误信息为:"因违背提问原则,此功能暂不可用。如有疑问请联系春雨客服"

回调管理

回复通知接口

当服务被医生回复、总结时,春雨主动请求合作方配置的链接地址,传递医生回复数据。

1.服务关闭和服务退款两个通知并不互斥,在特殊场景中(特殊情况:已交互的问题被举报时)会先关闭服务;
2.各类服务都可调用该接口,如同时接入多种服务类型,传不同的参数即可,根据status区分来自哪种服务类型。


URL: 即合作方管理后台-账户管理-信息配置中填写的回复回调路径

请求方式: POST

请求参数:

名称 说明 类型 长度 必要 备注
problem_id 问题编号 api接入返回Int,web接入返回加密的string
user_id 用户名 String 32 用户唯一标识,合作方定义(可为字母、数字、下划线或其组合)
content 医生答复内容 String 数据结构,可以包含除 patient_meta 之外的三种类型。
left_interactions 剩余交互次数 Int
sign 签名 String 32 必须在服务器端生成 生成方法
status 回调类型 String

reply 医生回复

atime 签名时间戳 Long 64 当前UNIX TIMESTAMP签名时间戳 (如:137322417)
is_summary 是否是医生总结 Boolean 是否是医生总结
doctor 医生信息 dict 医生信息
id 医生 ID String
name 医生姓名 String 200
image 医生头像 String 200 医生照片的 url
title 医生职称 String
level_title 带医院级别的医生职称 String 带医院级别的医生职称
clinic 科室名称 String 20
clinic_no 科室号 String 20
hospital 医院名字 String 100
hospital_grade 医院级别 String 医院级别
good_at 擅长领域 String 擅长领域(医生回复接口里的医生信息是简版的信息,建议通过医生详情接口获取医生的详细信息)
education_background 教育背景 String

返回:

名称 说明 类型 长度 必要 备注
error 错误码 Int 32 0 代表成功,其它 代表异常
error_msg 异常信息 String
            
              {
                "error": 0, // 0 代表成功,其它 代表异常
                "error_msg": "" //错误信息
              }
            
          

服务关闭通知接口

当服务关闭、退款等状态变更时,春雨主动请求合作方配置的链接地址,传递订单状态数据。

开发时请注意:问题关闭和问题退款两个通知并不互斥,在一些场景中会先关闭问题


URL: 即合作方管理后台-账户管理-信息配置中填写的关闭回调路径

请求方式: POST

请求参数:

名称 说明 类型 长度 必要 备注
problem_id 问题编号 api接入返回Int,web接入返回加密的string
user_id 用户名 String 32 用户唯一标识,合作方定义(可为字母、数字、下划线或其组合)
msg 消息内容 String
status 问题状态 String

close 回答完毕后关闭

refund 问题退款

price 退款金额 Int 单位为分
sign 签名 String 32 必须在服务器端生成 生成方法
atime 签名时间戳 Long 64 当前UNIX TIMESTAMP签名时间戳 (如:137322417)
refund_type 退款类型 Int 返回值及其类型说明:
1代表:医生拒绝
2代表:用户取消
3代表:超时退款
4代表:客服退款
5代表:被举报退款

返回:

名称 说明 类型 长度 必要 备注
error 错误码 Int 32 0 代表成功,其它 代表异常
error_msg 异常信息 String
            
              {
                "error": 0, // 0 代表成功,其它 代表异常
                "error_msg": "" //错误信息
              }
            
          

服务创建通知接口

当图文服务创建时,春雨主动请求合作方配置的链接地址,传递订单状态数据。


URL: 即合作方管理后台-账户管理-信息配置中填写的关闭回调路径

请求方式: POST

请求参数:

名称 说明 类型 长度 必要 备注
problem_id 问题编号 api接入返回Int,web接入返回加密的string
user_id 用户名 String 32 用户唯一标识,合作方定义(可为字母、数字、下划线或其组合)
sign 签名 String 32 必须在服务器端生成 生成方法
atime 签名时间戳 Long 64 当前UNIX TIMESTAMP签名时间戳 (如:137322417)
status 问题状态 String create
ask 用户发送的首问 String
is_todoc 是否是定向问题 Bool
is_paid_clinic 是否是普通众包 Bool
upgrade_type 付费升级类型 String 仅众包升级类型问题有值
二甲医生:
qc_hospital_common
三甲医生:
qc_hospital_upgrade

返回:

名称 说明 类型 长度 必要 备注
error 错误码 Int 32 0 代表成功,其它 代表异常
error_msg 异常信息 String
            
              {
                "error": 0, // 0 代表成功,其它 代表异常
                "error_msg": "" //错误信息
              }
            
          

常见错误码

错误码 错误信息 说明
1 default error 未归类的请求或者处理错误
10001 invalid partner 第三方账户检查失败,请确保partner参数正确
10002 invalid user 第三方账户用户id错误
10003 invalid username or password 第三方用户验证失败,请确保同一用户每次登录的账户名和密码一致
10004 invalid param content 问题内容检查失败,请确保问题格式符合要求
10005 invalid doctor id 医生id无效
10006 sign verification failed 签名验证失败,可以通过复现用例签名来检查构造sign方法是否正确
10007 atime time out 时间戳检查失败,请确保服务器时间已同步标准时间
10008 Missing param package_name or package_sign package_name或package_sign缺失
10009 Invalid mode(should be either server or client) 无效模式(应该为"client"或者"server")
10010 invalid problem_id 请求参数中的问题id不正确
10011 invalid start_num and count 无效的start_num或者count,必须是数字
10012 invalid ask text ask参数不存在
10013 invalid clinic no 科室号无效
10014 问题ID错误 该id对应的问题不存在
10015 非提问者不能执行该操作
10016 用户不存在,请先注册 收到此提示的原因是:该用户尚未在春雨平台注册,针对此问题,合作方需使用登录/注册接口为该用户(user_id)创建账号并登录
10017 param content is too long 问题或者评价内容超过5kB,极有可能是内容类型错误引起
10018 invalid atime atime 错误
10020 param "xx" check err 参数校验错误
10101 content 类型需要为 text,image,audio,patient_meta 中任意一种
10102 缺少 text 字段内容
10103 缺少 file 字段内容
10104 缺少 age 和 sex 字段内容
10201 对不起,您不能提交问题。
10202 不能提问非医疗问题
10203 您已提问成功,无需重复提问
10301 问题已经被关闭/删除,不能追问
10401 invalid star
10402 您已经进行过评价,不能再次评价! 收到此提示的原因是:已对该问题做过评价
10403 您现在还不能对该问题进行评价! 评价接口调用规则:问题交互3次以后可以评价,低于3次需等问题关闭后才可评价
10404 问题无医生认领回答,不能评价 评价接口调用规则:问题交互3次以后可以评价,低于3次需等问题关闭后才可评价
10501 close problem failed 问题关闭错误,问题只能在有医生领取并回答的情况下才能执行关闭操作。
10601 非问题创建者不能退款
10602 问题已经被医生回复,不可以执行退款操作
10603 当前问题状态不能进行该操作
10604 正式环境转诊问题不可以退款
10605 退款金额不能为0,请校验退款金额
10606 无相应支付记录
11001 invalid price 无效价格
11002 invalid partner_order_id 无效的partner订单id
11003 duplicate partner_order_id 重复的partner订单id
11004 invalid chunyu_order_id 无效的chunyu_order_id
11005 order does not exist 订单不存在
11006 closed record 已关闭的记录
11007 create payment order failed 创建支付订单失败
11008 not the order's owner 不是订单创建者
11009 paid is not equal to price 支付金额与价格不相符
11012 invalid logistics_info format 无效的物流信息格式
11013 购买失败
11014 您已被加入黑名单, 不能购买任何服务
12001 医生不存在
12002 医生未回答的问题数过多
12003 因违背提问规则,此功能暂不可用。如有疑问请联系春雨在线客服 收到此提示的原因是:提问用户已被加入黑名单,无法发起提问。黑名单相关逻辑,请参考“黑名单逻辑”章节。
12004 首问字数过少 图文咨询首问字数不得少于10个字
13001 医生24小时内无法预约
14001 订单创建失败

系统文案

API接入合作方可考虑自行增加以下系统消息逻辑以优化用户体验

问题类型 条件 系统消息文案
定向问题 1、白天付费问题(6:00-22:59:59)
2、患者首问自动触发
已为您通知到XXX医生,请耐心等待。
您也可以补充更多病情描述,以获得更充分的帮助。
1、白天付费问题(6:00-22:59:59)
2、患者首问10分钟后医生未回复自动触发
您的焦虑心情我们非常理解,但XXX医生当前忙碌,无法立即回复,请多体谅。
医生回复后,您将在第一时间收到通知。
1、夜晚付费问题(23:00—次日5:59:59)
2、夜晚患者首问自动触发
亲爱的,您好:
我们已将您的问题发送给xxx医生,但夜深人静,医生也要休息一下,请您白天再来查看医生的回复,不要着急哦!
众包付费 患者首问10分钟后医生未回复自动触发 亲爱的,您好:
我们已通知医生。为您答题的医生均在医院临床一线工作,无法做到随问随答,请您耐心等待哦! 您的问题得到回复后,我们会在第一时间给您推送消息~