用户支付完成后,华为支付服务器调用此接口向开发者的服务器发送支付关键事件通知。
为保证回调请求的可靠性,系统具备重试机制,所以可能出现重发的通知。
订单状态需根据orderStatus字段判断。
承载协议: HTTPS POST
接口方向: 华为支付服务器 -> 开发者服务器
接口URL: URL由开发者在请求预下单接口时传递的callbackUrl
数据格式:
请求消息:Content-Type: application/json; charset=UTF-8
响应消息:Content-Type: application/json; charset=UTF-8
Request Body
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| callbackId | 是 | String | 回调通知的唯一ID。 |
| callbackTime | 是 | String | 回调通知时间。格式为yyyy-MM-dd HH:mm:ss。 |
| dataType | 是 | String | 数据加密类型标识。 - encrypt:加密 - plain:未加密 |
| sign | 是 | String | 回调通知结果签名,除“sign”字段以外的其他字段参与签名。 开发者可参考验签规则对回调报文进行验签处理。 |
| signType | 是 | String | 签名类型。华为支付生成签名字符串使用的算法,当前为SM2算法。 |
| certNo | 否 | String | 签名所使用的证书编号。 |
| mercNo | 是 | String | 商户号。 |
| appId | 是 | String | 应用ID。获取方式请参见AppID管理及关联。 |
| sysTransOrderNo | 是 | String | 华为支付系统订单号。 |
| mercOrderNo | 是 | String | 商户订单号,由商户自己生成,商户需保证订单信息唯一性。最大长度46。 |
| orderStatus | 是 | String | 订单状态: - TRX_SUCCESS:交易成功 - TRX_FAILED:交易失败 |
| payload | 否 | String | 预留信息,如商户请求时传递该参数,此时会原样返回。 |
| currency | 是 | String | 交易币种单位,最大长度为3。 CNY (默认,当前仅支持该币种单位) |
| totalAmount | 是 | Long | 订单总金额,单位:分。 |
| payerAmount | 是 | Long | 买家实付金额,单位:分。 |
| promotionAmount | 是 | Long | 优惠金额,单位:分。 |
| finishTime | 否 | String | 支付完成时间,UTC时间格式(yyyy-MM-dd'T'HH:mm:ss.SSSZ)。 |
| paymentTools | 否 | String | 支付工具。 - WECHAT_MICROPAY:微信小程序支付 - AGMT:快捷 - ACCT:账户余额 - HUAWEIPAY:华为pay |
| promotionDetail | 否 | List<PromotionItem> | 营销活动信息。 说明: 当用户支付时参与过营销活动,此字段才会返回。 |
| payer | 否 | PayerOut | 用户支付时客户端信息。 |
POST /hw/pay/callback HTTP/1.1
Content-Type: application/json;charset=UTF-8
{
"callbackId": "124070308575300049145189***",
"callbackTime": "2023-03-29 09:29:14",
"currency": "CNY",
"dataType": "plain",
"finishTime": "2023-02-23T10:02:04.000+0800",
"mercOrderNo": "czl00120240705***",
"appId": "5765880207853***",
"mercNo": "10132120***",
"orderStatus": "TRX_SUCCESS",
"payerAmount": 10000,
"payload": "example-payload",
"paymentTools": "AGMT",
"promotionAmount": 0,
"sign": "MEYCIQDXutp78*******************VlWyjA6p210xOqI2InX9w2SIYRx",
"signType": "SM2",
"certNo": "120291744647139***",
"sysTransOrderNo": "12407030857530004914518***",
"totalAmount": 10000
}