Huge.php 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190
  1. <?php
  2. namespace app\api\controller\v2;
  3. use app\service\TiktokService;
  4. use think\Controller;
  5. class Huge extends Controller
  6. {
  7. public function api()
  8. {
  9. $log_postdata = '';
  10. try {
  11. $postData = input();
  12. if (!$postData) {
  13. $postData = request()->getInput();
  14. }
  15. foreach ($postData as $k => $v) {
  16. $log_postdata .= $k . ':' . $v . ' ';
  17. }
  18. } catch (\Exception $e) {
  19. $log_postdata = json_encode($postData);
  20. }
  21. log_message('支付订单回调:' . request()->url() . ' ' . $log_postdata, 'log', LOG_PATH . 'huge/');
  22. if (!($postData['imei'] || $postData['oaid'] || $postData['androidid'] || $postData['idfa'])) {
  23. echo 'fail';
  24. exit();
  25. }
  26. if (!$postData['callback']) {
  27. echo 'fail';
  28. exit();
  29. }
  30. $data = [
  31. 'promotionid' => $postData['promotionid'],
  32. 'mid1' => $postData['mid1'],
  33. 'imei' => $postData['imei'],
  34. 'oaid' => $postData['oaid'],
  35. 'androidid' => $postData['androidid'],
  36. 'os' => $postData['os'],
  37. 'callback' => $postData['callback'],
  38. 'idfa' => $postData['idfa'],
  39. 'mac' => $postData['mac'],
  40. 'advertiser_id' => $postData['advertiser_id'],
  41. 'campaign_id' => $postData['campaign_id'],
  42. 'aid' => $postData['aid'],
  43. 'ip' => $postData['ip'],
  44. 'create_time' => date('Y-m-d H:i:s')
  45. ];
  46. model('tiktokAdLog')->insert($data);
  47. echo 'success';
  48. exit();
  49. }
  50. /**
  51. * 应用api回传
  52. */
  53. public function callback()
  54. {
  55. $url = 'https://analytics.oceanengine.com/api/v2/conversion';
  56. $data = [
  57. 'event_type' => 'supply_active_pay', //active 激活 active_register 注册 active_pay 付费 supply_active_pay 付费-新 supply_deep_purchase 多次付费
  58. 'context' => [
  59. 'ad' => [
  60. // 'callback' => 'B.3MjIsg9DNWdyUq6jJ3q4pBz2bNZR8ref0I9G37gl2pJ1NSOQKsMnUYgiHY1GKRuCJXSoNjMkgkkz9dltUy8V0mIkvPaHfffWgHDbx2DULQZ6EMIyT0uxYQWs48VWktrRQ',
  61. 'callback' => 'CIe4mNPDj40DEIfAmNPDj40DGK3BpJKeAyDt0bCTufXrBCgAMAw4wbgCQiIyMDIyMTAxMzE1NTIyNzAxMDEzMjEwNDIyMTAwRjdCMEYySMG4AlAAiAECkAECmAEA',
  62. 'match_type' => 0
  63. ],
  64. 'device' => [
  65. 'platform' => 'ios',
  66. 'idfa' => 'E9E9A9CE-8D00-4972-A574-A80DBA2B1882',
  67. 'imei' => '',
  68. 'oaid' => '',
  69. ],
  70. ],
  71. 'properties' => [
  72. 'pay_amount' => 100, //分
  73. ],
  74. 'timestamp' => $this->getMillisecond(),
  75. ];
  76. $res = $this->curlJson($url, json_encode($data));
  77. echo $res;
  78. exit();
  79. }
  80. /**
  81. * 全渠道回传
  82. */
  83. public function qcallback()
  84. {
  85. $url = 'https://analytics.oceanengine.com/api/v2/valuable';
  86. $data = [
  87. 'event_type' => 'active', //active 激活 active_register 注册 active_pay 付费 supply_active_pay 付费-新
  88. 'event_weight' => 0.561,
  89. 'biz_channel' => 0,
  90. 'context' => [
  91. 'ad' => [
  92. // 'advertiser_id' => '1737597858327629',
  93. 'aid' => '1746369571981323',
  94. // 'campaign_id'=>'1737667807038520'
  95. // 'match_type' => 0
  96. ],
  97. 'device' => [
  98. 'platform' => 'ios',
  99. 'idfa' => 'E9E9A9CE-8D00-4972-A574-A80DBA2B1882',
  100. 'imei' => '',
  101. 'oaid' => '',
  102. ],
  103. 'app' => [
  104. 'package_name' => 'com.rydt.yiyou',
  105. ]
  106. ],
  107. 'properties' => [
  108. 'pay_amount' => 100, //分
  109. ],
  110. 'timestamp' => $this->getMillisecond(),
  111. ];
  112. $res = $this->curlJson($url, json_encode($data));
  113. echo $res;
  114. exit();
  115. }
  116. public function test()
  117. {
  118. $tiktokService = new TiktokService();
  119. $userid = 1223;
  120. $gameid = 175;
  121. $channelId = 5204;
  122. $extend = [
  123. 'Oaid' => '2FC9B499B21749C5B158FBD9F1E4F9751950401e552a68f2cb9043fe520a83c2',
  124. 'Idfa' => '',
  125. 'Androidid' => '',
  126. 'Imei' => '',
  127. 'PayAmount' => 100.00,
  128. 'Ip'=>request()->ip()
  129. ];
  130. $tiktokService->push('tiktok.active_register', $userid, $gameid, $channelId, $extend);
  131. $extend = [
  132. 'Oaid' => '',
  133. 'Idfa' => '',
  134. 'Androidid' => '',
  135. 'Imei' => '',
  136. 'PayAmount' => 100.00,
  137. 'Ip'=>request()->ip()
  138. ];
  139. $res = $tiktokService->push('tiktok.active_pay', $userid, $gameid, $channelId, $extend);
  140. var_dump($res);
  141. $extend = [
  142. 'Oaid' => '',
  143. 'Idfa' => '',
  144. 'Androidid' => '',
  145. 'Imei' => '',
  146. 'PayAmount' => 0,
  147. 'Ip'=>request()->ip()
  148. ];
  149. $res = $tiktokService->push('tiktok.retention_days', $userid, $gameid, $channelId, $extend);
  150. var_dump($res);
  151. die();
  152. }
  153. public function getMillisecond()
  154. {
  155. list($microsecond, $time) = explode(' ', microtime()); //' '中间是一个空格
  156. return (float)sprintf('%.0f', (floatval($microsecond) + floatval($time)) * 1000);
  157. }
  158. public function curlJson($url, $data_string)
  159. {
  160. $ch = curl_init($url);
  161. curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
  162. curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
  163. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  164. curl_setopt($ch, CURLOPT_HTTPHEADER, array(
  165. 'Content-Type: application/json',
  166. 'Content-Length: ' . strlen($data_string))
  167. );
  168. $result = curl_exec($ch);
  169. return $result;
  170. }
  171. }