# 事件上报
# 1、接口信息
- 接口名称:支付宝小游戏事件上报
- 请求方式:
POST - 路由:
https://xxxxxxx/api/MiNiGameCommon/AlipayEventSubmit/{dhappId}/{channelId}/{mainChannel}/{secondChannel} - 固定渠道号:
3548
示例:
POST /api/MiNiGameCommon/AlipayEventSubmit/1001/3548/101424/101425
# 2、功能说明
服务端将业务事件上报到支付宝开放平台接口:
alipay.user.gamecenter.event.submit
# 3、请求参数
请求体为 JSON。
| 参数类型 | 字段 | 值类型 | 必填 | 说明 |
|---|---|---|---|---|
| Body | accountId | long | 是 | 平台账号 ID,用于查询 openid/alipay_user_id |
| Body | timestamp | long | 是 | Unix 时间戳(秒) |
| Body | sign | string | 是 | 签名(小写 MD5) |
| Body | eventId | string | 是 | 事件 ID,例如 recharge_complete |
| Body | eventFinishDate | string | 是 | 事件完成时间,格式建议:yyyy-MM-dd HH:mm:ss |
| Body | eventFinishChannel | string | 是 | 事件完成渠道,取值逻辑:获取小程序启动参数的channel字段,未获取到请默认传other 启动参数 |
| Body | outBizNo | string | 是 | 外部业务流水号(建议唯一) |
| Body | propertyMap | array | 否 | 事件属性列表 |
propertyMap 子项结构:
| 字段 | 值类型 | 必填 | 说明 |
|---|---|---|---|
| key | string | 是 | 属性名 |
| value | string | 是 | 属性值 |
# 4、签名规则
# 4.1 签名原文
按如下顺序拼接字符串(无分隔换行):
accountId={accountId}&eventId={eventId}&eventFinishDate={eventFinishDate}&eventFinishChannel={eventFinishChannel}&outBizNo={outBizNo}×tamp={timestamp}{appkey}
# 4.2 签名算法
sign = MD5(signString).ToLower()
# 4.3 时间窗校验
timestamp允许范围:当前时间前后 2 小时内
# 5、请求示例(recharge_complete)
{
"accountId": 123456789,
"timestamp": 1751270400,
"eventId": "recharge_complete",
"eventFinishDate": "2026-05-25 15:30:45",
"eventFinishChannel": "game_server",
"outBizNo": "order_20260525_000001",
"propertyMap": [
{ "key": "orderId", "value": "order_20260525_000001" },
{ "key": "amount", "value": "68.00" },
{ "key": "currency", "value": "CNY" },
{ "key": "productId", "value": "com.game.gem.680" }
],
"sign": "请按签名规则计算"
}
# 6、返回结构
统一返回 BaseResponse<string>。
| 字段 | 说明 |
|---|---|
| resultCode | 结果码,10000 表示成功 |
| resultInfo | 结果信息 |
| rid | 请求唯一标识 |
| datum | 支付宝原始响应 response.Body |
成功示例(示意):
{
"resultCode": 10000,
"resultInfo": "success",
"rid": "xxxx",
"datum": "{\"alipay_user_gamecenter_event_submit_response\":{\"code\":\"10000\",\"msg\":\"Success\"},\"sign\":\"...\"}"
}
# 7、错误场景
| 场景 | 返回 |
|---|---|
| channelId 非 3548 | FAIL_VALICATION_WXMiNiGame |
| 缺少必填参数 | ERROR_PARAMS_3 |
| timestamp 超时 | FAIL_SIGNATURE |
| sign 不正确 | FAIL_SIGNATURE |
| appid 不存在或维护 | ERROR |
| Redis 渠道参数缺失 | ERROR |
| openid 未获取到 | ERROR |
| 支付宝接口调用失败 | ERROR |