错误码
接口返回 JSON 里的 code 表示结果,msg 是具体原因。页面跳转支付下单失败时,同样的原因显示在「下单失败」页面上。
返回码
| code | 含义 |
|---|---|
1 | 成功 |
-1 | 请求没有成功,原因见 msg |
-2 | 订单已生成,但支付通道下单失败 |
-1:请求没有成功,原因见msg(申请退款返回「退款处理中」除外,见「申请退款」)-2:订单已生成,但支付通道下单失败,msg是通道给出的原因,同时返回trade_no
公共错误
所有接口都可能返回:
| 返回信息 | 说明 |
|---|---|
| 商户ID不能为空 | pid 没传或认不出商户号 |
| 商户不存在 | pid 对应的商户不存在 |
| 商户已禁用 | 商户已被停用,请联系平台 |
| 签名校验失败 | 签名不对 |
| 请使用 POST 方式请求 | 用 GET 调用了页面跳转支付以外的接口 |
| 请求体过大或读取失败 | 请求内容超过 2MB,或传输中断 |
| 系统错误 | 平台暂时无法处理,请稍后重试 |
- 「商户ID不能为空」:查询、退款等接口没有传
pid,或pid认不出商户号 - 「签名校验失败」:签名不对;签名方式为「RSA签名」的商户没有传
sign_type=RSA也会返回这个
下单错误
页面跳转支付和 API 接口支付可能返回:
| 返回信息 | 说明 |
|---|---|
| 参数不完整 | 必填参数缺失,或 money 不大于 0 |
| 商户订单号格式不合法 | out_trade_no 含有不允许的字符 |
| 商户支付权限已关闭 | 商户暂时不能收款,请联系平台 |
| 商户订单号已存在 | 这个 out_trade_no 已经下过单 |
| 下单过于频繁,请稍后再试 | 同一商户每分钟下单超过 120 笔 |
| 最大支付金额为 N 元 | 金额超过平台或商户设定的上限 |
| 最小支付金额为 N 元 | 金额低于平台或商户设定的下限 |
| 该商品禁止出售 | 商品名称含有平台禁止的词 |
| 该 IP 已被拉黑,请联系商家处理 | 请求来源 IP 在黑名单里 |
| 该用户已被拉黑,请联系商家处理 | 付款人 sub_openid 在黑名单里 |
| 商户未配置可用支付通道,无法收款 | 不传 type 下单时,商户没有任何可用的支付通道 |
| 不支持的支付方式:xxx | type 不是「支付方式」里的调用值 |
| 该支付方式已停用 | 本站停用了这种支付方式 |
| 当前商户未开通该支付方式 | 你的商户没有开通这种支付方式 |
| 该支付方式不支持当前设备 | 这种支付方式限定了设备,见「设备类型」 |
| 该支付方式暂无可用通道 | 没有能收这笔订单的支付通道 |
| 指定通道不可用 | channel_id 指定的通道不能用于这笔订单 |
| 商户余额不足,请先充值 | 这笔订单要先从商户余额里扣服务费,余额不够 |
- 「参数不完整」:
pid、out_trade_no、notify_url、name、money有缺失,或money不大于 0 - 「商户订单号格式不合法」:
out_trade_no含有字母、数字和._-|以外的字符 - 「商户订单号已存在」:这个
out_trade_no已经下过单,同时返回已有订单的trade_no和status - 「该商品禁止出售」:商品名称含有平台禁止的词,提示文字可能由平台自定义
- 「该支付方式暂无可用通道」:没有能收这笔订单的支付通道,例如金额超出通道的限额
查询错误
| 返回信息 | 说明 |
|---|---|
| 订单号不能为空 | trade_no 和 out_trade_no 都没传 |
| 订单不存在 | 没有这笔订单,或订单不属于你的商户 |
| 退款单号不能为空 | refund_no 和 out_refund_no 都没传 |
| 退款记录不存在 | 没有这笔成功的退款 |
退款与关单错误
申请退款的失败原因见「申请退款」,关闭订单的失败原因见「关闭订单」。