消息推送

业务场景

  1. 向安卓、iOS客户端发送一条消息

注意事项

  1. 同步发送,需等待结果返回
  2. 支持批量发送,单次最多 500
  3. 时间戳与北京时间差距为 ± 5分钟

接口地址

https://cpapi.iyagame.com/v1/push/send-batch

接口说明

  1. 协议:HTTPS
  2. 方式:POST
  3. ContentType:application/json;charset=utf-8
  4. 请求报文:
字段类型必需参与签名说明
appIdlongSDK的appId
timestamplong毫秒时间戳
messsagesarray消息列表
signstring签名

messages

字段类型必需说明
eventstring事件名,自定义
openIdstringSDK用户唯一标识
titlestring消息标题
bodystring消息内容
imagestring消息图片
customDataobject自定义参数,key:value,可透传进游戏内
  1. 响应报文:
字段类型必需说明
codeint响应状态码
msgstring响应描述
dataobject结果数据

data字段

字段类型必需说明
pushNostring推送批次号
pushIgnoreCountint被忽略的消息数,若通过openId无法匹配到可推送信息,消息将会被忽略
pushSuccCountint推送成功的数量
pushFailCountint推送失败的数量

请求示例

{
    "appId": 10070,
    "timestamp": 191556658759,
    "sign": "b150d9551be444d1cdce0b0dea467da6",
    "messsages": [
        {
            "event": "test",
            "openId": "67",
            "title": "test",
            "body": "测试",
            "image": "https://osg.iyagames.com/tw/assets/logo.png",
            "extendData": {
                "k1": "v1"
            }
        }
    ]
}

响应示例

{
    "code": 0,
    "msg": "Success",
    "data": {
        "pushNo": "220816202014011000001101946",
        "pushIgnoreCount": 0,
        "pushSuccCount": 1,
        "pushFailCount": 0
    },
    "meta": {
        "tid": "108a996c"
    }
}

签名规则

  1. 参数名区分大小写,按 ASCII 码从小到大排序(字典序)
  2. 只有值为 null 和 参数名不参与签名 的键值对,才不参与签名
  3. 使用 URL 键值对的格式,拼接成待签名字符串,签名 key 在最后拼接,再进行MD5计算
  4. 将生成的签名与入参 sign 值作校验,验签忽略大小写

调试示例

import cn.hutool.crypto.SecureUtil;

public class PushBatchExample {

    public static void main(String[] args) {
        Integer appId = 10070;
        Long timestamp = 191556658759L;
        String appKey = "j1u9pbx2jkoo0zso";
        String sign = SecureUtil.md5("appId=" + appId + "&timestamp=" + timestamp + "&key=" + appKey);
        System.out.printf("批量推送签名:%s", sign);
    }
}

状态码

状态码说明
0成功
-1失败,常规性错误
10101查询基础信息失败
10102缺少游戏信息
10103请求参数全部为空
10104缺少签名sign
10105签名不正确
10106timestamp已过期
10201消息推送失败,具体信息见msg
10202消息推送服务请求超时,可重试
10203消息不能超过500条
10204无法匹配到用户推送token,如玩家没更新到支持推送的SDK