报错排查指引

更新时间:2026.05.11
||

微信支付为接入移动医保支付的合作伙伴及商户提供专属技术支持,涵盖全流程接入指引与报错协助排查。

如需申请技术支持,请通过微信搜索添加「微信支付医疗健康助手」(微信号:Wechatpay_BDzhushou),申请通过后将邀请您加入技术支持微信群,获取官方协助。

一、排查流程

1.自查

建议合作伙伴/商户先行自查,快速定位,可参阅下方「排查指引」。

注意

医保支付失败时,查单接口新增了 med_ins_fail_reason 字段,会返回医保局侧的具体失败原因(仅在 med_ins_pay_status=MED_INS_PAY_FAIL 时返回)。建议服务商将该字段落库并透传给医院侧,有助于更快定位问题。

2.平台协助排查

若自查后仍无法解决,请联系技术支持群内的技术助手或对接运营同学协助排查。

申请协助排查时,请提供下单请求参数、接口返回内容或Request-ID。

二、排查指引

【阶段1】前端拉起收银台失败

权限及签名鉴权问题

错误信息

平台

原因

解决方案

 "requestMedicalInsurancePay:fail:access denied"

 小程序

 未开通JSAPI权限位1295

 联系运营开通

 system:access_denied

 公众号H5

 JSAPI鉴权未通过

  • 确认是手机微信(不支持PC微信)

  • 确认使用 wx.config 鉴权,并且鉴权回调正确(有走到 wx.ready 回调)

  • 确认在 wx.ready 回调里面调用拉起收银台接口

  • 确认 wx.config 的 jsApiList 包含 requestMedicalInsurancePay

  • 确认签名URL是真正发起HTTP请求的URL

 no permission to execute

 公众号H5

 JSAPI鉴权未通过

缺少参数total fee

/

前端支付参数不完整或格式错误

若订单包含自费支付,请检查 appid、timeStamp、nonceStr、package、signType、paySign 是否完整,其中 package 格式应为 prepay_id=xxx;纯医保支付场景不要传自费支付参数

system:function_not_exist

/

微信客户端版本太低

升级微信到最新版本;前端应做低版本兼容判断,给出友好升级提示

收银台无反应

/

基础库不支持

检查wx.requestMedicalInsurancePay是否存在;更新基础库到最新版

config:invalid signature

/

签名URL不正确(尤其iOS端)

确保签名URL与页面实际URL完全一致

小程序权限检查清单

  • 确认已开通 WXA_JSAPI_INDEX_requestMedicalInsurancePay = 1295

  • 确认已开通客户端权限 JSAPI_CONTROL_BYTE_REQUEST_MEDICAL_INSURANCE_PAY = 494

另外,jsapi报错开发者可以自查,开启debug模式就能拿到错误信息就能自己排查。详情可查看:常见错误及解决办法

【阶段2】下单阶段错误

400——PARAM_ERROR

描述

排查方向

参数错误

请根据错误提示正确传入参数

 医保结算后需自费金额计算失败

  •  当医保结算后需自费金额 med_ins_cash_fee > 0 时,确认 med_ins_cash_fee + cash_add = wechat_pay_cash_fee + cash_reduce

  • 检查填写的金额是否正确 

 无效的证件类型

 目前只支持身份证(card_type: ID_CARD)

 代亲属支付缺少亲属信息

 请补充亲属信息,如补充 pay_for_relatives 相关字段

 医保下单时间解析失败

 请确认医保下单时间的格式是否正确,如确认 med_ins_order_create_time 格式为 ISO 8601

 AppID与OpenID不正确

 确认 AppID 和 OpenID 配对正确,并确保OpenID是从对应的AppID下获取的。

 OpenID不正确

 确认 OpenID 为该 AppID 下的用户标识

 AppID不正确

  •  确认 AppID 已完成医保支付接入

  •  

    确认AppID 填写正确

  • 确认AppID 大小写正确

 商户号不正确

 确认 mch_id / sub_mch_id 填写正确

400——INVALID_REQUEST

描述

排查方向

 医保局结算校验失败

确认医保相关字段正确,综合排查(见下方详细说明) 

 入参个人身份ID摘要和医保电子凭证绑卡身份ID摘要不匹配,请检查后重试

  •  检查 payer.id_digest 计算方式(请仔细阅读字段加密方式)

  • 请检查用户身份ID摘要和sub_openid 

缺少必要字段,请根据混合支付类型补充必要的字段。

缺少必要字段,请根据混合支付类型补充必要的字段。请根据混合支付类型补充必要的字段。

  • 自费下单需包含wechat_pay_cash_fee、prepay_id;

  • 医保下单需包含pay_order_id、pay_auth_no、geo_location、med_ins_order_create_time、med_ins_gov_fee、med_ins_self_fee、med_ins_other_fee、med_ins_cash_fee;

  • 自费医保混合下单,需包含前面的所有字段。

 亲属关系不存在

 确认亲属关系绑定有效

 微信号未绑定医保电子凭证

 引导用户绑定医保电子凭证

 入参用户姓名和医保电子凭证绑卡姓名不匹配,请检查后重试

  •  检查 payer.name 加密后的值是否正确(请仔细阅读字段加密方式)

  • 请检查用户姓名和sub_openid 

 未找到对应授权信息,无法查询订单信息

  •  检查 pay_auth_no 和 city_id 一致性

  • 请检查用户授权信息,或联系医保局定位处理 

 传入用户信息与原订单不匹配,请先进行确认

 检查授权信息,如是否过期,或联系医保局定位处理

 使用渠道与授权渠道不一致,请调用方确认

  • 确认授权与下单走同一环境(请仔细阅读下单接口中的med_ins_test_env字段)

  • 请检查用户授权信息,或联系医保局定位处理

HTTP 请求不符合微信支付 APIv3 接口规则

请参阅 接口规则

403——RULE_LIMIT

描述

排查方向

商户与子商户不是受理关系

确认 mch_id 与 sub_mch_id 父子绑定关系

 自费金额校验不通过

 med_ins_cash_fee > 0 时触发,医保结算后需要自费的金额(med_ins_cash_fee) = 实际需要用户微信支付的金额(wechat_pay_cash_fee) - 现金补充金额(cash_add_detail) + 现金减免金额(cash_reduce_detail)

订单总金额校验不通过

订单总金额(total_fee) = 医保统筹支付金额(med_ins_gov_fee)+ 医保个账支付金额(med_ins_self_fee)+ 医保其他支付金额(med_ins_other_fee) + 需要微信支付的金额(wechat_pay_cash_fee)+ 现金减免金额(cash_reduce_detail)

自费下单金额与医保下单金额校验不通过

医保自费混合支付单要求实际需要用户微信支付的金额(wechat_pay_cash_fee)和医保下单的金额(med_ins_gov_fee + med_ins_self_fee + med_ins_other_fee + med_ins_cash_fee)都要大于0。

 纯自费支付单字段规则不满足

  •  wechat_pay_cash_fee≠0,prepay_id非空

  • 不含医保字段(pay_order_id、pay_auth_no、geo_location、med_ins_order_create_time、med_ins_gov_fee、med_ins_self_fee、med_ins_other_fee、med_ins_cash_fee)

 纯医保支付单字段规则不满足

  •  医保字段非空(pay_order_id、pay_auth_no、geo_location、med_ins_order_create_time、med_ins_gov_fee、med_ins_self_fee、med_ins_other_fee、med_ins_cash_fee)

  • 不含自费字段(wechat_pay_cash_fee和prepay_id字段。)

 混合支付单字段规则不满足

 自费+医保字段均非空

实际需要用户微信支付的金额和医保下单的金额都为0,无法下单。

 医保自费混合支付单不支持双0元下单场景

纯医保单金额校验不通过

请确认:医保下单的金额(med_ins_gov_fee + med_ins_self_fee + med_ins_other_fee + med_ins_cash_fee),实际需要用户微信支付的金额(wechat_pay_cash_fee)等于0。

纯自费单金额校验不通过

医保下单的金额(med_ins_gov_fee + med_ins_self_fee + med_ins_other_fee + med_ins_cash_fee)为0,实际需要用户微信支付的金额(wechat_pay_cash_fee)大于0。

请求次数超过限制,请稍后重试。

请稍后重试

400——ALREADY_EXISTS

原因:订单号 out_trade_no 重复。

解决:更换新的 out_trade_no 重新下单。

 

403——REQUEST_BLOCKED

原因:商户尚未完成医保支付接入流程(未开通权限)。

解决:联系对接运营完成商户接入配置。权限申请流程见【权限申请】

【阶段3】支付/结算阶段错误

医保结算错误

通过查单接口的 med_ins_fail_reason 字段可获取医保局侧的详细错误原因。

注意

  • 以下错误信息来自医保局侧,不同省市中台文案和语义可能存在差异;

  • 建议结合医保订单号、授权号、参保地、医院 HIS 流水、Request-ID 联合定位。

常见结算错误及处理:

错误关键词

可能含义

建议处理

 预结算现金支付金额与结算金额不一致

 预结算现金支付金额与结算现金支付金额不一致

 请确保预结算现金支付金额与结算现金支付金额一致

Token核验失败:用户身份信息校验不通过

 医保电子凭证验证不通过或用户的医保电子凭证 ecToken 过期或身份信息不匹配。

  •  重新刷新医保电子凭证(重新授权),获取新的 ecToken

  • 检查用户姓名/身份证号是否与医保档案一致(比如曾改名、身份证升位等)

  • 引导用户重新激活医保电子凭证 

 医保结算成功,通知医院失败,自动冲正成功

 医保局侧结算已成功,但回调通知医院 HIS 系统时失败,为保持一致性自动冲正(撤销结算)。

 联系医保局配置或医院检查HIS接口

FSI-在院状态不允许进行结算

患者在医保系统中处于"在院"状态(住院中),不允许进行结算。

请确认患者状态,按正确业务规则结算

 参保人不存在该医院的门诊选点信息

 异地就医未选点/备案

 确认参保人是否已完成该医院的门诊选点、定点关系绑定,或异地就医备案。

 该人员正在进行门诊结算相关业务

 医保局并发限制

 稍后重试

 请求处理中,请勿频繁操作

 /

 等待处理完成

 service not registed

 医保局服务未注册

 联系医保局确认服务状态

 系统错误,请联系技术支持人员

 医保局系统异常

 等待恢复或联系医保局

订单未进行预结算,自费支付通知无法继续

订单未进行预结算

先完成医保预结算,再发起自费支付

前端fail回调

msg 内容

说明

处理建议

 缺少mix_trade_no

 前端未传混合单号

 检查前端调用参数,确认 mixTradeNo 已正确传递

 缺少自费参数

 自费支付参数不完整

 检查 appid/package/signType/paySign/timeStamp/nonceStr 等参数是否完整

 混合支付超时

 支付流程超时(约30秒)

 检查网络连接,引导用户重试

 混合支付订单状态为支付失败

 自费或医保支付环节失败

 调用查单接口确认订单状态及失败原因

 混合支付订单状态异常

 系统异常

 联系微信医保支付技术支持排查

 自费支付失败

 微信支付收银台支付失败

 检查支付参数和用户账户余额

 用户直接退出医保混合支付

 用户主动取消支付

 正常用户操作,无需特殊处理

 混合支付订单已关单

 订单超时关闭

 重新下单

【阶段4】查单(使用医保自费混合订单号/商户订单号/从业机构订单号/服务商订单号查看下单结果)

状态码

错误码

描述

解决方案

400

PARAM_ERROR

参数错误

请根据错误提示正确传入参数

400

INVALID_REQUEST

HTTP 请求不符合微信支付 APIv3 接口规则

请参阅 接口规则

401

SIGN_ERROR

验证不通过

请参阅 签名常见问题

500

SYSTEM_ERROR

系统异常,请稍后重试

请稍后重试

400

PARAM_ERROR

金额计算出现溢出,请检查填写的金额是否正确。

请检查填写的金额是否正确

403

RULE_LIMIT

请求次数超过限制,请稍后重试。

请稍后重试

404

NOT_FOUND

未找到订单,请确认订单号是否正确。

请确认订单号是否正确

【其他】免密授权

问题

答案

授权时提示:该机构渠道认证编码错误,该怎么办?

按以下步骤检查:
1.检查国家给机构的反馈单中,机构渠道认证编码是否复制完整了?(机构检查)
2.机构渠道认证编码是否含有特殊符号,如果有,在链接参数拼接时,需要先编码再拼接。检查拼接链接和腾讯端后端日志。(腾讯联调同学检查)
3.如果1和2都不行,需要找省中台确认该机构的参数已经加入测试环境。(腾讯联调同学反馈)

国家局免密授权,未正确出现国家局页面,是怎么回事

可以按以下步骤检查:
1.拼接的链接中是否把国家局免密授权需要的参数都拼接了(机构检查)
2.在不同的环境调试时,不同环境都要配置页面参数和接口返回参数。(腾讯联调同学检查)
例如:测试环境则检查是否在测试环境H5/小程序免密配置(payAuthNo授权)相关的参数

国家局授权页,点击授权时,提示:网络异常,是怎么回事

凭证内网请求支付中台不通,医院没有在支付中心进行登记等原因,需要医院确认是否已登记以及省中台自查。(腾讯联调同学反馈)

国家局授权页,提示:用户信息已过期,是怎么回事

参数失效原因,退出多试几次。由于测试环境,中台一般是ip,在微信内打开会确认一次,所以容易造成参数失效。

用户确认授权后,payAuthNo相关参数怎么获取?

通过前端授权后,还需要后端调用授权查询接口,根据前端获取到的authCode作为qrcode入参,然后再获取需要的参数。

测试环境测试免密授权时,没有用户openid,该怎么调授权查询接口

测试环境时,如果没有用户openid,可以先不用传,通过authCode先调接口查询。后续正式环境需要传入。

授权查询接口,文档出参中没看到所需要的参数,该怎么办

用户信息相关的参数,机构在立项时与腾讯商务沟通,立项申请后,以申请的参数作为返回。文档中的出参仅是参考。

授权查询到用户的经纬度为(0,0),是怎么回事

用户拒绝位置授权后,获取不到用户的经纬度信息,则会返回(0,0)。

是不是每次要做支付都要调一次免密授权

是的。

用户端做授权时,怎么授权页提示要设置密码?

此时用户应该是只激活了电子凭证,还没有设置电子凭证密码,需要设置完密码后,才可以进行授权。

小程序免密授权,如何在测试环境调试?

小程序在测试环境调试要将版本改envVersion:‘trial'。
envVersion: "release"   //正式版 
envVersion: "trial"   //体验版
envVersion: "develop"   //开发版

免密授权时,用户授权后,提示:{"code":150502,"message":"所在地区未查询到用户参保信息"}

可以按以下步骤检查:
1.用户没有对应城市的参保地。如果是在测试环境的话,需要找省中台添加测试人员的参保数据,同步到国家局后,再重试(可找腾讯联调同学添加)。添加需要的参数:姓名、身份证、参保地代码、参保地名称。
2.用户有对应的城市参保地,可能是用户没有加入到微信的测试环境。需要先解绑,找腾讯联调同学添加微信测试环境后,再继续测试(可找腾讯联调同学添加)。添加需要的参数:姓名、身份证、微信号、手机号。

小程序免密授权,授权完成后没有拿到authcode,报错了,是怎么回事?

授权码应该在app.js中获取。

H5调试时正常,小程序调试时,免密授权提示:机构渠道认证编码错误,是怎么回事?

1.请确认小程序的机构渠道认证编码是否与反馈单一致
2.如果一致,请确认小程序跳转的免密链接中机构渠道认证编码是否有encode,正确的情况下,小程序机构渠道认证编码不需要encode。

电子凭证展不了码,会影响免密授权吗?

会的。2.0模式下的免密,要求用户一定可以成功展码,才可以完成payAuthNo的授权。

小程序免密授权时,提示:传入小程序appid与主体不匹配,请重试。这是怎么回事?

小程序授权链接上的sourceapp(前18位)与合作方申请立项的小程序appid不一致。请确认对应的appid一致后再调用。

【其他】亲情授权

问题

答案

授权页出现了少儿,但是点击“去激活”提示:未查询到该少儿参保信息。这是怎么回事?

国家局未有该小孩的参保信息,需要地方同步到国家局后重新尝试。

点击授权时,提示:尚未绑定少儿医保。这是怎么回事?

从地方医保局未查询到本人和小孩的亲属关系,需要本地医保局确认两个是否在亲属库中有亲属关系,有才可以使用。

点击授权时,提示:为了亲属的账户安全,请先设置密码。这是为什么?

授权时,需要亲属可以正常展码,因此需要进行先密码设置后,再进行授权。

授权时,提示:请检查传入的亲人信息是否正确。这是什么问题?

从地方医保局查询的亲属关系,与授权链接传入中的亲属没同一个人。需要传入同一个。

授权时,提示:该亲人已被他人绑定,你无法帮其激活医保电子凭证。这是为什么?

该亲人已经被别人绑定激活,并且达到了数量限制,无法再代激活。

授权时,提示:亲属已自主激活医保电子凭证使用。这是为什么?

该亲人已经自己在手机微信激活电子凭证,暂无法他人帮助代激活使用。

授权时,提示:需要亲属在你手机上人脸认证通过后,你可帮助其激活医保电子凭证使用。这是怎么回事?

该亲人已经达到了一定的年龄,代激活需要验证该亲人的人脸,才可以激活使用。

授权时,提示:本人/亲人未参保。这是为什么?

亲人没有设置默认参保地。非深圳地区,可以在亲人展码页选择对应的参保地设置。(同时,再免密过程中会优化设置默认参保地逻辑)