全服消息推送

业务场景

  1. 向全服的安卓、iOS客户端发送一条消息
  2. 根据不同的语言,向玩家推送不一样的消息
  3. 未记录语言的玩家,默认发送英语消息
  4. token已经过期的玩家,会推送失败

注意事项

  1. 同步发送,需等待结果返回
  2. 时间戳与北京时间差距为 ± 5分钟

接口地址

https://cpapi.iyagame.com/v1/push/send-to-topic

接口说明

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

messages

字段类型必需说明
languagestring推送指定的语种,语言目录
titlestring消息标题
bodystring消息内容
imagestring消息图片
extendDataobject自定义参数,key:value,可透传进游戏内
  1. 响应报文:
字段类型必需说明
codeint响应状态码
msgstring响应描述
dataobject结果数据

data字段

字段类型必需说明
pushNostring推送批次号

请求示例

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

响应示例

{
    "code": 0,
    "msg": "Success",
    "data": {
        "pushNo": "220816202014011000001101946"
    },
    "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消息推送服务请求超时,可重试

附录

语言ISO-639-1代码
英语en
简体中文zh
繁体中文zh-TW
日语ja
韩语ko
德语de
法语fr
泰语th
越南语vi
土耳其语tr
西班牙语es
俄语ru
葡萄牙语pt
印尼语in
阿拉伯语ar
荷兰语nl
意大利语it
瑞典语sv
丹麦语da