目录

支付结果回调通知

功能介绍

用户支付完成后,华为支付服务器调用此接口向开发者的服务器发送支付关键事件通知。

  1. 为保证回调请求的可靠性,系统具备重试机制,所以可能出现重发的通知。

  2. 订单状态需根据orderStatus字段判断。

场景描述

一笔订单支付成功后,华为支付服务器会调用开发者在预下单接口中传递的回调接口(callbackUrl)传递给开发者支付订单具体信息。

接口原型

请求参数

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
}

响应参数

Response Header

参数 是否必选 参数类型 描述
Content-Type 是 String 取值为:application/json; charset=UTF-8

Response Body

参数 是否必选 参数类型 描述
resultCode 是 String 响应码。华为支付侧解析application/json类型响应。 “000000”表示成功,其他值表示失败,如返回值格式不匹配或非“000000”将视为回调失败。
resultDesc 是 String 结果描述。

响应示例

HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
{
  "resultCode": "000000",
  "resultDesc": "Success."
}