24好玩

第三方CRM对接总览

高级会员/OEM 可把 24好玩活动嵌入自有触点,并与自有 CRM 双向打通:玩家身份由 CRM 侧签名注入(免二次登录);积分查询/扣减/增加、优惠券奖品发放由平台在玩家中奖时回调 CRM 接口完成;CRM 也可反向调用平台接口(如为指定用户加抽奖次数)。参考实现为印力集团商场 SCRM(57 个商场在线运行)。

集成全景

玩家 ──打开──> CRM APP/公众号/小程序
              │ ①签名进入(带会员ID/手机号)
              ▼
        24好玩活动页(H5, iframe或跳转)
              │ ②玩游戏/抽奖
              ▼
        24好玩平台 ──③发奖回调──> CRM接口(积分/优惠券/奖品)
              ▲
              └──④CRM主动调用(加抽奖次数/名单管理/查配置)──

方向③是对接的主体工作量:CRM 侧需要实现一组接收接口;方向④按需选用。

凭据体系(先分清两张"钥匙")⚠️

平台有两套独立凭据,对接中最易混淆:

凭据 用途 相关签名
应用凭据(app_auth):数字 appid + private_token(密钥) 玩家进入签名、CRM→平台业务接口、平台→CRM 发奖回调 方案 A / B / D
渠道凭据(open_auth)appid + appsecret 商家(创建者)SSO 登录工作台、渠道子账号 方案 C

应用凭据可通过 GET /open/gameBox/getWebUserByGameId?game_id= 按活动查询(返回 app_idapp_secret)。

四套签名速查

所有签名均为 MD5,但取参与拼接规则不同,按接口族选择:

方案 方向/场景 规则要点
A CRM → 平台(open-api,如 addChance、crm24 系列) sign全部参数按 key 升序,仅拼接(无 key、无分隔符),末尾拼 private_token,取 md5
B 玩家进入(appEntry/game_enter 嵌入) 固定字段集(game_id, appid, uid, headimgurl, nickname, timestamp, phone, is_from_app, reg_time, reg_area, is_new, sex, sessionId;token 字段本身不参与拼接)ksort 后拼值;跳过空值但保留字符串 '0';nickname 需 urldecode 一致;timestamp 秒,560 秒窗口
C 商家 SSO(/auth 渠道登录) 固定顺序直拼md5(appid + appsecret + timestamp + uid + name + phone)(不排序);timestamp 秒
D 平台 → CRM 发奖回调(CRM 侧验签用) 参数先过滤空值/0 值,ksort 升序拼(数组字段 JSON 序列化),末尾拼密钥取 md5;timestamp毫秒,建议 ±300 秒窗口;POST JSON body

方案 A 算例:body {game_id:"5", appid:"42", u_id:"OABC", num:"10", sequence_id:"x1", timestamp:"1700000000"},密钥 SEC → 排序后取值拼接 42 5 10 x1 1700000000 OABCsign = md5("42510x11700000000OABCSEC")

方案 D 算例(CRM 侧验签用,由规则推导,最终以沙箱验签为准):平台推送 body(已过滤空值/0 值){appid:"42", game_id:"5", game_name:"周年庆", num:"10", sequence_id:"x1", timestamp:"1700000000000", u_id:"OABC", sign:"…"},密钥 SEC → 除 sign 外按 key 升序取值拼接 42 5 周年庆 10 x1 1700000000000 OABCsign = md5("425周年庆10x11700000000000OABCSEC")。注意 timestamp毫秒;数组类字段以 JSON 序列化后参与拼接。

CRM 侧需要实现什么(方向③)

平台在玩家中奖/消耗积分时 POST JSON 到商家配置的 URL(含 appidsign、毫秒 timestamp),CRM 返回 {code:0, ...} 表示成功:

回调 触发时机 关键入参 成功返回
积分查询 玩家进入/抽奖前 u_id, req_type {code:0, result:{integral, free_times}}
积分扣减 消耗积分抽奖 num, u_id, game_id, sequence_id {code:0}
积分增加 中积分奖 num, u_id, sequence_id(幂等键) {code:0}
优惠券发放 中优惠券奖 coupon_id, u_id, game_id {code:0}
奖品发放(第三方奖品) 中第三方奖 gift_id, u_id, game_id {code:0}

约定:积分不足返回 {code:8100, msg:"积分不足"}(msg 会展示给玩家);必须返回 code 字段,缺失按结构错误处理(积分类直接失败,券/奖品进入人工确认队列);用 sequence_id 做幂等去重;玩家标识字段名为 u_id

超时与可靠性:平台侧单次调用超时 10 秒,仅 HTTP 2xx 的响应体会被解析;失败不承诺自动重试(积分类直接判失败,券/奖品类转人工确认队列人工补发)——所以 CRM 侧必须做到幂等(同一 sequence_id 重复到达只生效一次)且快速返回。回调 URL 建议使用 HTTPS。接口自身的 QPS 限额未公开,以联调与商务约定为准。

平台可供 CRM 调用的接口(方向④)

  • 加抽奖/游玩次数:POST /open/games/addChance(方案 A 签名);
  • 名单管理、按商场查活动列表、查奖品配置等(JWT 鉴权族);
  • 详见高级会员接口逐接口契约。

⚠️ 运营注意:活动结束后请停止定时调用 addChance 等接口(历史上有伙伴的调度器对已结束活动持续空调多年)。

对接步骤(建议顺序)

  1. 商务开通高级会员/OEM,获取渠道凭据;平台侧配置回调 URL 与积分/券/奖品开关;
  2. 从平台获取应用凭据(appid + 密钥);
  3. CRM 实现方向③回调接口(验签方案 D + 幂等 + code 约定);
  4. 实现玩家进入链路(方案 B 签名或 iframe 嵌入,见渠道模式开放接口);
  5. 沙箱环境联调(平台提供模拟门户 + 假 CRM,可回看每次请求的验签结果,联系客服开通访问);
  6. 生产灰度:先单活动小流量验证发奖链路,再放量。

参考实现:印力集团(SCPG)

印力商场 SCRM 是本契约的最大在网实现:57 个商场账号(1 账号=1 商场=1 plazaCode),积分单位"星贝",全量走 积分查询/扣减/增加 + 优惠券 + 第三方奖品回调,玩家从商场 APP 签名进入。多商场共享活动时,发奖按玩家所属商场路由。

相关页面

高级会员接口 · 渠道模式开放接口 · 功能清单 · 行业经验

最后核对:2026-07-03