领奖通知老接口

一、接口描述

  • 此接口地址由渠道提供,供聚享玩平台调用,用以通知渠道用户在游戏中领奖信息,仅“渠道有用户系统,且渠道自己发奖”的渠道需要对接此接口

二、接口说明

  • 渠道提供用户试玩领奖信息接收地址 interUrl, 用户在领取广告奖励时聚享玩平台通过该接口向渠道推送用户领奖信息。
1:接口地址:interUrl,接口参数及释义如下:
参数 类型 说明 参与签名
mid int 渠道标识,聚享玩提供
resource_id string 渠道用户标识
time int 当前时间戳
prize_info string 用户领奖信息(json格式字符串,json解析后是个二维数组)
sign string 验签:md5(prize_info+mid+time+resource_id+token) (prize_info里数据为unicode编码格式,demo请看“其他需求【三、加密问题】”)
adid int 广告id(奖励为活动时此字段为特定值 0)
device_code string 玩家设备码(安卓 imei,ios idfa)
field int 广告类型(1=棋牌 2=金融 3=微任务 4=H5 5=手游 6=棋牌2 7=手游2;奖励为活动时,此字段为固定值 0)
icon string 游戏 icon(需用 url 解码)
2:接口结构:

interUrl?mid=xxx&resource_id=xxx&time=1606961351&prize_info=xxx&sign=31ed491db35c8bca4905f831f307ace7&adid=xxx&device_code=xxx&field=xxx&icon=xxx

3:接口示例:

http://interface.baoshixingqiu.com/cp/game-box/award?resource_id=88892340&time=1610526528&mid=1383&prize_info=%5B%7B%22name%22%3A%22%5Cu6c34%5Cu679c%5Cu76db%5Cu5bb4%5Cu5927%5Cu72c2%5Cu6b22%5Cu5b89%5Cu535310%5Cu671f%22%2C%22type%22%3A1%2C%22prize_id%22%3A26552621%2C%22prize_time%22%3A1610526526%2C%22task_id%22%3A220697%2C%22title%22%3A%22%5Cu7ea2%5Cu5305%5Cu573a%5Cu7d2f%5Cu8ba1%5Cu8d62%5Cu91d11%5Cu4e07%5Cuff08%5Cu65b0%5Cu7528%5Cu6237%5Cu4e13%5Cu4eab%5Cuff09%22%2C%22ad_id%22%3A17036%2C%22ad_field%22%3A1%2C%22game_id%22%3A15008%2C%22task_prize%22%3A0.7%2C%22task_prize_coin%22%3A0.7%2C%22deal_prize%22%3A%220.2%22%7D%5D&sign=85fce58e7d750db5e8cc8aaf9f382970&adid=17036&gid=15008&field=1&device_code=867657646476476&icon=http%253A%252F%252Ft.juxiangwan.com%252Fupload%252Fadmin%252F20200303%252Ff6ba0dd5177f9e0d03bfd5c7ca93feda.png

4:prize_info说明:
参数 类型 说明
prize_id string 奖励流水标识,唯一(字符串类型)
name string 广告名称 (最长50个字符 = 150个字节)
title string 奖励名称(最长100个字符 = 300个字节)
type int 任务类别 1=试玩 2=竞技 3=充值 4=榜单 7=悬赏 8=活动
task_prize float 用户领取金额(单位元)
deal_prize float 渠道利润(单位元)
task_prize_coin string 领取奖励(渠道方货币单位)如无特殊原因可忽略
ad_id int 广告 id
prize_time int 领奖时间(unix 时间戳)
task_id int 奖励任务任务 (奖励类别为活动时不返回)
game_id int 游戏 id(奖励类别为活动时不返回)
  • 返回数据:渠道成功接收到通知数据后统一返回字符串success (不要包含任何其他信息,若返回其他信息,则视为通知失败)
5:加密说明:用户领奖通知接口
  • 加密不正确(按照我们提供的方式加密,但是加密还是对不上的)原因 :prize_info字段是个josn字符串,浏览器会自动对该字段的值进行转义,所以字符串中有转义字符,导致md5加密后和sign字段匹配不上。
  • 解决办法:将prize_info值去掉转义后再进行加密,PHP语言可以用htmlspecialchars_decode函数处理,其他语言使用各自的方法进行处理php语言demo:
    function demo() {    
      $params = I();        
      $prize_info = htmlspecialchars_decode($params['prize_info']);        
      $sign_string  = $prize_info. $params['mid'] . $params['time'] .   $params['resource_id'] . $key;    
      //注:key为我们商务提供的渠道token值
      if ($params['sign'] === md5($sign_string)) { 
          return true;    
      }    
          return false;
      }
    }
    

三:注意事项

  • prize_id要在数据库层做唯一索引处理,通知失败我们会再次通知,会有多次通知出现。
  • 领奖数据入库成功后再进行发奖操作,不要查询不到就进行发奖操作,因为通知间隔时间短的情况下这种处理方式会导致多发奖励