getInput(); } foreach ($postData as $k => $v) { $log_postdata .= $k . ':' . $v . ' '; } } catch (\Exception $e) { $log_postdata = json_encode($postData); } log_message('支付订单回调:' . request()->url() . ' ' . $log_postdata, 'log', LOG_PATH . 'huge/'); if (!($postData['imei'] || $postData['oaid'] || $postData['androidid'] || $postData['idfa'])) { echo 'fail'; exit(); } if (!$postData['callback']) { echo 'fail'; exit(); } $data = [ 'promotionid' => $postData['promotionid'], 'mid1' => $postData['mid1'], 'imei' => $postData['imei'], 'oaid' => $postData['oaid'], 'androidid' => $postData['androidid'], 'os' => $postData['os'], 'callback' => $postData['callback'], 'idfa' => $postData['idfa'], 'mac' => $postData['mac'], 'advertiser_id' => $postData['advertiser_id'], 'campaign_id' => $postData['campaign_id'], 'aid' => $postData['aid'], 'ip' => $postData['ip'], 'create_time' => date('Y-m-d H:i:s') ]; model('tiktokAdLog')->insert($data); echo 'success'; exit(); } /** * 应用api回传 */ public function callback() { $url = 'https://analytics.oceanengine.com/api/v2/conversion'; $data = [ 'event_type' => 'supply_active_pay', //active 激活 active_register 注册 active_pay 付费 supply_active_pay 付费-新 supply_deep_purchase 多次付费 'context' => [ 'ad' => [ // 'callback' => 'B.3MjIsg9DNWdyUq6jJ3q4pBz2bNZR8ref0I9G37gl2pJ1NSOQKsMnUYgiHY1GKRuCJXSoNjMkgkkz9dltUy8V0mIkvPaHfffWgHDbx2DULQZ6EMIyT0uxYQWs48VWktrRQ', 'callback' => 'CIe4mNPDj40DEIfAmNPDj40DGK3BpJKeAyDt0bCTufXrBCgAMAw4wbgCQiIyMDIyMTAxMzE1NTIyNzAxMDEzMjEwNDIyMTAwRjdCMEYySMG4AlAAiAECkAECmAEA', 'match_type' => 0 ], 'device' => [ 'platform' => 'ios', 'idfa' => 'E9E9A9CE-8D00-4972-A574-A80DBA2B1882', 'imei' => '', 'oaid' => '', ], ], 'properties' => [ 'pay_amount' => 100, //分 ], 'timestamp' => $this->getMillisecond(), ]; $res = $this->curlJson($url, json_encode($data)); echo $res; exit(); } /** * 全渠道回传 */ public function qcallback() { $url = 'https://analytics.oceanengine.com/api/v2/valuable'; $data = [ 'event_type' => 'active', //active 激活 active_register 注册 active_pay 付费 supply_active_pay 付费-新 'event_weight' => 0.561, 'biz_channel' => 0, 'context' => [ 'ad' => [ // 'advertiser_id' => '1737597858327629', 'aid' => '1746369571981323', // 'campaign_id'=>'1737667807038520' // 'match_type' => 0 ], 'device' => [ 'platform' => 'ios', 'idfa' => 'E9E9A9CE-8D00-4972-A574-A80DBA2B1882', 'imei' => '', 'oaid' => '', ], 'app' => [ 'package_name' => 'com.rydt.yiyou', ] ], 'properties' => [ 'pay_amount' => 100, //分 ], 'timestamp' => $this->getMillisecond(), ]; $res = $this->curlJson($url, json_encode($data)); echo $res; exit(); } public function test() { $tiktokService = new TiktokService(); $userid = 1223; $gameid = 175; $channelId = 5204; $extend = [ 'Oaid' => '2FC9B499B21749C5B158FBD9F1E4F9751950401e552a68f2cb9043fe520a83c2', 'Idfa' => '', 'Androidid' => '', 'Imei' => '', 'PayAmount' => 100.00, 'Ip'=>request()->ip() ]; $tiktokService->push('tiktok.active_register', $userid, $gameid, $channelId, $extend); $extend = [ 'Oaid' => '', 'Idfa' => '', 'Androidid' => '', 'Imei' => '', 'PayAmount' => 100.00, 'Ip'=>request()->ip() ]; $res = $tiktokService->push('tiktok.active_pay', $userid, $gameid, $channelId, $extend); var_dump($res); $extend = [ 'Oaid' => '', 'Idfa' => '', 'Androidid' => '', 'Imei' => '', 'PayAmount' => 0, 'Ip'=>request()->ip() ]; $res = $tiktokService->push('tiktok.retention_days', $userid, $gameid, $channelId, $extend); var_dump($res); die(); } public function getMillisecond() { list($microsecond, $time) = explode(' ', microtime()); //' '中间是一个空格 return (float)sprintf('%.0f', (floatval($microsecond) + floatval($time)) * 1000); } public function curlJson($url, $data_string) { $ch = curl_init($url); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Content-Type: application/json', 'Content-Length: ' . strlen($data_string)) ); $result = curl_exec($ch); return $result; } }