易支付接口地址与调用方式
列出下单入口、请求参数与返回处理方式,方便技术对接时逐项核对。
请求方式与必填参数
以 POST 提交表单数据,内容类型为 application/x-www-form-urlencoded。参数名区分大小写,缺少必填项时返回失败结果并给出原因。
| 参数 | 必填 | 说明 |
|---|---|---|
| mchId | 是 | 商户ID,在易支付后台获取 |
| payId | 是 | 商户支付单号,同一商户下不可重复,最长 50 字符 |
| type | 是 | 支付方式,微信为 1,支付宝为 2 |
| price | 是 | 订单金额,单位元,保留两位小数 |
| sign | 是 | 签名,按 payId + param + type + price + 密钥 计算 MD5 |
| goodsName | 是 | 商品名称,最长 50 字符 |
| param | 否 | 透传参数,会原样带回异步与同步通知 |
| isHtml | 否 | 0 返回 JSON;1 跳转到支付页面 |
| notifyUrl | 否 | 异步通知地址,不传则使用后台配置 |
| returnUrl | 否 | 同步跳转地址,仅 isHtml=1 时生效 |
签名按顺序拼接
- 01
按 payId、param、type、price 的顺序直接拼接,中间不加分隔符。
- 02
在拼接结果末尾追加通讯密钥。
- 03
对整串计算 MD5,取小写结果作为 sign 一起提交。
- 04
回调验签使用 orderId、param、type、price、reallyPrice 与密钥按同样方式拼接。
返回结果怎么读
下单成功
code 为 1 表示下单成功,data 中给出 payUrl、orderId 与 state,前端据此展示二维码。
下单失败
code 为 -1 时 data 为空,msg 给出失败原因,直接展示给用户便于排查参数。
状态查询
查询接口返回 1 已支付、-2 未支付、-3 已过期,页面据此自动确认订单状态。
常见报错对照
联调阶段遇到下面三种提示,先核对商户号与密钥,再检查参与签名的参数。
商户不存在
mchId 与后台记录不一致,或该商户当前不可用。
签名错误
密钥不一致,或拼接顺序与提交的参数不完全相同。
参数不能为空
必填项缺失,重点检查 mchId、payId、type、price 与 goodsName。
商户密钥只保存在服务端环境变量中,签名与验签都在服务端完成;页面侧只负责发起支付与展示订单状态。
订单状态怎么确认
页面每 3 秒调用一次查询接口,返回已支付就自动确认;回跳带签名时也会直接校验通过,两种方式互为补充。
查询接口确认
用商户单号或云端订单号查询,返回已支付后把订单置为已支付,结果页显示支付成功并保留支付时间。
回跳验签确认
回跳携带签名时直接校验,通过即置为已支付;校验不通过不修改订单,继续等待查询结果。
两种确认方式都失败时,订单保持待支付,可凭订单号联系商务在管理后台核对。