def youmi_callback_adr(request): sign = request.GET.get('sig') if not sign: return HttpResponseForbidden("miss param 'sign'") keys = ['order', 'app', 'user', 'chn', 'ad', 'points'] vals = [request.GET.get(k, '').encode('utf8').decode('utf8') for k in keys] vals.insert(0, settings.YOUMI_CALLBACK_SECRET_ADR) token = u'||'.join(vals) md5 = hashlib.md5() md5.update(token.encode('utf-8')) md5 = md5.hexdigest() _sign = md5[12:20] if sign != _sign: return HttpResponseForbidden("signature error") youmilog = {} for key in keys: youmilog[key] = request.GET[key] if AppWallLog.log(youmilog, provider='youmi_adr'): return HttpResponse('OK') else: return HttpResponseForbidden('already exist') return HttpResponseForbidden("Signature verification fail")
def youmi_callback_ios(request): sign = request.GET.get('sign') if not sign: return HttpResponseForbidden("miss param 'sign'") keys = request.GET.keys() keys.sort() src = ''.join(['%s=%s' % (k, request.GET.get(k).encode('utf-8').decode('utf-8')) for k in keys if k != 'sign']) src += settings.YOUMI_CALLBACK_SECRET md5 = hashlib.md5() md5.update(src.encode('utf-8')) _sign = md5.hexdigest() if sign != _sign: return HttpResponseForbidden("signature error") youmilog = {} for key in keys: youmilog[key] = request.GET[key] if AppWallLog.log(youmilog, provider='youmi_ios'): return HttpResponse('OK') else: return HttpResponseForbidden('already exist') return HttpResponseForbidden("Signature verification fail")
def waps_callback(request): ip = request.META.get("REMOTE_ADDR", None) if ip not in waps_ips and not request.GET.get('debug', None): return HttpResponseNotAllowed("incorrect IP address") wapslog = {} for key in request.GET.keys(): wapslog[key] = request.GET[key] if AppWallLog.log(wapslog, provider='waps'): return HttpResponse(json.dumps( {"message": u"成功接收", "success": True})) else: return HttpResponse(json.dumps( {"message": u"无效数据", "success": False}))
def dianjoy_callback_adr(request): token = request.GET.get('token') time_stamp = request.GET.get('time_stamp') md5 = hashlib.md5() md5.update(time_stamp + settings.GOLDENCAGE_DIANJOY_ANDROID_SECRET) sign = md5.hexdigest() if sign != token: return HttpResponseForbidden('token error') log = {} for key in request.GET.keys(): log[key] = request.GET[key] if AppWallLog.log(log, provider='dianjoy_adr'): return HttpResponse('200') else: return HttpResponse('OK, But duplicate item')
def qumi_callback(request): sig = request.GET.get('sig') log = {} for key in request.GET.keys(): log[key] = request.GET[key] src = '||'.join([log[key] for key in ('order', 'app', 'ad', 'user', 'device', 'points', 'time')]).encode('utf-8') md5 = hashlib.md5() md5.update(settings.GOLDENCAGE_QUMI_SECRET + '||' + src) _sig = md5.hexdigest()[8:24] if sig != _sig: return HttpResponseForbidden('sig error') if AppWallLog.log(log, provider='qumi'): return HttpResponse('OK') else: return HttpResponse('OK, But Duplicated item')