From 611c42f7b8fa21cf80460645176f70e56c90d467 Mon Sep 17 00:00:00 2001 From: filesite Date: Fri, 25 Apr 2025 06:34:07 +0800 Subject: [PATCH] add api for ad postback --- .../tajian/controller/FrontapiController.php | 56 ++++++++++++------- themes/tajian/views/my/index.php | 2 + www/js/tajian.js | 28 +++++++--- 3 files changed, 58 insertions(+), 28 deletions(-) diff --git a/themes/tajian/controller/FrontapiController.php b/themes/tajian/controller/FrontapiController.php index c86541f..f3ccf39 100644 --- a/themes/tajian/controller/FrontapiController.php +++ b/themes/tajian/controller/FrontapiController.php @@ -790,16 +790,6 @@ eof; $shareUrl = "/{$newUser['username']}/"; $msg = "注册完成,开始收藏你喜欢的视频吧,正在为你跳转到专属网址..."; $code = 1; - - //广告跟踪回调 - try { - $adTrackPostbackRes = $this->adTrackPostBack(); - if (!empty($adTrackPostbackRes) && !empty($adTrackPostbackRes['status']) && $adTrackPostbackRes['status'] != 200) { - $this->logError( "[Register] Ad tracker postback result status {$adTrackPostbackRes['status']}, response: " . json_encode($adTrackPostbackRes['result']) ); - } - }catch(Exception $e) { - $this->logError("[Register] Ad tracker postback failed: " . $e->getMessage()); - } }else { $err = '注册失败,请稍后再试'; } @@ -861,16 +851,6 @@ eof; $msg = "登录成功,开始收藏你喜欢的视频吧"; $code = 1; - - //广告跟踪回调 - try { - $adTrackPostbackRes = $this->adTrackPostBack(); - if (!empty($adTrackPostbackRes) && !empty($adTrackPostbackRes['status']) && $adTrackPostbackRes['status'] != 200) { - $this->logError( "[Login] Ad tracker postback result status {$adTrackPostbackRes['status']}, response: " . json_encode($adTrackPostbackRes['result']) ); - } - }catch(Exception $e) { - $this->logError("[Login] Ad tracker postback failed: " . $e->getMessage()); - } }else { $err = '登录失败,请稍后重试'; } @@ -1558,4 +1538,40 @@ eof; } + //广告跟踪回调,每天只回传1次 + public function actionAdpostback() { + //返回给视图的变量 + $code = 1; + $msg = 'OK'; + $err = ''; + + try { + if(session_status() !== PHP_SESSION_ACTIVE) { + session_start(); + } + $today = date('Ymd'); + if (!empty($_SESSION['ad_postback']) && $_SESSION['ad_postback'] == $today) { + $msg = 'Done today'; + }else { + $adTrackPostbackRes = $this->adTrackPostBack(); + if (!empty($adTrackPostbackRes) && !empty($adTrackPostbackRes['status']) && $adTrackPostbackRes['status'] != 200) { + $this->logError( "Ad tracker postback result status {$adTrackPostbackRes['status']}, response: " . json_encode($adTrackPostbackRes['result']) ); + $code = 0; + $err = "[Error] Ad tracker postback result status {$adTrackPostbackRes['status']}"; + $msg = ''; + }else if (!empty($adTrackPostbackRes) && !empty($adTrackPostbackRes['status']) && $adTrackPostbackRes['status'] == 200) { + $_SESSION['ad_postback'] = $today; + } + } + }catch(Exception $e) { + $this->logError("Ad tracker postback failed: " . $e->getMessage()); + $code = 0; + $err = "[Exception] Ad tracker postback failed"; + $msg = ''; + } + + return $this->renderJson(compact('code', 'msg', 'err')); + } + + } diff --git a/themes/tajian/views/my/index.php b/themes/tajian/views/my/index.php index e57f008..f279702 100644 --- a/themes/tajian/views/my/index.php +++ b/themes/tajian/views/my/index.php @@ -32,3 +32,5 @@ if (!empty(FSC::$app['config']['multipleUserUriParse']) && !empty(FSC::$app['use + +
\ No newline at end of file diff --git a/www/js/tajian.js b/www/js/tajian.js index 34ab805..2e4b06c 100644 --- a/www/js/tajian.js +++ b/www/js/tajian.js @@ -17,6 +17,8 @@ var taJian = { shareFav2Friend: '/frontapi/sharedir', //共享收藏夹给朋友 deleteSharedFav: '/frontapi/delsharedir', //取消共享收藏夹给朋友 + adPostback: '/frontapi/adpostback', //广告跟踪回传 + sendSmsCode: '/frontapi/sendsmscode', //发送短信验证码 register: '/frontapi/createuser', //注册 login: '/frontapi/loginuser' //登入 @@ -24,9 +26,9 @@ var taJian = { }; var publicAjax = function(apiUrl, method, datas, callback, fail) { - let self = this; + var self = this; - let Options = { + var Options = { url: apiUrl, method: method, data: datas, @@ -42,9 +44,7 @@ var publicAjax = function(apiUrl, method, datas, callback, fail) { $.ajax(Options).done(function(data) { callback(data); }).fail(function (jqXHR, textStatus, errorThrown) { - fail(jqXHR, textStatus, errorThrown); - }); }; @@ -138,17 +138,18 @@ if ($('#add_video_form').get(0)) { return false; } - let bt = $(this), btLoading = bt.children('.bt_class_JS'), btText = bt.children('.bt_text_JS'); + var bt = $(this), btLoading = bt.children('.bt_class_JS'), btText = bt.children('.bt_text_JS'); btLoading.removeClass('elementNone'); bt.prop('disabled', true); btText.text('提交中...'); - let datas = { + var datas = { 'content': inputList[0].value, 'tag': selectedTag } - let apiUrl = taJian.debug ? taJian.domain + taJian.apis.addVideos : taJian.apis.addVideos; + //var apiUrl = taJian.debug ? taJian.domain + taJian.apis.addVideos : taJian.apis.addVideos; + var apiUrl = taJian.apis.addVideos; publicAjax(apiUrl, 'POST', datas, function (data) { bt.prop('disabled', false); btText.text('提交'); @@ -159,7 +160,6 @@ if ($('#add_video_form').get(0)) { }else { $(inputList[0]).val(''); } - //alert(data.msg || data.err); } else { alert(data.err); } @@ -732,4 +732,16 @@ if ($('#share_dir_form').get(0)) { $('.my_share_dirs .btn-del').click(handle_delete_share); } +// 广告跟踪回传 +if ($('.ad_postback_JS').get(0)) { + var datas = {}; + publicAjax(taJian.apis.adPostback, 'POST', datas, function (data) { + if (data.code != 1) { + console.error('Ad postback error', data.err); + } + }, function (jqXHR, textStatus, errorThrown) { + console.error('Ad postback exception', errorThrown); + }); +} + })();