Python版本Google广告admob服务端回调验证SSV

  • Post author:
  • Post category:python


Google的激励广告的 Google 回调的服务器端验证 ( SSV ) server side verifiy。Python版本的基于第三方包 ecdsa 开箱即用。

Google公钥的地址:


https://www.gstatic.com/admob/reward/verifier-keys.json

注意:

  1. AdMob 密钥服务器提供的公钥会不定期轮换。为确保可以继续按预期验证 SSV 回调,请勿使公钥的缓存时间超过 24 小时。
  2. Google 预计您的服务器会针对 SSV 回调返回 HTTP 200 OK 成功状态响应代码。如果您的服务器无法访问或未提供预期的响应,Google 将重新尝试发送 SSV 回调,每隔 1 秒发送最多 5 次。
  3. 用回调参数中key_id 取对应公钥,进行签名验证。

安装ecdsa包:

$ pip install ecdsa

完整代码如下,

python3

版本:

# codin=utf8
"""
google admob server side verify

pip install ecdsa

success
"""
import sys
import json
import urllib.parse
import urllib.request
import base64
import hashlib

from ecdsa.keys import VerifyingKey, BadSignatureError
from ecdsa.util import sigdecode_der

# AdMob密钥服务器
VERIFIER_KEYS_URL = 'https://www.gstatic.com/admob/reward/verifier-keys.json'
# request 的模拟浏览器信息
USER_AGENT = '''
Mozilla/5.0 (Windows NT 10.0; WOW64



版权声明:本文为yisangwu原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。