API 回调 (POST 方法)

回调信息 ( JSON 格式):

字段 描述 备注
rsp_code 通知码 “SUCCESS”
rsp_msg 通知讯息 “success”
merchant_id 商户编号
data 加密的回调数据
md5 信息摘要

解密步骤

其中 data 为加密的回调数据,对其解密的步骤如下:

  1. 将回调信息中的 md5 字符串和 OTT Pay 提供的商家 signkey 按顺序拼接成一个字符串。
  2. 对这个字符串进行16位的 md5 计算(用大写方式表示结果),得到解密用的密钥。
  3. 对回调信息中的 data 字符串应用 Base64 解码并使用刚才得到的解密密钥进行标准AES解密(AES工作模式:ECB,密钥长度:128)。

解密后数据为 JSON 格式,内容如下:

字段 描述 备注
finish_time 交易时间 yyyyMMddHHmmss(北京时间)
order_id 交易编号
amount 交易金额
tip 小费
bizpay_order_id 渠道订单编号
remarks 备注
sale_num 商户销售编号
convenience_fee 手续费

解密示例

这是带有交易数据( JSON 数据格式 )的回调消息,如下所示,

{
  "data": "vg8LJmi7ryeVxUTVfPC6N1l5ebL9cgn4MdlyLFEL6eqZQN+XvkvNhZevFmRitDLTUTcAcRnKYs407K3ePY2pslEgZYDoa9x80PBh95s7aqAYCwUlY5j9IUtklLlzqNT0mFPS7Fn5p6cr1EkBRVh82QHueCdkWVoFhvVHVYYrwQqF5cmPO+JNuDOei6goomz1QTfvv7M8zc4TT+r/EwKIDm4eoV9EeTk98gSiUy4+2ThLRrtZOFHqVP7OAjJ318X2EIKoZRA5lp42kdRVmd/mXi8aZpTVEiAT2GK7p3TNXFNXuPLcl6DhEUK9FLMrHcl4",
  "rsp_code": "SUCCESS",
  "rsp_msg": "success",
  "merchant_id": "ON00004652",
  "md5": "5A917182659DE14DCB3022CA6518F34F"
}
步骤-1:将回调信息中的 md5 字符串和 OTT Pay 提供的商家 signkey 按顺序拼接成一个字符串。

md5 字符串:

5A917182659DE14DCB3022CA6518F34F

signkey:

A8B5FE540E38A5A9

拼接后:

5A917182659DE14DCB3022CA6518F34FA8B5FE540E38A5A9
步骤-2:对拼接后的字符串进行 16 位的 md5 计算(用大写方式表示结果),得到解密用的密钥
BFE59D83C221F217
步骤-3: 对回调信息中的 data 字符串应用 Base64 解码并进行 AES 解密,得到:
{
  "amount": "3",
  "bizpay_order_id": "AL5909918566288061",
  "exchange_rate": "5.057030",
  "tip": "1",
  "merchant_id": "ON00004652",
  "order_id": "16795056216014900",
  "finish_time": "2023-03-23 01:21:53",
  "remarks": "可以",
  "sub_openId": "2088032832386722"
}