激励广告服务端校验
服务端验证说明
当选择需要服务端验证时,开发者需要在开发者平台上填写回调 URL。服务端回调是指在用户看完视频达到奖励条件时,服务端会向开发者服务端发送一个验证请求,同时客户端会给出 onReward 回调,开发者根据回调进行奖励发放,因为奖励回调和服务端验证请求是同时发送的,开发者后台收到验证请求可能会有延迟或网络原因上的失败,开发者需要平衡用户体验与奖励验证。
配置回调地址
- 打开应用管理,编辑应用
- 填写回调地址,保存应用(密钥为签名用到的secret)
服务端回调说明
服务器会以 GET 方式请求第三方服务的回调链接,并拼接以下参数回传:
pid=%s&appid=%s&transid=%s&userid=%s&extrainfo=%s&is_brush_after=%d&sign=%s
字段定义 | 字段名称 | 字段类型 | 备注 |
---|---|---|---|
pid | 广告位ID | string | 广告位ID |
appid | APP ID | string | 媒体ID |
transid | 交易id | string | 完成观看的唯一标识 |
userid | 用户id | string | 调用sdk透传,应用对用户的唯一标识,sdk中onZjAdReward回调返回的参数 |
extrainfo | 其他信息 | string | 调用SDK传入并透传,如无需要则为空 |
is_brush_after | 接口版本 | int | 1->新版本 |
sign | 签名 | string | 签名 |
签名生成方式:
sign = sha256('transid' + 'secret')
- transid: 交易id
- secret: 开发者平台输入服务端URL时获取到的密钥
示例代码
import hashlib
tradeId = "aaabbbcccddd"
secret = "ZZZXXXCCCVVV"
hash_object = hashlib.sha256((tradeId + secret).encode('utf-8'))
hash_hex = hash_object.hexdigest()
# 输出"SIGN: f8d7943dad6d37a13a7e02392b5f6e37439509eb05f76d060904463dd96df5a2"
print(f"SIGN: {hash_hex}")
返回约定
返回 json 数据,字段如下:
字段定义 | 字段名称 | 字段类型 | 备注 |
---|---|---|---|
isValid | 校验结果 | BOOL | 判定结果,是否发放奖励 |
回调URL格式示例如下:
{
"isValid": true
}