支付通知

应用场景

易码付平台通过支付通知接口将用户支付成功消息通知给商户

 

注意:

 

1、只有付款成功才会通知

 

2、同样的通知可能会多次发送给商户系统。商户系统必须能够正确处理重复的通知。 推荐的做法是,当商户系统收到通知进行处理时,先检查对应业务数据的状态,并判断该通知是否已经处理。如果未处理,则再进行处理;如果已处理,则直接返回结果成功。在对业务数据进行状态检查和处理之前,要采用数据锁进行并发控制,以避免函数重入造成的数据混乱。

 

3、如果在所有通知频率后没有收到易码付侧回调,商户应调用查询订单接口确认订单状态。(通知频率为10秒、60秒、10分钟、30分钟、60分钟)

 

特别提醒:商户系统对于通知的内容一定要做签名验证,并校验通知的信息是否与商户侧的信息一致,防止数据泄露导致出现“假通知”,造成资金损失。

接口链接

请求方式:POST

URL地址:{BASE_URL}该链接是通过下单接口中的请求参数“notify_url”来设置的。请确保回调URL是外部可正常访问的,且不能携带后缀参数,否则可能导致商户无法接收到回调通知信息。回调URL示例:“http://test.yimapay.com/payment/callback.html”

请求参数

字段名 变量名 必填 类型 示例值 描述
应用ID app_id String app_7ca649d7cef5deb2 由易码付平台生成的应用ID,全局唯一。
商户订单号 out_trade_no String 1692014531737 商户系统内部订单号
平台订单号 trade_no String YH2108142002121923822 易码付平台的交易流水订单号
第三方支付平台订单号 platform_trade_no String 2022052113540265284652 第三方支付平台订单号
支付渠道 channel String wx_qr 支付使用的第三方支付渠道,详情参考 支付渠道属性值。
订单金额 amount Int 100 订单金额,单位为分
付款时间 pay_time String 2021-08-14 20:03:02 用户付款的时间,格式yyyy-MM-dd HH:mm:ss
商品描述 description String 测试商品 商品描述,异步通知收到此参数时,需要先解码,再验签
使用UrlEncode(UTF-8)解码,可参考编码/解码工具
附加参数 attach String {"userId":888,"level":3}(编码后:%7B%22userId%22%3A888%2C%22level%22%3A3%7D) 附加数据,JSON格式,在查询订单和支付通知中原样返回,可作为自定义参数使用。
异步通知收到此参数时,需要先解码,再验签
使用UrlEncode(UTF-8)解码,可参考编码/解码工具
签名串 sign String aa4bf6d01803310d4d99c9da59dd1f29 待签名字符串进行MD5加密得出的32位签名值,参考签名规则
支付状态 trade_state String success

支付状态

success:支付成功

closed:订单关闭

wait:等待付款

超时时长 time_expire String 60 订单超时时长,单位为分钟
订单创建时间 create_time String 2021-07-19 00:09:50 订单创建时间
客户端IP client_ip String 127.0.0.1 发起支付请求客户端的 IP地址

举例如下:

{BASE_URL}/payment/callback.html?app_id=app_7ca649d7cef5deb2&out_trade_no=1692014531737&trade_no=YMF2108142002121923822&channel=wx_qr&amount=2&pay_time=2021-08-14 20:03:02&description=%E6%B5%8B%E8%AF%95%E5%95%86%E5%93%81&attach=%7B%22custom%22%3A2%2C%22platform%22%3A%22%E6%98%93%E6%83%A0%22%7D&trade_state=success&time_expire=60&create_time=2021-08-14 20:01:02&client_ip=127.0.0.1&sign=aa4bf6d01803310d4d99c9da59dd1f29

返回结果

字段名 变量名 必填 类型 示例值 描述
状态码 code String FAIL 业务状态码,SUCCESS or FAIL
返回信息 message String 签名错误 返回信息,如非空,为错误原因。

举例如下:

接收成功:HTTP应答状态码需返回200或204,无需返回应答报文。
接收失败:HTTP应答状态码需返回5XX或4XX,同时需返回应答报文,格式如下:
{
    "code": "FAIL",
    "message": "签名失败"
}