ApkController.php 95 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850
  1. <?php
  2. namespace App\Http\Controllers\Api;
  3. use App\Facade\TableName;
  4. use App\Game\GlobalUserInfo;
  5. use App\Http\Controllers\Controller;
  6. use App\Http\helper\HttpCurl;
  7. use App\IpLocation;
  8. use App\Models\AccountsInfo;
  9. use App\Models\PrivateMail;
  10. use App\Models\RecordScoreInfo;
  11. use App\Services\ApkService;
  12. use App\Services\IpCheck;
  13. use App\Services\StoredProcedure;
  14. use App\Services\UploadOfflineConversion;
  15. use App\Services\UserAgent;
  16. use App\Util;
  17. use App\Utility\SetNXLock;
  18. use Illuminate\Http\Request;
  19. use Illuminate\Support\Facades\DB;
  20. use Illuminate\Support\Facades\Hash;
  21. use Illuminate\Support\Facades\Redis;
  22. use Log;
  23. class ApkController extends Controller
  24. {
  25. public function log (Request $request){
  26. Util::WriteLog("apkview",$request->all());
  27. }
  28. public function WebLogin(Request $request){
  29. $username=$request->get("username")??"";
  30. $password=$request->get("password")??"";
  31. if(empty($username)||empty($password)){
  32. return apiReturnFail();
  33. }
  34. if (empty($username)) return apiReturnFail(["web.login.account_empty", 'Por favor insira o nome de usuário!']);
  35. if (empty($password)) {
  36. return apiReturnFail(['web.login.password_empty', 'Por favor insira a senha!'], '', 302);
  37. }
  38. $RegisterLocation = $request->country ?? env('COUNTRY_CODE','55');
  39. // dd($username,is_numeric($username));
  40. if (strstr($username, '@')) {
  41. $user = GlobalUserInfo::getGameUserInfo("Email", $username);
  42. } else if(is_numeric($username)){
  43. $user = GlobalUserInfo::getGameUserInfo("Phone", $RegisterLocation . $username);
  44. }else{
  45. $user = GlobalUserInfo::getGameUserInfo("Accounts", $username);
  46. }
  47. if ($user) {
  48. if (Hash::check($password, $user->LogonPass)) {
  49. $accountInfo=AccountsInfo::find($user->UserID);
  50. return apiReturnSuc($accountInfo, ['login.success', 'Login bem-sucedido, bem-vindo de volta!']);//->withCookie($this->setLoginCookie($user['sign']));
  51. } else {
  52. return apiReturnFail(['web.login.notfound', 'Erro de entrada, tente novamente!'], '', 2);
  53. }
  54. } else {
  55. return apiReturnFail(['web.login.notfound', 'Sua conta não foi encontrada, registre-se ou tente novamente!']);
  56. }
  57. }
  58. //通过redis将最近一笔订单推送到这里
  59. public function check_user_pay(Request $request){
  60. $UserID=$request->get("UserID")??0;
  61. $data=[];
  62. if(Redis::exists("user_pay_order_".$UserID)){
  63. $data=Redis::get("user_pay_order_".$UserID);
  64. Redis::del("user_pay_order_".$UserID);
  65. $data=json_decode($data,true);
  66. }
  67. if(Redis::exists("user_pay_first_".$UserID)){
  68. Redis::del("user_pay_first_".$UserID);
  69. if(count($data))$data[0]['first']=1;
  70. }
  71. if(!empty($data)){
  72. $package=$request->package??"";
  73. $adjust_server= DB::table('QPPlatformDB.dbo.ChannelPackageName')
  74. ->where('PackageName',$package)
  75. ->value('AdjustPayConfig');
  76. if(!empty($adjust_server)){
  77. $adjust_server=json_decode($adjust_server,true);
  78. foreach ($data as &$v){
  79. $v['adjust_server']=$adjust_server;
  80. }
  81. }
  82. }
  83. // Redis::set("user_pay_first_".$UserID,1);
  84. if($UserID==10073863){
  85. Redis::set("user_pay_order_".$UserID,'[{"regtime":1755052911,"isd0":true,"first":1,"golds":20,"udid":"10073863","order_sn":"BR81355603656859210073863","adjust_server":{"token":"wgh5","payOk":"wgh5_empty","PaySum":"wgh5_recharge","PayCountD0":"wgh5_firstrecharge","PayCount":"wgh5_firstrecharge"}}]');
  86. }
  87. Util::WriteLog("apkpay",$data);
  88. return apiReturnSuc($data);
  89. }
  90. public function loadWebInfo(Request $request)
  91. {
  92. $devinfo=json_decode($request->get('info'),true)??[];
  93. if(empty($devinfo))return apiReturnFail("no webinfo");
  94. $package=$request->get('PackageName')??"";
  95. $Channel=DB::table('QPPlatformDB.dbo.ChannelPackageName')
  96. ->where('PackageName',$package)
  97. ->value('Channel');
  98. $ip=IpLocation::getRealIp();;
  99. $key = "webinfo_{$Channel}_$ip";
  100. if(Redis::exists($key)){
  101. $datas=json_decode(Redis::get($key),true);
  102. Util::WriteLog("webload",compact('ip','devinfo','datas'));
  103. foreach ($datas as $k=>$v){
  104. if($v['ua']==$devinfo['ua']&&$v['ch']==$devinfo['ch']&&$v['tz']==$devinfo['tz']&&$v['l']==$devinfo['l']){
  105. array_splice($datas,$k,1);
  106. if(count($datas)) {
  107. Redis::set($key, json_encode($datas));
  108. Redis::expire($key, 7200);
  109. }
  110. return apiReturnSuc($v);
  111. }
  112. }
  113. }
  114. $recents=self::getRecentsNew($Channel);
  115. foreach ($recents as $k=>$v){
  116. if($v['ua']==$devinfo['ua']&&$v['ch']==$devinfo['ch']&&$v['tz']==$devinfo['tz']&&$v['l']==$devinfo['l']){
  117. array_splice($recents,$k,1);
  118. if(count($recents)) {
  119. Redis::set("recent_webs_$Channel", json_encode($recents));
  120. }
  121. return apiReturnSuc($v);
  122. }
  123. }
  124. return apiReturnFail("no");
  125. }
  126. public function saveWebInfo(Request $request){
  127. ///{
  128. // "acc": "4536f3897deedf4b40536ce09d597476",
  129. // "info": {
  130. // ua: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36',
  131. // s: [ 2560, 1440, 30 ],
  132. // tz: 'Asia/Shanghai',
  133. // l: 'zh-CN',
  134. // ch: '2781461326'
  135. //}
  136. // "PackageName": "com.ouro777.test",
  137. // "v": "0",
  138. // "cv": "1.0.31",
  139. // "UserID": "5681071",
  140. // "sign": "871e41042e9317e257a93234e4c05fd7"
  141. //}
  142. Util::WriteLog("webSave",$request->all());
  143. $account=$request->get('acc')??"";
  144. $devinfo=json_decode($request->get('info'),true)??[];
  145. if(empty($devinfo))return $request->all();
  146. $ip=IpLocation::getRealIp();;
  147. $package=$request->get('PackageName')??"";
  148. $Channel=DB::table('QPPlatformDB.dbo.ChannelPackageName')
  149. ->where('PackageName',$package)
  150. ->value('Channel');
  151. $UserID=$request->get('UserID')??"";
  152. $devinfo['UserID']=$UserID;
  153. $devinfo['Account']=$account;
  154. $key = "webinfo_{$Channel}_$ip";
  155. $datas = [];
  156. if (Redis::exists($key)) {
  157. $datas = json_decode(Redis::get($key), true);
  158. //防止重复压入
  159. foreach ($datas as $v) {
  160. if ($devinfo['ua'] == $v['ua'] && $devinfo['ch'] == $v['ch']) {
  161. return apiReturnSuc(1);
  162. }
  163. }
  164. }
  165. array_unshift($datas, $devinfo);
  166. Redis::set($key, json_encode($datas));
  167. Redis::expire($key, 7200);
  168. //压入最近记录
  169. self::addRecentsNew($devinfo, $Channel);
  170. return $request->all();
  171. }
  172. public static function addRecentsNew($data, $Channel)
  173. {
  174. $recents = self::getRecentsNew($Channel);
  175. array_push($recents, $data);
  176. if (count($recents) > 50) {
  177. array_shift($recents);
  178. }
  179. Redis::set("recent_webs_$Channel", json_encode($recents));
  180. }
  181. public static function getRecentsNew($Channel)
  182. {
  183. $recents = [];
  184. if (Redis::exists("recent_webs_$Channel")) {
  185. $recents = json_decode(Redis::get("recent_webs_$Channel"), true);
  186. }
  187. if (!isset($recents) || empty($recents)) $recents = [];
  188. return $recents;
  189. }
  190. public function save_data(Request $request){
  191. $url_sign=$request->get('us')??"tf";
  192. ///gg or fb
  193. $type=$request->get('type')??"fb";
  194. $data=$request->get('data')??'';
  195. $cookie=$data;
  196. $ip=IpLocation::getRealIp();
  197. $agent=$_SERVER['HTTP_USER_AGENT'];
  198. $time=time();
  199. $data=compact('ip','agent','cookie','type','url_sign','time');
  200. $key="apksave_$ip";
  201. $datas=[];
  202. if(Redis::exists($key)){
  203. $datas=json_decode(Redis::get($key),true);
  204. //防止重复压入
  205. foreach ($datas as $v){
  206. if($data['agent']==$v['agent']){
  207. return apiReturnSuc(1);
  208. }
  209. }
  210. }
  211. array_push($datas,$data);
  212. Redis::set($key,json_encode($datas));
  213. Redis::expire($key,7200);
  214. //压入最近记录
  215. $this->addRecents($data);
  216. Util::WriteLog("apksave",$data);
  217. return apiReturnSuc(1);
  218. }
  219. public function load_data(Request $request){
  220. $ip=IpLocation::getRealIp();
  221. $agent=$_SERVER['HTTP_USER_AGENT'];
  222. $alen=strlen($agent);
  223. $key="apksave_$ip";
  224. $datas=[];
  225. if(Redis::exists($key)){
  226. $datas=json_decode(Redis::get($key),true);
  227. Util::WriteLog("apkload",compact('ip','agent','datas'));
  228. //规则1,只有一个数据,直接归1
  229. if(count($datas)==1){
  230. Redis::del($key);
  231. if(isset($datas[0]['cookie']))return apiReturnSuc($datas[0]['cookie']);
  232. }
  233. foreach ($datas as $k=>$v){
  234. if($v['agent']==$agent||substr($v['agent'],0,$alen)==$agent||$ip=='203.198.16.93'){
  235. array_splice($datas,$k,1);
  236. Redis::set($key,json_encode($datas));
  237. Redis::expire($key,7200);
  238. if(isset($v['cookie']))return apiReturnSuc($v['cookie']);
  239. }
  240. }
  241. }
  242. $recents=$this->getRecents();
  243. foreach ($recents as $k=>$v){
  244. if($v['agent']==$agent||substr($v['agent'],0,$alen)==$agent||$ip==$v['ip']){
  245. if(isset($v['cookie']))return apiReturnSuc($v['cookie']);
  246. }
  247. }
  248. // Util::WriteLog("apkfail",compact('ip','agent','datas','recents'));
  249. return apiReturnFail("");
  250. }
  251. private function addRecents($data){
  252. $recents=$this->getRecents();
  253. array_push($recents,$data);
  254. if(count($recents)>50){
  255. array_shift($recents);
  256. }
  257. Redis::set("recent_apks",json_encode($recents));
  258. }
  259. private function getRecents(){
  260. $recents=[];
  261. if(Redis::exists("recent_apks")){
  262. $recents=json_decode(Redis::get("recent_apks"),true);
  263. }
  264. if(!isset($recents)||empty($recents))$recents=[];
  265. return $recents;
  266. }
  267. public function save_data_new(Request $request){
  268. $url_sign=$request->get('us')??"tf";
  269. ///gg or fb
  270. $type=$request->get('type')??"fb";
  271. $cookie=$request->get('data')??'';
  272. $params=$request->get('params')??'';
  273. $UserID=$request->get('UserID')??"";
  274. $ip=IpLocation::getRealIp();
  275. $origin = $_SERVER['HTTP_ORIGIN'] ??$_SERVER['HTTP_REFERER']?? '*';
  276. $agent=$_SERVER['HTTP_USER_AGENT'];
  277. $time=time();
  278. $locale=$request->get('locale')??'';
  279. $data=compact('ip','agent','cookie','type','url_sign','time','params','locale','origin');
  280. if(isset($UserID)&&!empty($UserID)) {
  281. //直接代userid直接存
  282. ApkService::saveCookie($UserID,$data);
  283. }else {
  284. $key = "apktmp_{$url_sign}_$ip";
  285. $datas = [];
  286. if (Redis::exists($key) && $ip != "114.92.178.175") {
  287. $datas = json_decode(Redis::get($key), true);
  288. //防止重复压入
  289. foreach ($datas as $v) {
  290. if ($data['agent'] == $v['agent'] && $data['type'] == $v['type']) {
  291. return apiReturnSuc(1);
  292. }
  293. }
  294. }
  295. array_unshift($datas, $data);
  296. Redis::set($key, json_encode($datas));
  297. Redis::expire($key, 7200);
  298. //压入最近记录
  299. ApkService::addRecentsNew($data, $url_sign);
  300. //写入快手
  301. if($type=='kw'){
  302. ApkService::sendToKwai(json_decode($cookie,true),ApkService::KWAI_EVENT['EVENT_DOWNLOAD']);
  303. }
  304. }
  305. Util::WriteLog("apksave",$data);
  306. return apiReturnSuc(1);
  307. }
  308. public function load_data_new(Request $request){
  309. $url_sign=$request->get('us')??"tf";
  310. $UserID=$request->get('UserID')??"";
  311. $udid=$request->get('udid')??"";
  312. $ip=IpLocation::getRealIp();
  313. $agent=$_SERVER['HTTP_USER_AGENT'];
  314. $alen=strlen($agent);
  315. $package=$request->get('package')??"";
  316. //如果存在100以上的自建key,使用appkey作为url_sign
  317. if(!empty($package)){
  318. $AppKey=DB::table('QPPlatformDB.dbo.ChannelPackageName')
  319. ->where('PackageName',$package)
  320. // ->where('Sort',100)
  321. ->value('AppKey');
  322. if(isset($AppKey)&&!empty($AppKey)){
  323. $url_sign=$AppKey;
  324. }
  325. }
  326. $key="apktmp_{$url_sign}_$ip";
  327. if(isset($UserID)&&!empty($UserID)) {
  328. // if(isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])){
  329. // if(Redis::exists("Ls_$UserID")) {
  330. // Redis::set("Ls_$UserID",1);
  331. // $lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 20);
  332. // DB::table(TableName::QPAccountsDB() . "AccountLocale")->updateOrInsert(['UserID' => $UserID], ['UserID' => $UserID, 'Locale' => $lang]);
  333. // }
  334. // }
  335. $cookieExist = ApkService::loadCookie($UserID);
  336. if ($cookieExist&&is_array($cookieExist)) {
  337. $data = [];
  338. $data['cookie'] = $cookieExist['Cookie']??"";
  339. $data['params'] = $cookieExist['Params']??"";
  340. $data['url_sign'] = $cookieExist['UrlSign']??"";
  341. $data['type'] = $cookieExist['Platform']??"";
  342. $data['agent'] = $cookieExist['ClickUA']??"";
  343. return apiReturnSuc($data);
  344. }
  345. }
  346. $datas=[];
  347. if(Redis::exists($key)){
  348. $datas=json_decode(Redis::get($key),true);
  349. Util::WriteLog("apkload",compact('ip','agent','datas'));
  350. //规则1,只有一个数据,直接归1
  351. if(count($datas)==1){
  352. Redis::del($key);
  353. ApkService::saveCookie($UserID,$datas[0]);
  354. return apiReturnSuc($datas[0]);
  355. }
  356. foreach ($datas as $k=>$v){
  357. if($v['agent']==$agent||substr($v['agent'],0,$alen)==$agent){
  358. array_splice($datas,$k,1);
  359. Redis::set($key,json_encode($datas));
  360. Redis::expire($key,7200);
  361. ApkService::saveCookie($UserID,$v);
  362. return apiReturnSuc($v);
  363. }
  364. }
  365. }
  366. $recents=ApkService::getRecentsNew($url_sign);
  367. foreach ($recents as $v){
  368. if($v['agent']==$agent||substr($v['agent'],0,$alen)==$agent||$ip==$v['ip']){
  369. ApkService::saveCookie($UserID,$v);
  370. return apiReturnSuc($v);
  371. }
  372. }
  373. Util::WriteLog("apkfail",compact('ip','agent','datas','url_sign','recents','key'));
  374. return apiReturnFail("");
  375. }
  376. public function test(){
  377. $UserID=3147569;
  378. $arr=ApkService::loadCookie($UserID);
  379. if(isset($arr)&&$arr['Platform']=='gg') {
  380. $cookie = json_decode($arr['Cookie'], true);
  381. UploadOfflineConversion::reg($UserID, $cookie);
  382. }
  383. //kuai测试
  384. // ApkService::sendToKwaiTest(['pixel_id'=>'545692252418097195','click_id'=>'GaxsDtjUMo1v0B6OZgyG8A=='],ApkService::KWAI_EVENT["EVENT_PURCHASE"],['currency'=>'USD','value'=>2]);
  385. // ApkService::sendToKwaiTest(['pixel_id'=>'545692252418097195','click_id'=>'GaxsDtjUMo1v0B6OZgyG8A=='],ApkService::KWAI_EVENT["EVENT_ADD_TO_CART"]);
  386. // ApkService::sendToKwaiTest(['pixel_id'=>'545692252418097195','click_id'=>'GaxsDtjUMo1v0B6OZgyG8A=='],ApkService::KWAI_EVENT["EVENT_COMPLETE_REGISTRATION"]);
  387. // ApkService::sendToKwaiTest(['pixel_id'=>'545692252418097195','click_id'=>'GaxsDtjUMo1v0B6OZgyG8A=='],ApkService::KWAI_EVENT["EVENT_CONTENT_VIEW"]);
  388. //
  389. // ApkService::sendToKwai(['pixel_id'=>'545692252418097195','click_id'=>'GaxsDtjUMo1v0B6OZgyG8A=='],ApkService::KWAI_EVENT["EVENT_PURCHASE"],['currency'=>'USD','value'=>2]);
  390. // ApkService::sendToKwai(['pixel_id'=>'545692252418097195','click_id'=>'GaxsDtjUMo1v0B6OZgyG8A=='],ApkService::KWAI_EVENT["EVENT_ADD_TO_CART"]);
  391. // ApkService::sendToKwai(['pixel_id'=>'545692252418097195','click_id'=>'GaxsDtjUMo1v0B6OZgyG8A=='],ApkService::KWAI_EVENT["EVENT_COMPLETE_REGISTRATION"]);
  392. // ApkService::sendToKwai(['pixel_id'=>'545692252418097195','click_id'=>'GaxsDtjUMo1v0B6OZgyG8A=='],ApkService::KWAI_EVENT["EVENT_CONTENT_VIEW"]);
  393. //
  394. //
  395. // ApkService::sendToKwaiTest(['pixel_id'=>'545692410115539004','click_id'=>'Bf2P9znfBEa6vLlGghzDqg=='],ApkService::KWAI_EVENT["EVENT_PURCHASE"],['currency'=>'USD','value'=>2]);
  396. // ApkService::sendToKwaiTest(['pixel_id'=>'545692410115539004','click_id'=>'Bf2P9znfBEa6vLlGghzDqg=='],ApkService::KWAI_EVENT["EVENT_ADD_TO_CART"]);
  397. // ApkService::sendToKwaiTest(['pixel_id'=>'545692410115539004','click_id'=>'Bf2P9znfBEa6vLlGghzDqg=='],ApkService::KWAI_EVENT["EVENT_COMPLETE_REGISTRATION"]);
  398. // ApkService::sendToKwaiTest(['pixel_id'=>'545692410115539004','click_id'=>'Bf2P9znfBEa6vLlGghzDqg=='],ApkService::KWAI_EVENT["EVENT_CONTENT_VIEW"]);
  399. //
  400. // ApkService::sendToKwai(['pixel_id'=>'545692410115539004','click_id'=>'Bf2P9znfBEa6vLlGghzDqg=='],ApkService::KWAI_EVENT["EVENT_PURCHASE"],['currency'=>'USD','value'=>2]);
  401. // ApkService::sendToKwai(['pixel_id'=>'545692410115539004','click_id'=>'Bf2P9znfBEa6vLlGghzDqg=='],ApkService::KWAI_EVENT["EVENT_ADD_TO_CART"]);
  402. // ApkService::sendToKwai(['pixel_id'=>'545692410115539004','click_id'=>'Bf2P9znfBEa6vLlGghzDqg=='],ApkService::KWAI_EVENT["EVENT_COMPLETE_REGISTRATION"]);
  403. // ApkService::sendToKwai(['pixel_id'=>'545692410115539004','click_id'=>'Bf2P9znfBEa6vLlGghzDqg=='],ApkService::KWAI_EVENT["EVENT_CONTENT_VIEW"]);
  404. // $agent1=UserAgent::parse_user_agent('Mozilla/5.0 (Linux; Android 13; SM-A135M Build/TP1A.220624.014; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/117.0.0.0 Mobile Safari/537.36');
  405. // $agent2=UserAgent::parse_user_agent('Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/117.0.0.0 Mobile Safari/537.36');
  406. // echo "<PRE>";
  407. // print_r($agent1);
  408. // print_r($agent2);
  409. // $users = DB::connection('write')->table(TableName::QPAccountsDB() . 'AccountsInfo')
  410. // ->whereIn('GameID', [15426031,13494895,12242600,14629608])->select("UserID","Channel","RegisterDate")->get()->toArray();
  411. //
  412. // foreach ($users as $user){
  413. // $item=['regtime'=>strtotime($user->RegisterDate),'golds' => 10];
  414. // $data = [$item];
  415. // if (Redis::exists("user_pay_order_".$user->UserID)) {
  416. // $olddatas = json_decode(Redis::get("user_pay_order_".$user->UserID), true);
  417. // array_push($olddatas, $item);
  418. // $data = $olddatas;
  419. // }
  420. // //记录redisevent,24小时
  421. // Redis::set("user_pay_order_".$user->UserID, json_encode($data));
  422. // }
  423. }
  424. public function check_action(Request $request){
  425. $udid=$request->get("udid")??0;
  426. $act=$request->get("act")??"install";
  427. $key="apk_check_".$act."_".$udid;
  428. $status=0;
  429. if(!Redis::exists($key)){
  430. Redis::set($key,1);
  431. $status=1;
  432. }
  433. $data=compact('status','act');
  434. Util::WriteLog("apkact",$data);
  435. return apiReturnSuc($data);
  436. }
  437. public function check_user_pay2(Request $request){
  438. $UserID=$request->get("UserID")??0;
  439. $data=[];
  440. if(Redis::exists("user_pay_order_".$UserID)){
  441. $data=Redis::get("user_pay_order_".$UserID);
  442. // Redis::del("user_pay_order_".$UserID);
  443. $data=json_decode($data,true);
  444. }
  445. if(Redis::exists("user_pay_first_".$UserID)){
  446. // Redis::del("user_pay_first_".$UserID);
  447. if(count($data))$data[0]['first']=1;
  448. }
  449. Redis::set("user_pay_first_".$UserID,1);
  450. Redis::set("user_pay_order_".$UserID,json_encode([['golds'=>10],['golds'=>5]]));
  451. Util::WriteLog("apkpay",$data);
  452. return apiReturnSuc($data);
  453. }
  454. ////////////////////////////////
  455. /// GOOGLE ADS
  456. /// ///////////////////////////
  457. private function uploadToGoogle(){
  458. }
  459. /**
  460. * 用户换包下载激励记录
  461. * @param $package
  462. * @param Request $request
  463. * @return false|void
  464. */
  465. public function download($package,Request $request){
  466. $package=$package??121;
  467. $cdn="http://cdn.moeda777.com/hot/download/";
  468. $play="https://play.google.com/store/apps/details?id=";
  469. $configs=Util::getPackConfigs();
  470. $packInfos=[];
  471. foreach ($configs as $pack){
  472. $packInfos[$pack['bundleid']]=$pack;
  473. $packInfos[$pack['channel']]=$pack;
  474. }
  475. if(!isset($packInfos[$package])){
  476. header('Location: https://pro.ouro777.com', true, 302);
  477. exit();
  478. }
  479. $package=$packInfos[$package];
  480. $userAgent = $_SERVER['HTTP_USER_AGENT'];
  481. $platform="pc";
  482. if(strpos($userAgent,"iPhone") || strpos($userAgent,"iPad") || strpos($userAgent,"iPod")){
  483. header('Location: '.$package['ios'], true, 302);
  484. $platform="ios";
  485. }else if(strpos($userAgent,"Android")){
  486. if($package['online']){
  487. header('Location: '.$play.$package['bundleid'], true, 302);
  488. }else{
  489. header('Location: '.$cdn.$package['name'].'.apk', true, 302);
  490. }
  491. $platform="android";
  492. } else{
  493. if($package['online']){
  494. header('Location: '.$play.$package['bundleid'], true, 302);
  495. }else{
  496. header('Location: '.$cdn.$package['name'].'.apk', true, 302);
  497. }
  498. }
  499. try {
  500. $ip = IpLocation::getRealIp();
  501. $insert = ['IP' => $ip, 'Platform' => $platform, 'Channel' => $package['channel']];
  502. $explode = explode('.', $ip);
  503. if (count($explode) < 4) {
  504. return false;
  505. }
  506. $valueN = $explode[0] * 1000000 + $explode[1] * 1000 + (int)$explode[2];
  507. $result = DB::table(TableName::QPAccountsDB() . 'CheckIP')->where('IP', $valueN)->get()->toArray();
  508. if (isset($result) && isset($result['isp'])) {
  509. $insert['Isp'] = $result['isp'];
  510. $insert['Country'] = $result['Country'];
  511. } else {
  512. $ipcheck = new IpCheck();
  513. $result = $ipcheck->getIpLocation($ip);
  514. if (isset($result) && isset($result['isp'])) {
  515. $insert['Isp'] = $result['isp'];
  516. $insert['Country'] = $result['country_code2'];
  517. } else {
  518. $result = $ipcheck->iplogger($ip);
  519. $result = $result['result'];
  520. if (isset($result) && isset($result['isp'])) {
  521. $insert['Isp'] = $result['isp'];
  522. $insert['Country'] = $result['country'];
  523. }
  524. }
  525. }
  526. DB::table("QPRecordDB.dbo.ClientShareRecords")->insert($insert);
  527. }catch (\Exception $exception){
  528. Util::WriteLog("share_error",$exception->getMessage());
  529. }
  530. exit();
  531. }
  532. public function checkDownloadNotice(Request $request){
  533. $PackageName = (string)$request->get('PackageName');
  534. $UserID = $request->get('UserID');
  535. $isH5=intval($request->get('h5')??0);
  536. // $v = (int)$request->get('v');
  537. // if(isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])&&isset($UserID)){
  538. // if(Redis::exists("Ls_$UserID")) {
  539. // Redis::set("Ls_$UserID",1);
  540. // $lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 20);
  541. // DB::table(TableName::QPAccountsDB() . "AccountLocale")->updateOrInsert(['UserID' => $UserID], ['UserID' => $UserID, 'Locale' => $lang]);
  542. // }
  543. // }
  544. $downUrl='';
  545. $icon='';
  546. // $downUrl='https://cdn.moeda777.com/hot/download/slots_ouro_pro.apk';
  547. $needDown=0;
  548. $showNoti=0;
  549. $fromPackage=$PackageName;
  550. $toPackage='';
  551. $Channel=0;
  552. $bonusPackage=false;
  553. $checkDownPack=[
  554. 'com.ouro777KKK.ares02'=>['Channel'=>359,'show'=>1,'down'=>1,'url'=>'https://game.hallowin.top','to'=>'com.halloween.appwin2','icon'=>'https://cdn.moeda777.com/hot/pack/com.halloween.appwin/download_icon.png'],
  555. ];
  556. $checkDownPackH5=[
  557. 'com.ouro777.ares03'=>['Channel'=>128,'show'=>1,'down'=>1,'url'=>'https://bb3.bet/?apk=https://cdn.ouro777.com/glo/brazil/download/ares/03/SlotsOuro.apk','to'=>'com.ouro777.ares03','icon'=>'https://cdn.moeda777.com/client/orgbr/img/icon-96.png'],
  558. 'com.ouro777.ares04'=>['Channel'=>129,'show'=>1,'down'=>1,'url'=>'https://bb3.bet/?apk=https://cdn.ouro777.com/glo/brazil/download/ares/04/SlotsOuro.apk','to'=>'com.ouro777.ares04','icon'=>'https://cdn.moeda777.com/client/orgbr/img/icon-96.png'],
  559. ];
  560. $cv = $request->get('cv')??0;
  561. if(isset($request->cv)){
  562. $cvstr=explode('.',$request->cv);
  563. $cv=array_pop($cvstr);
  564. }
  565. //探测充值策略包
  566. $openForPurchase=[];
  567. $fromPacks=array_keys($checkDownPack);
  568. $fromPacksH5=array_keys($checkDownPackH5);
  569. /* $toPacks=array_map(function ($arr){
  570. return $arr['to'];
  571. },$checkDownPack);*/
  572. $toPacks=[];
  573. $toPacksToFrom=[];
  574. $checkDownPack=$checkDownPack+$checkDownPackH5;
  575. foreach ($checkDownPack as $key=>$config){
  576. $toPacks[]=$config['to'];
  577. $config['from']=$key;
  578. $toPacksToFrom[$config['to']]=$config;
  579. }
  580. //默认
  581. $Recharge=-1;
  582. //探测充值并且在记录内
  583. if(in_array($PackageName,$openForPurchase)&&in_array($PackageName,$fromPacks+$fromPacksH5)) {
  584. $Recharge = DB::connection('write')->table('QPRecordDB.dbo.RecordUserTotalStatistics')
  585. ->where('UserID', $UserID)
  586. ->select('Recharge')
  587. ->first();
  588. $Recharge=$Recharge?intval($Recharge->Recharge):0;
  589. }
  590. if($request->ip()=='116.86.210.235'){
  591. Util::WriteLog('topacks',compact('PackageName','fromPacks','fromPacksH5','Recharge','isH5'));
  592. }
  593. if($Recharge!=0&&(in_array($PackageName,$fromPacks)||$isH5&&in_array($PackageName,$fromPacksH5))){
  594. Util::WriteLog('frompacks',$request->all());
  595. $config=$checkDownPack[$PackageName];
  596. $toPackage=$config['to'];
  597. $showNoti=$config['show'];
  598. $needDown=$config['down'];
  599. $Channel=$config['Channel'];
  600. $downUrl=$config['url'];
  601. $icon=$config['icon']??'';
  602. }else if(in_array($PackageName,$toPacks)&&$isH5==0){
  603. Util::WriteLog('topacks',$request->all());
  604. $config=$toPacksToFrom[$PackageName];
  605. $fromPackage = $config['from'];
  606. $bonusPackage = true;
  607. $Channel = $config['Channel'];
  608. $downUrl = $config['url'];
  609. }else{
  610. return apiReturnSuc(['needDown'=>$needDown,'url'=>$downUrl,'showNoti'=>$showNoti]);
  611. }
  612. $redisKey = 'tcd_'.$PackageName.'_'.$UserID;
  613. if(Redis::exists($redisKey)){
  614. $state=Redis::get($redisKey);
  615. if($state==2){
  616. $showNoti=0;
  617. }
  618. $result=['needDown'=>$needDown,'url'=>$downUrl,'showNoti'=>$showNoti];
  619. if(isset($icon)&&strlen($icon)){
  620. $result['icon']=$icon;
  621. }
  622. if($state==2)return apiReturnSuc($result);
  623. }else {
  624. //每天过期
  625. Redis::set($redisKey, 1);
  626. Redis::expire($redisKey, 3600*1);
  627. }
  628. //查表
  629. $record=DB::table("QPRecordDB.dbo.AccountsChangeApk")->where('UserID', $UserID)->first();
  630. if($record){
  631. $record=(array)$record;
  632. Util::WriteLog('topacks',compact('bonusPackage','record','PackageName','UserID','downUrl','needDown','showNoti','Channel'));
  633. }else if($needDown){
  634. $record=['UserID'=>$UserID,
  635. 'FromPackage'=>$fromPackage,
  636. 'ToPackage'=>$toPackage,
  637. 'State'=>0,
  638. 'Channel'=>$Channel,
  639. ];
  640. DB::table("QPRecordDB.dbo.AccountsChangeApk")->insert($record);
  641. }
  642. //开奖励的
  643. if($bonusPackage&&$record&&$record['State']<2){
  644. //这是需要更新表
  645. DB::table("QPRecordDB.dbo.AccountsChangeApk")->where('UserID', $UserID)->update(['InstallTime'=>date('Y-m-d H:i:s'),'State'=>2]);
  646. RecordScoreInfo::addScore($UserID, (10 * 100), 42); #赠送彩金
  647. $amount = 10;
  648. $TitleString = 'Bem-vindo à versão segura do jogo';
  649. $TextString = "Sua recompensa de R$10 foi distribuída";
  650. PrivateMail::sendMail(2, $UserID, $TitleString, $TextString, '', '', 0, 3);
  651. $firstScore = DB::table('QPTreasureDB.dbo.GameScoreInfo')->where('UserID', $UserID)->value('Score');
  652. $Score = $amount*100 + $firstScore;
  653. DB::table('QPTreasureDB.dbo.GameScoreInfo')->where('UserID', $UserID)->increment('Score',$amount*100);
  654. // 服务器通知
  655. $url = config('transfer.stock')['url'] . 'notifyPay';
  656. // 2826383
  657. $data = [
  658. 'userid' => $UserID,
  659. 'getScore' => $amount,
  660. 'score' => $Score
  661. ];
  662. (new HttpCurl())->service($url, $data);
  663. Redis::set('tcd_'.$fromPackage.'_'.$UserID,2);
  664. }else if(isset($record)&&$record['State']==2){
  665. $needDown=0;
  666. $showNoti=0;
  667. Redis::set($redisKey, 2);
  668. }
  669. $result=['needDown'=>$needDown,'url'=>$downUrl,'showNoti'=>$showNoti];
  670. if(isset($icon)&&strlen($icon)){
  671. $result['icon']=$icon;
  672. }
  673. return apiReturnSuc($result);
  674. }
  675. public function clickDownloadNotice(Request $request){
  676. $PackageName = (string)$request->get('PackageName');
  677. $UserID = $request->get('UserID');
  678. //查表
  679. if(DB::table("QPRecordDB.dbo.AccountsChangeApk")->where('UserID', $UserID)->exists()){
  680. DB::table("QPRecordDB.dbo.AccountsChangeApk")->where('UserID', $UserID)->update(['ClickTimes'=>DB::raw('ClickTimes+1'),'State'=>1]);
  681. }
  682. return apiReturnSuc([]);
  683. }
  684. public function appconfig(Request $request)
  685. {
  686. $PackageName=$request->pack??"default";
  687. $locale=$request->l??"pt-BR";
  688. $config=[
  689. "default"=>['adj_token'=>"",'adj_config'=>'','config'=>'','ani_name'=>'','black'=>false],
  690. "com.ouro777.naclube"=>['adj_token'=>"",'adj_config'=>'','config'=>'','ani_name'=>'clube','black'=>false],
  691. "com.ouro777.ncandy"=>['adj_token'=>"",'adj_config'=>'','config'=>'','ani_name'=>'candy','black'=>false],
  692. "com.ouro777.tt001"=>['adj_token'=>"499wni62xfk0",'adj_config'=>'{"1":{"id":1,"key":"enter-Hall Time0-3s","name":"101从登陆进大厅成功时长1-3s","value":"mz8s29","desc":"玩家从登陆界面点登陆按钮后转圈到正式进大厅的时长"},"2":{"id":2,"key":"enter-Hall Time3-5s","name":"102从登陆进大厅成功时长3-5s","value":"fuxnb9","desc":"玩家从登陆界面点登陆按钮后转圈到正式进大厅的时长"},"3":{"id":3,"key":"enter-Hall Time5-10s","name":"103从登陆进大厅成功时长5-10s","value":"umdtsq","desc":"玩家从登陆界面点登陆按钮后转圈到正式进大厅的时长"},"4":{"id":4,"key":"enter-Hall Time10-15s","name":"104从登陆进大厅成功时长10-15s","value":"5we1zn","desc":"玩家从登陆界面点登陆按钮后转圈到正式进大厅的时长"},"5":{"id":5,"key":"enter-Hall Time15s+","name":"105从登陆进大厅成功时长15s以上","value":"mred8o","desc":"玩家从登陆界面点登陆按钮后转圈到正式进大厅的时长"},"6":{"id":6,"key":"open-FirstRecharge","name":"10打开首充礼包界面的人数","value":"7ffte4","desc":"打开首充礼包界面的人数"},"7":{"id":7,"key":"open-game registration success","name":"11进B面且成功注册","value":"aenr4s","desc":"首先得进B面,然后成功注册(包括快速注册和手机注册,都算)"},"8":{"id":8,"key":"open-Shop player information","name":"12打开商城填写个人信息界面","value":"ak31ka","desc":"商城那个用户名,手机,邮箱的填写界面,这个界面被打开,即统计"},"9":{"id":9,"key":"open-Shop player information save","name":"13商城个人信息保存成功","value":"3pigxw","desc":"商城那个用户名,手机,邮箱的填写界面,这个界面玩家填写信息后,保存成功,即统计"},"10":{"id":10,"key":"open-game B side","name":"14进B面成功的用户","value":"8fi4q3","desc":"返回能进B面的消息的用户"},"11":{"id":11,"key":"open-New Shop payment page","name":"15新支付的支付页面成功弹出","value":"rrifvd","desc":"新的支付页,完全展示出来,那个带二维码和链接地址的页面"},"12":{"id":12,"key":"open-New Shop payment page invalid","name":"16新支付拉起生成中页面失败","value":"e2qp7h","desc":"新的支付,点[proxima Etapa]跳转后会有个转圈生成的界面,这个界面没有成功跳转的人数"},"13":{"id":13,"key":"open-New Shop payment page copy","name":"17新支付的支付页面点复制按钮","value":"m6bjum","desc":"新的支付页,完全展示出来,那个带二维码和链接地址的页面,里的复制链接按钮,点击就算"},"14":{"id":14,"key":"login Success To Hall","name":"18登陆成功,准备进入大厅","value":"bd3bck","desc":"登陆成功返回,准备加载大厅场景"},"15":{"id":15,"key":"no Update","name":"19无需热更","value":"47wwzm","desc":"版本已是最新,无需热更"},"16":{"id":16,"key":"open-APP","name":"1打开应用人数","value":"tnnnzr","desc":"打开APP的人数"},"17":{"id":17,"key":"enter-Game Time0-3s","name":"201进游戏过程加载时长1-3s","value":"najwx2","desc":"从大厅次级页面进游戏时那个转圈的等待时间"},"18":{"id":18,"key":"enter-Game Time3-5s","name":"202进游戏过程加载时长3-5s","value":"4dh7fm","desc":"从大厅次级页面进游戏时那个转圈的等待时间"},"19":{"id":19,"key":"enter-Game Time5-10s","name":"203进游戏过程加载时长5-10s","value":"wk5j5c","desc":"从大厅次级页面进游戏时那个转圈的等待时间"},"20":{"id":20,"key":"enter-Game Time10-15s","name":"204进游戏过程加载时长10-15s","value":"39tv48","desc":"从大厅次级页面进游戏时那个转圈的等待时间"},"21":{"id":21,"key":"enter-Game Time15s+","name":"205进游戏过程加载时长15s以上","value":"7rvlnk","desc":"从大厅次级页面进游戏时那个转圈的等待时间"},"22":{"id":22,"key":"start Hotupdate","name":"20开始热更","value":"fhi6kd","desc":"检测到有新版本,准备热更"},"23":{"id":23,"key":"hotUpdate Success","name":"21热更完成","value":"ec4hyz","desc":"更新完成,准备重新启动"},"24":{"id":24,"key":"open-game A side","name":"22进A面","value":"kx8ii1","desc":"玩家进A面显示"},"25":{"id":25,"key":"login Success To Game","name":"23A面登陆成功,进游戏","value":"oim78t","desc":"玩家A面下登陆成功,需要直接进入游戏"},"26":{"id":26,"key":"quick Login YouKe","name":"24游客快速登录","value":"pqq2ip","desc":"启动游戏,直接游客登录进游戏"},"27":{"id":27,"key":"quick Login Phone","name":"25手机快速登录","value":"onizp6","desc":"启动偶像,直接手机账号登录进游戏"},"28":{"id":28,"key":"youkeLogin Need Register","name":"26游客登录失败,需要注册","value":"vcqokh","desc":"游客快速登录失败,需要注册"},"29":{"id":29,"key":"loginSuccess","name":"27登陆成功","value":"s4kog5","desc":"账号登陆成功"},"30":{"id":30,"key":"loginFailure","name":"28登录失败","value":"rbkwja","desc":"账号登陆失败"},"31":{"id":31,"key":"login ShowPhone","name":"29登录界面展示手机","value":"wipd8y","desc":"设置界面切换账号到登录"},"32":{"id":32,"key":"open-Loning...","name":"2加载过程人数","value":"lb2rqw","desc":"打开APP开始加载的人数(请求服务器成功)"},"33":{"id":33,"key":"enter-Shop Time0-3s","name":"301进商城过程加载时长0-3s","value":"sf3i9u","desc":"玩家打开商城的等待时间"},"34":{"id":34,"key":"enter-Shop Time3-5s","name":"302进商城过程加载时长3-5s","value":"3hdczt","desc":"玩家打开商城的等待时间"},"35":{"id":35,"key":"enter-Shop Time5-10s","name":"303进商城过程加载时长5-10s","value":"x7plvs","desc":"玩家打开商城的等待时间"},"36":{"id":36,"key":"enter-Shop Time10-15s","name":"304进商城过程加载时长10-15s","value":"342xmg","desc":"玩家打开商城的等待时间(基本判定为打开失败)"},"37":{"id":37,"key":"enter-Shop Time15s+","name":"305进商城过程加载时长15s以上","value":"5zto05","desc":"玩家打开商城的等待时间(基本判定为打开失败)"},"38":{"id":38,"key":"open-New Shop time1-5s","name":"306新支付拉起加载时长1-5s","value":"iytpr8","desc":"新的支付,点[proxima Etapa]跳转后会有个转圈生成的界面,这个界面到成功弹出充值页面消耗的时长"},"39":{"id":39,"key":"open-New Shop time5s+","name":"307新支付拉起加载时长5s以上","value":"hpiksl","desc":"新的支付,点[proxima Etapa]跳转后会有个转圈生成的界面,这个界面到成功弹出充值页面消耗的时长"},"40":{"id":40,"key":"open-New Shop invalid tips01","name":"308新支付拉起失败报错01","value":"e263ao","desc":"提示文本:“充值页面跳转失败,请稍后再试”这个错误(超时,异常,都会是这个)"},"41":{"id":41,"key":"open-New Shop invalid tips02","name":"309新支付拉起失败报错02","value":"vx3249","desc":"提示文本:“您的订单生成失败,请检查您填写的信息是否正确”"},"42":{"id":42,"key":"login ShowRegister","name":"30登录界面展示注册","value":"adn8vn","desc":"设置界面切换账号到登录"},"43":{"id":43,"key":"click-set logout","name":"31设置界面切换账号","value":"cbla0r","desc":"设置界面点击切换账号按钮"},"44":{"id":44,"key":"login Timeout30s","name":"32登录时间超过30秒","value":"m001o0","desc":"快速登录开始计时,30秒后还未登录成功或失败"},"45":{"id":45,"key":"quick Login A Side","name":"33A面快速登录","value":"ny6o05","desc":"玩家进A面,游客快速登录"},"46":{"id":46,"key":"registration success A side","name":"34A面注册成功","value":"8evbhr","desc":"玩家在A面,游客注册成功"},"47":{"id":47,"key":"registration failure","name":"35注册失败","value":"nusyuu","desc":"玩家注册失败"},"48":{"id":48,"key":"open server to login","name":"36连接成功准备登录","value":"6htu0c","desc":"服务器连接成功,准备发送登录数据"},"49":{"id":49,"key":"server already to login","name":"37服务已连接,直接登录","value":"8d2zow","desc":"服务器已连接,只需发送登录"},"50":{"id":50,"key":"open-New Shop not components","name":"38新支付没有QRCODE组件","value":"cuvqau","desc":"字面意思"},"51":{"id":51,"key":"VIP button","name":"39VIP功能点击入口次数","value":"d2f1d2","desc":"大厅的VIP功能入口点击的人数"},"52":{"id":52,"key":"open-game lobby","name":"3进B面大厅成功人数","value":"z3jf8c","desc":"成功进B面进到大厅的人数"},"53":{"id":53,"key":"VIP button-Melhorar","name":"40VIP功能点击升级按钮","value":"8h0f5m","desc":"VIP功能界面里面点击Melhorar的那个跳转商城按钮"},"54":{"id":54,"key":"Guide payment button","name":"41引导付费礼包的入口按钮点击","value":"uygj5v","desc":"只要是引导付费礼包的入口,用户主动去点击次数"},"55":{"id":55,"key":"Guide payment UI popup","name":"42引导付费礼包界面弹出次数","value":"yrti1h","desc":"引导付费礼包界面弹出成功,就记录一次,但是记录的是次数"},"56":{"id":56,"key":"Guide payment package one","name":"43引导付费礼包档位1购买按钮","value":"1ovma0","desc":"用户没有付费回到大厅主动弹的那个礼包,第一个充值档位的购买按钮点击"},"57":{"id":57,"key":"Guide payment package two","name":"44引导付费礼包档位2购买按钮","value":"s5t8qc","desc":"用户没有付费回到大厅主动弹的那个礼包,第二个充值档位的购买按钮点击"},"58":{"id":58,"key":"Guide payment close","name":"45引导付费礼包关闭按钮点击","value":"zd2kgz","desc":"用户没有付费回到大厅主动弹的那个礼包,关闭按钮点击"},"59":{"id":59,"key":"Lembrete de recarga open","name":"46游戏内没钱时的统一弹窗弹出次数","value":"u1liou","desc":"游戏里玩家没钱弹出的那个可跳商城的弹框,弹出次数"},"60":{"id":60,"key":"Lembrete de recarga go to mall","name":"47游戏内没钱时的统一弹窗点击跳转充值","value":"3hxt3i","desc":"游戏里玩家没钱弹出的那个可跳商城的弹框,里面的跳转商城按钮点击次数"},"61":{"id":61,"key":"Lembrete de recarga close","name":"48游戏内没钱时的统一弹窗点击关闭按钮","value":"zbcnw6","desc":"游戏里玩家没钱弹出的那个可跳商城的弹框,里面的关闭按钮点击次数"},"62":{"id":62,"key":"withdraw to recharge","name":"49提现弹出提醒充值弹框","value":"hzwbyc","desc":"玩家提现,点提取按钮时弹出提示充值的那个弹框,弹出次数"},"63":{"id":63,"key":"open-Shop","name":"4商城页面被打开","value":"72rskl","desc":"打开商城页面的人数"},"64":{"id":64,"key":"withdraw to recharge go to mall","name":"50提现弹出提醒充值弹框后点击跳转充值","value":"hcb5im","desc":"玩家提现,点提取按钮时弹出提示充值的那个弹框,里面的跳转商城按钮点击次数"},"65":{"id":65,"key":"withdraw to recharge close","name":"51提现弹出提醒充值弹框后点击关闭按钮","value":"rh7p3p","desc":"玩家提现,点提取按钮时弹出提示充值的那个弹框,里面的关闭按钮点击次数"},"66":{"id":66,"key":"click-ShopItem","name":"5点击商城内任意充值档位按钮人数","value":"cwimt0","desc":"点商城内任意充值档位按钮人数"},"67":{"id":67,"key":"click-GoBuy","name":"6点击[proxima Etapa]跳转按钮成功人数","value":"2eqws2","desc":"点击商城选择渠道界面那个黄色的próxima Etapa按钮,且成功跳转人数"},"68":{"id":68,"key":"open-CashOut","name":"7打开提现页面的人数","value":"heuicd","desc":"打开提现页面的人数,注:多个页面可跳转到提现,这里是打开这个页面,而不是点击提现按钮"},"69":{"id":69,"key":"open-Agent","name":"8打开推广赚金页面人数","value":"r4vwwz","desc":"打开推广赚金页面的人数"},"70":{"id":70,"key":"open-VIPWeek","name":"9打开周卡界面的人数","value":"kkg542","desc":"打开周卡界面的人数"},"71":{"id":71,"key":"RocketLoad-pre-unpack","name":"01前置开始","value":"cej5we","desc":"01前置开始"},"72":{"id":72,"key":"RocketLoad-pre-finish","name":"02前置完成","value":"a276ub","desc":"02前置完成"},"73":{"id":73,"key":"RocketLoad-normal-startdown","name":"03下载init开始","value":"xi87ny","desc":"03下载init开始"},"74":{"id":74,"key":"RocketLoad-normal-downfinish","name":"04下载init完成","value":"rly5vr","desc":"04下载init完成"},"75":{"id":75,"key":"RocketLoad-normal-unpack","name":"05init解开","value":"po2r5s","desc":"05下载init解开"},"76":{"id":76,"key":"RocketLoad-normal-finish","name":"06init完成","value":"qntv7c","desc":"06下载init完成"}}','config'=>'','ani_name'=>'play','black'=>false],
  693. "com.fantasy.fruit"=>['adj_token'=>"srgiv5i6kphc",'adj_config'=>'{"1":{"id":1,"key":"enter-Hall Time0-3s","name":"101从登陆进大厅成功时长1-3s","value":"qf67bx","desc":"玩家从登陆界面点登陆按钮后转圈到正式进大厅的时长"},"2":{"id":2,"key":"enter-Hall Time3-5s","name":"102从登陆进大厅成功时长3-5s","value":"88tdmx","desc":"玩家从登陆界面点登陆按钮后转圈到正式进大厅的时长"},"3":{"id":3,"key":"enter-Hall Time5-10s","name":"103从登陆进大厅成功时长5-10s","value":"g36jgl","desc":"玩家从登陆界面点登陆按钮后转圈到正式进大厅的时长"},"4":{"id":4,"key":"enter-Hall Time10-15s","name":"104从登陆进大厅成功时长10-15s","value":"6hadyq","desc":"玩家从登陆界面点登陆按钮后转圈到正式进大厅的时长"},"5":{"id":5,"key":"enter-Hall Time15s+","name":"105从登陆进大厅成功时长15s以上","value":"olfgul","desc":"玩家从登陆界面点登陆按钮后转圈到正式进大厅的时长"},"6":{"id":6,"key":"open-FirstRecharge","name":"10打开首充礼包界面的人数","value":"o0tvbn","desc":"打开首充礼包界面的人数"},"7":{"id":7,"key":"open-game registration success","name":"11进B面且成功注册","value":"pk06w4","desc":"首先得进B面,然后成功注册(包括快速注册和手机注册,都算)"},"8":{"id":8,"key":"open-Shop player information","name":"12打开商城填写个人信息界面","value":"vevhuw","desc":"商城那个用户名,手机,邮箱的填写界面,这个界面被打开,即统计"},"9":{"id":9,"key":"open-Shop player information save","name":"13商城个人信息保存成功","value":"156mar","desc":"商城那个用户名,手机,邮箱的填写界面,这个界面玩家填写信息后,保存成功,即统计"},"10":{"id":10,"key":"open-game B side","name":"14进B面成功的用户","value":"93rpfl","desc":"返回能进B面的消息的用户"},"11":{"id":11,"key":"open-New Shop payment page","name":"15新支付的支付页面成功弹出","value":"vnq5jc","desc":"新的支付页,完全展示出来,那个带二维码和链接地址的页面"},"12":{"id":12,"key":"open-New Shop payment page invalid","name":"16新支付拉起生成中页面失败","value":"b0yxkk","desc":"新的支付,点[proxima Etapa]跳转后会有个转圈生成的界面,这个界面没有成功跳转的人数"},"13":{"id":13,"key":"open-New Shop payment page copy","name":"17新支付的支付页面点复制按钮","value":"qk4mcl","desc":"新的支付页,完全展示出来,那个带二维码和链接地址的页面,里的复制链接按钮,点击就算"},"14":{"id":14,"key":"login Success To Hall","name":"18登陆成功,准备进入大厅","value":"u39trn","desc":"登陆成功返回,准备加载大厅场景"},"15":{"id":15,"key":"no Update","name":"19无需热更","value":"x9b4lm","desc":"版本已是最新,无需热更"},"16":{"id":16,"key":"open-APP","name":"1打开应用人数","value":"5ysmeg","desc":"打开APP的人数"},"17":{"id":17,"key":"enter-Game Time0-3s","name":"201进游戏过程加载时长1-3s","value":"b3cegs","desc":"从大厅次级页面进游戏时那个转圈的等待时间"},"18":{"id":18,"key":"enter-Game Time3-5s","name":"202进游戏过程加载时长3-5s","value":"oq9663","desc":"从大厅次级页面进游戏时那个转圈的等待时间"},"19":{"id":19,"key":"enter-Game Time5-10s","name":"203进游戏过程加载时长5-10s","value":"hoebhc","desc":"从大厅次级页面进游戏时那个转圈的等待时间"},"20":{"id":20,"key":"enter-Game Time10-15s","name":"204进游戏过程加载时长10-15s","value":"8ur7vx","desc":"从大厅次级页面进游戏时那个转圈的等待时间"},"21":{"id":21,"key":"enter-Game Time15s+","name":"205进游戏过程加载时长15s以上","value":"z634dc","desc":"从大厅次级页面进游戏时那个转圈的等待时间"},"22":{"id":22,"key":"start Hotupdate","name":"20开始热更","value":"y5uzfi","desc":"检测到有新版本,准备热更"},"23":{"id":23,"key":"hotUpdate Success","name":"21热更完成","value":"zf1ply","desc":"更新完成,准备重新启动"},"24":{"id":24,"key":"open-game A side","name":"22进A面","value":"tnejh3","desc":"玩家进A面显示"},"25":{"id":25,"key":"login Success To Game","name":"23A面登陆成功,进游戏","value":"v57boe","desc":"玩家A面下登陆成功,需要直接进入游戏"},"26":{"id":26,"key":"quick Login YouKe","name":"24游客快速登录","value":"v5dljx","desc":"启动游戏,直接游客登录进游戏"},"27":{"id":27,"key":"quick Login Phone","name":"25手机快速登录","value":"m1ofjs","desc":"启动偶像,直接手机账号登录进游戏"},"28":{"id":28,"key":"youkeLogin Need Register","name":"26游客登录失败,需要注册","value":"1yx4vw","desc":"游客快速登录失败,需要注册"},"29":{"id":29,"key":"loginSuccess","name":"27登陆成功","value":"7t39gx","desc":"账号登陆成功"},"30":{"id":30,"key":"loginFailure","name":"28登录失败","value":"582nne","desc":"账号登陆失败"},"31":{"id":31,"key":"login ShowPhone","name":"29登录界面展示手机","value":"3yo6ra","desc":"设置界面切换账号到登录"},"32":{"id":32,"key":"open-Loning...","name":"2加载过程人数","value":"8vacc1","desc":"打开APP开始加载的人数(请求服务器成功)"},"33":{"id":33,"key":"enter-Shop Time0-3s","name":"301进商城过程加载时长0-3s","value":"p8o6kj","desc":"玩家打开商城的等待时间"},"34":{"id":34,"key":"enter-Shop Time3-5s","name":"302进商城过程加载时长3-5s","value":"melvsl","desc":"玩家打开商城的等待时间"},"35":{"id":35,"key":"enter-Shop Time5-10s","name":"303进商城过程加载时长5-10s","value":"frzav4","desc":"玩家打开商城的等待时间"},"36":{"id":36,"key":"enter-Shop Time10-15s","name":"304进商城过程加载时长10-15s","value":"wknf7d","desc":"玩家打开商城的等待时间(基本判定为打开失败)"},"37":{"id":37,"key":"enter-Shop Time15s+","name":"305进商城过程加载时长15s以上","value":"rx7yz1","desc":"玩家打开商城的等待时间(基本判定为打开失败)"},"38":{"id":38,"key":"open-New Shop time1-5s","name":"306新支付拉起加载时长1-5s","value":"9fkqro","desc":"新的支付,点[proxima Etapa]跳转后会有个转圈生成的界面,这个界面到成功弹出充值页面消耗的时长"},"39":{"id":39,"key":"open-New Shop time5s+","name":"307新支付拉起加载时长5s以上","value":"dfmwax","desc":"新的支付,点[proxima Etapa]跳转后会有个转圈生成的界面,这个界面到成功弹出充值页面消耗的时长"},"40":{"id":40,"key":"open-New Shop invalid tips01","name":"308新支付拉起失败报错01","value":"uwy9w6","desc":"提示文本:“充值页面跳转失败,请稍后再试”这个错误(超时,异常,都会是这个)"},"41":{"id":41,"key":"open-New Shop invalid tips02","name":"309新支付拉起失败报错02","value":"m3qs5w","desc":"提示文本:“您的订单生成失败,请检查您填写的信息是否正确”"},"42":{"id":42,"key":"login ShowRegister","name":"30登录界面展示注册","value":"h031i1","desc":"设置界面切换账号到登录"},"43":{"id":43,"key":"click-set logout","name":"31设置界面切换账号","value":"uu8t9r","desc":"设置界面点击切换账号按钮"},"44":{"id":44,"key":"login Timeout30s","name":"32登录时间超过30秒","value":"qjxzbk","desc":"快速登录开始计时,30秒后还未登录成功或失败"},"45":{"id":45,"key":"quick Login A Side","name":"33A面快速登录","value":"ls5p48","desc":"玩家进A面,游客快速登录"},"46":{"id":46,"key":"registration success A side","name":"34A面注册成功","value":"1dbolh","desc":"玩家在A面,游客注册成功"},"47":{"id":47,"key":"registration failure","name":"35注册失败","value":"bwsw3c","desc":"玩家注册失败"},"48":{"id":48,"key":"open server to login","name":"36连接成功准备登录","value":"sq8uzg","desc":"服务器连接成功,准备发送登录数据"},"49":{"id":49,"key":"server already to login","name":"37服务已连接,直接登录","value":"sevfr7","desc":"服务器已连接,只需发送登录"},"50":{"id":50,"key":"open-New Shop not components","name":"38新支付没有QRCODE组件","value":"difhgc","desc":"字面意思"},"51":{"id":51,"key":"VIP button","name":"39VIP功能点击入口次数","value":"1s04w6","desc":"大厅的VIP功能入口点击的人数"},"52":{"id":52,"key":"open-game lobby","name":"3进B面大厅成功人数","value":"andcgu","desc":"成功进B面进到大厅的人数"},"53":{"id":53,"key":"VIP button-Melhorar","name":"40VIP功能点击升级按钮","value":"uqiiei","desc":"VIP功能界面里面点击Melhorar的那个跳转商城按钮"},"54":{"id":54,"key":"Guide payment button","name":"41引导付费礼包的入口按钮点击","value":"yz5pwo","desc":"只要是引导付费礼包的入口,用户主动去点击次数"},"55":{"id":55,"key":"Guide payment UI popup","name":"42引导付费礼包界面弹出次数","value":"w0k2fu","desc":"引导付费礼包界面弹出成功,就记录一次,但是记录的是次数"},"56":{"id":56,"key":"Guide payment package one","name":"43引导付费礼包档位1购买按钮","value":"alkh13","desc":"用户没有付费回到大厅主动弹的那个礼包,第一个充值档位的购买按钮点击"},"57":{"id":57,"key":"Guide payment package two","name":"44引导付费礼包档位2购买按钮","value":"ukiupq","desc":"用户没有付费回到大厅主动弹的那个礼包,第二个充值档位的购买按钮点击"},"58":{"id":58,"key":"Guide payment close","name":"45引导付费礼包关闭按钮点击","value":"8ytrcl","desc":"用户没有付费回到大厅主动弹的那个礼包,关闭按钮点击"},"59":{"id":59,"key":"Lembrete de recarga open","name":"46游戏内没钱时的统一弹窗弹出次数","value":"uk7zk5","desc":"游戏里玩家没钱弹出的那个可跳商城的弹框,弹出次数"},"60":{"id":60,"key":"Lembrete de recarga go to mall","name":"47游戏内没钱时的统一弹窗点击跳转充值","value":"6gz9k8","desc":"游戏里玩家没钱弹出的那个可跳商城的弹框,里面的跳转商城按钮点击次数"},"61":{"id":61,"key":"Lembrete de recarga close","name":"48游戏内没钱时的统一弹窗点击关闭按钮","value":"7b76vj","desc":"游戏里玩家没钱弹出的那个可跳商城的弹框,里面的关闭按钮点击次数"},"62":{"id":62,"key":"withdraw to recharge","name":"49提现弹出提醒充值弹框","value":"hgsm6s","desc":"玩家提现,点提取按钮时弹出提示充值的那个弹框,弹出次数"},"63":{"id":63,"key":"open-Shop","name":"4商城页面被打开","value":"9jxmgt","desc":"打开商城页面的人数"},"64":{"id":64,"key":"withdraw to recharge go to mall","name":"50提现弹出提醒充值弹框后点击跳转充值","value":"h7hlq1","desc":"玩家提现,点提取按钮时弹出提示充值的那个弹框,里面的跳转商城按钮点击次数"},"65":{"id":65,"key":"withdraw to recharge close","name":"51提现弹出提醒充值弹框后点击关闭按钮","value":"p11rsz","desc":"玩家提现,点提取按钮时弹出提示充值的那个弹框,里面的关闭按钮点击次数"},"66":{"id":66,"key":"click-ShopItem","name":"5点击商城内任意充值档位按钮人数","value":"1ugad7","desc":"点商城内任意充值档位按钮人数"},"67":{"id":67,"key":"click-GoBuy","name":"6点击[proxima Etapa]跳转按钮成功人数","value":"4rhhx8","desc":"点击商城选择渠道界面那个黄色的próxima Etapa按钮,且成功跳转人数"},"68":{"id":68,"key":"open-CashOut","name":"7打开提现页面的人数","value":"ixr4t4","desc":"打开提现页面的人数,注:多个页面可跳转到提现,这里是打开这个页面,而不是点击提现按钮"},"69":{"id":69,"key":"open-Agent","name":"8打开推广赚金页面人数","value":"8a343a","desc":"打开推广赚金页面的人数"},"70":{"id":70,"key":"open-VIPWeek","name":"9打开周卡界面的人数","value":"koaw2x","desc":"打开周卡界面的人数"},"71":{"id":71,"key":"RocketLoad-pre-unpack","name":"01前置开始","value":"ctxedy","desc":"01前置开始"},"72":{"id":72,"key":"RocketLoad-pre-finish","name":"02前置完成","value":"gshj22","desc":"02前置完成"},"73":{"id":73,"key":"RocketLoad-normal-startdown","name":"03下载init开始","value":"hqvhd5","desc":"03下载init开始"},"74":{"id":74,"key":"RocketLoad-normal-downfinish","name":"04下载init完成","value":"w1kdyd","desc":"04下载init完成"},"75":{"id":75,"key":"RocketLoad-normal-unpack","name":"05init解开","value":"laia25","desc":"05下载init解开"},"76":{"id":76,"key":"RocketLoad-normal-finish","name":"06init完成","value":"y94eyl","desc":"06下载init完成"}}','config'=>'','ani_name'=>'play','black'=>false],
  694. "com.fantasy.fruit2"=>['adj_token'=>"srgiv5i6kphc",'adj_config'=>'{"1":{"id":1,"key":"enter-Hall Time0-3s","name":"101从登陆进大厅成功时长1-3s","value":"qf67bx","desc":"玩家从登陆界面点登陆按钮后转圈到正式进大厅的时长"},"2":{"id":2,"key":"enter-Hall Time3-5s","name":"102从登陆进大厅成功时长3-5s","value":"88tdmx","desc":"玩家从登陆界面点登陆按钮后转圈到正式进大厅的时长"},"3":{"id":3,"key":"enter-Hall Time5-10s","name":"103从登陆进大厅成功时长5-10s","value":"g36jgl","desc":"玩家从登陆界面点登陆按钮后转圈到正式进大厅的时长"},"4":{"id":4,"key":"enter-Hall Time10-15s","name":"104从登陆进大厅成功时长10-15s","value":"6hadyq","desc":"玩家从登陆界面点登陆按钮后转圈到正式进大厅的时长"},"5":{"id":5,"key":"enter-Hall Time15s+","name":"105从登陆进大厅成功时长15s以上","value":"olfgul","desc":"玩家从登陆界面点登陆按钮后转圈到正式进大厅的时长"},"6":{"id":6,"key":"open-FirstRecharge","name":"10打开首充礼包界面的人数","value":"o0tvbn","desc":"打开首充礼包界面的人数"},"7":{"id":7,"key":"open-game registration success","name":"11进B面且成功注册","value":"pk06w4","desc":"首先得进B面,然后成功注册(包括快速注册和手机注册,都算)"},"8":{"id":8,"key":"open-Shop player information","name":"12打开商城填写个人信息界面","value":"vevhuw","desc":"商城那个用户名,手机,邮箱的填写界面,这个界面被打开,即统计"},"9":{"id":9,"key":"open-Shop player information save","name":"13商城个人信息保存成功","value":"156mar","desc":"商城那个用户名,手机,邮箱的填写界面,这个界面玩家填写信息后,保存成功,即统计"},"10":{"id":10,"key":"open-game B side","name":"14进B面成功的用户","value":"93rpfl","desc":"返回能进B面的消息的用户"},"11":{"id":11,"key":"open-New Shop payment page","name":"15新支付的支付页面成功弹出","value":"vnq5jc","desc":"新的支付页,完全展示出来,那个带二维码和链接地址的页面"},"12":{"id":12,"key":"open-New Shop payment page invalid","name":"16新支付拉起生成中页面失败","value":"b0yxkk","desc":"新的支付,点[proxima Etapa]跳转后会有个转圈生成的界面,这个界面没有成功跳转的人数"},"13":{"id":13,"key":"open-New Shop payment page copy","name":"17新支付的支付页面点复制按钮","value":"qk4mcl","desc":"新的支付页,完全展示出来,那个带二维码和链接地址的页面,里的复制链接按钮,点击就算"},"14":{"id":14,"key":"login Success To Hall","name":"18登陆成功,准备进入大厅","value":"u39trn","desc":"登陆成功返回,准备加载大厅场景"},"15":{"id":15,"key":"no Update","name":"19无需热更","value":"x9b4lm","desc":"版本已是最新,无需热更"},"16":{"id":16,"key":"open-APP","name":"1打开应用人数","value":"5ysmeg","desc":"打开APP的人数"},"17":{"id":17,"key":"enter-Game Time0-3s","name":"201进游戏过程加载时长1-3s","value":"b3cegs","desc":"从大厅次级页面进游戏时那个转圈的等待时间"},"18":{"id":18,"key":"enter-Game Time3-5s","name":"202进游戏过程加载时长3-5s","value":"oq9663","desc":"从大厅次级页面进游戏时那个转圈的等待时间"},"19":{"id":19,"key":"enter-Game Time5-10s","name":"203进游戏过程加载时长5-10s","value":"hoebhc","desc":"从大厅次级页面进游戏时那个转圈的等待时间"},"20":{"id":20,"key":"enter-Game Time10-15s","name":"204进游戏过程加载时长10-15s","value":"8ur7vx","desc":"从大厅次级页面进游戏时那个转圈的等待时间"},"21":{"id":21,"key":"enter-Game Time15s+","name":"205进游戏过程加载时长15s以上","value":"z634dc","desc":"从大厅次级页面进游戏时那个转圈的等待时间"},"22":{"id":22,"key":"start Hotupdate","name":"20开始热更","value":"y5uzfi","desc":"检测到有新版本,准备热更"},"23":{"id":23,"key":"hotUpdate Success","name":"21热更完成","value":"zf1ply","desc":"更新完成,准备重新启动"},"24":{"id":24,"key":"open-game A side","name":"22进A面","value":"tnejh3","desc":"玩家进A面显示"},"25":{"id":25,"key":"login Success To Game","name":"23A面登陆成功,进游戏","value":"v57boe","desc":"玩家A面下登陆成功,需要直接进入游戏"},"26":{"id":26,"key":"quick Login YouKe","name":"24游客快速登录","value":"v5dljx","desc":"启动游戏,直接游客登录进游戏"},"27":{"id":27,"key":"quick Login Phone","name":"25手机快速登录","value":"m1ofjs","desc":"启动偶像,直接手机账号登录进游戏"},"28":{"id":28,"key":"youkeLogin Need Register","name":"26游客登录失败,需要注册","value":"1yx4vw","desc":"游客快速登录失败,需要注册"},"29":{"id":29,"key":"loginSuccess","name":"27登陆成功","value":"7t39gx","desc":"账号登陆成功"},"30":{"id":30,"key":"loginFailure","name":"28登录失败","value":"582nne","desc":"账号登陆失败"},"31":{"id":31,"key":"login ShowPhone","name":"29登录界面展示手机","value":"3yo6ra","desc":"设置界面切换账号到登录"},"32":{"id":32,"key":"open-Loning...","name":"2加载过程人数","value":"8vacc1","desc":"打开APP开始加载的人数(请求服务器成功)"},"33":{"id":33,"key":"enter-Shop Time0-3s","name":"301进商城过程加载时长0-3s","value":"p8o6kj","desc":"玩家打开商城的等待时间"},"34":{"id":34,"key":"enter-Shop Time3-5s","name":"302进商城过程加载时长3-5s","value":"melvsl","desc":"玩家打开商城的等待时间"},"35":{"id":35,"key":"enter-Shop Time5-10s","name":"303进商城过程加载时长5-10s","value":"frzav4","desc":"玩家打开商城的等待时间"},"36":{"id":36,"key":"enter-Shop Time10-15s","name":"304进商城过程加载时长10-15s","value":"wknf7d","desc":"玩家打开商城的等待时间(基本判定为打开失败)"},"37":{"id":37,"key":"enter-Shop Time15s+","name":"305进商城过程加载时长15s以上","value":"rx7yz1","desc":"玩家打开商城的等待时间(基本判定为打开失败)"},"38":{"id":38,"key":"open-New Shop time1-5s","name":"306新支付拉起加载时长1-5s","value":"9fkqro","desc":"新的支付,点[proxima Etapa]跳转后会有个转圈生成的界面,这个界面到成功弹出充值页面消耗的时长"},"39":{"id":39,"key":"open-New Shop time5s+","name":"307新支付拉起加载时长5s以上","value":"dfmwax","desc":"新的支付,点[proxima Etapa]跳转后会有个转圈生成的界面,这个界面到成功弹出充值页面消耗的时长"},"40":{"id":40,"key":"open-New Shop invalid tips01","name":"308新支付拉起失败报错01","value":"uwy9w6","desc":"提示文本:“充值页面跳转失败,请稍后再试”这个错误(超时,异常,都会是这个)"},"41":{"id":41,"key":"open-New Shop invalid tips02","name":"309新支付拉起失败报错02","value":"m3qs5w","desc":"提示文本:“您的订单生成失败,请检查您填写的信息是否正确”"},"42":{"id":42,"key":"login ShowRegister","name":"30登录界面展示注册","value":"h031i1","desc":"设置界面切换账号到登录"},"43":{"id":43,"key":"click-set logout","name":"31设置界面切换账号","value":"uu8t9r","desc":"设置界面点击切换账号按钮"},"44":{"id":44,"key":"login Timeout30s","name":"32登录时间超过30秒","value":"qjxzbk","desc":"快速登录开始计时,30秒后还未登录成功或失败"},"45":{"id":45,"key":"quick Login A Side","name":"33A面快速登录","value":"ls5p48","desc":"玩家进A面,游客快速登录"},"46":{"id":46,"key":"registration success A side","name":"34A面注册成功","value":"1dbolh","desc":"玩家在A面,游客注册成功"},"47":{"id":47,"key":"registration failure","name":"35注册失败","value":"bwsw3c","desc":"玩家注册失败"},"48":{"id":48,"key":"open server to login","name":"36连接成功准备登录","value":"sq8uzg","desc":"服务器连接成功,准备发送登录数据"},"49":{"id":49,"key":"server already to login","name":"37服务已连接,直接登录","value":"sevfr7","desc":"服务器已连接,只需发送登录"},"50":{"id":50,"key":"open-New Shop not components","name":"38新支付没有QRCODE组件","value":"difhgc","desc":"字面意思"},"51":{"id":51,"key":"VIP button","name":"39VIP功能点击入口次数","value":"1s04w6","desc":"大厅的VIP功能入口点击的人数"},"52":{"id":52,"key":"open-game lobby","name":"3进B面大厅成功人数","value":"andcgu","desc":"成功进B面进到大厅的人数"},"53":{"id":53,"key":"VIP button-Melhorar","name":"40VIP功能点击升级按钮","value":"uqiiei","desc":"VIP功能界面里面点击Melhorar的那个跳转商城按钮"},"54":{"id":54,"key":"Guide payment button","name":"41引导付费礼包的入口按钮点击","value":"yz5pwo","desc":"只要是引导付费礼包的入口,用户主动去点击次数"},"55":{"id":55,"key":"Guide payment UI popup","name":"42引导付费礼包界面弹出次数","value":"w0k2fu","desc":"引导付费礼包界面弹出成功,就记录一次,但是记录的是次数"},"56":{"id":56,"key":"Guide payment package one","name":"43引导付费礼包档位1购买按钮","value":"alkh13","desc":"用户没有付费回到大厅主动弹的那个礼包,第一个充值档位的购买按钮点击"},"57":{"id":57,"key":"Guide payment package two","name":"44引导付费礼包档位2购买按钮","value":"ukiupq","desc":"用户没有付费回到大厅主动弹的那个礼包,第二个充值档位的购买按钮点击"},"58":{"id":58,"key":"Guide payment close","name":"45引导付费礼包关闭按钮点击","value":"8ytrcl","desc":"用户没有付费回到大厅主动弹的那个礼包,关闭按钮点击"},"59":{"id":59,"key":"Lembrete de recarga open","name":"46游戏内没钱时的统一弹窗弹出次数","value":"uk7zk5","desc":"游戏里玩家没钱弹出的那个可跳商城的弹框,弹出次数"},"60":{"id":60,"key":"Lembrete de recarga go to mall","name":"47游戏内没钱时的统一弹窗点击跳转充值","value":"6gz9k8","desc":"游戏里玩家没钱弹出的那个可跳商城的弹框,里面的跳转商城按钮点击次数"},"61":{"id":61,"key":"Lembrete de recarga close","name":"48游戏内没钱时的统一弹窗点击关闭按钮","value":"7b76vj","desc":"游戏里玩家没钱弹出的那个可跳商城的弹框,里面的关闭按钮点击次数"},"62":{"id":62,"key":"withdraw to recharge","name":"49提现弹出提醒充值弹框","value":"hgsm6s","desc":"玩家提现,点提取按钮时弹出提示充值的那个弹框,弹出次数"},"63":{"id":63,"key":"open-Shop","name":"4商城页面被打开","value":"9jxmgt","desc":"打开商城页面的人数"},"64":{"id":64,"key":"withdraw to recharge go to mall","name":"50提现弹出提醒充值弹框后点击跳转充值","value":"h7hlq1","desc":"玩家提现,点提取按钮时弹出提示充值的那个弹框,里面的跳转商城按钮点击次数"},"65":{"id":65,"key":"withdraw to recharge close","name":"51提现弹出提醒充值弹框后点击关闭按钮","value":"p11rsz","desc":"玩家提现,点提取按钮时弹出提示充值的那个弹框,里面的关闭按钮点击次数"},"66":{"id":66,"key":"click-ShopItem","name":"5点击商城内任意充值档位按钮人数","value":"1ugad7","desc":"点商城内任意充值档位按钮人数"},"67":{"id":67,"key":"click-GoBuy","name":"6点击[proxima Etapa]跳转按钮成功人数","value":"4rhhx8","desc":"点击商城选择渠道界面那个黄色的próxima Etapa按钮,且成功跳转人数"},"68":{"id":68,"key":"open-CashOut","name":"7打开提现页面的人数","value":"ixr4t4","desc":"打开提现页面的人数,注:多个页面可跳转到提现,这里是打开这个页面,而不是点击提现按钮"},"69":{"id":69,"key":"open-Agent","name":"8打开推广赚金页面人数","value":"8a343a","desc":"打开推广赚金页面的人数"},"70":{"id":70,"key":"open-VIPWeek","name":"9打开周卡界面的人数","value":"koaw2x","desc":"打开周卡界面的人数"},"71":{"id":71,"key":"RocketLoad-pre-unpack","name":"01前置开始","value":"ctxedy","desc":"01前置开始"},"72":{"id":72,"key":"RocketLoad-pre-finish","name":"02前置完成","value":"gshj22","desc":"02前置完成"},"73":{"id":73,"key":"RocketLoad-normal-startdown","name":"03下载init开始","value":"hqvhd5","desc":"03下载init开始"},"74":{"id":74,"key":"RocketLoad-normal-downfinish","name":"04下载init完成","value":"w1kdyd","desc":"04下载init完成"},"75":{"id":75,"key":"RocketLoad-normal-unpack","name":"05init解开","value":"laia25","desc":"05下载init解开"},"76":{"id":76,"key":"RocketLoad-normal-finish","name":"06init完成","value":"y94eyl","desc":"06下载init完成"}}','config'=>'','ani_name'=>'play','black'=>false],
  695. "com.silamedia.chocolaterecipe"=>['adj_token'=>"stxguhycksn4",'adj_config'=>'{"1":{"id":1,"key":"enter-Hall Time0-3s","name":"101从登陆进大厅成功时长1-3s","value":"hdgu3b","desc":"玩家从登陆界面点登陆按钮后转圈到正式进大厅的时长"},"2":{"id":2,"key":"enter-Hall Time3-5s","name":"102从登陆进大厅成功时长3-5s","value":"vpg4vx","desc":"玩家从登陆界面点登陆按钮后转圈到正式进大厅的时长"},"3":{"id":3,"key":"enter-Hall Time5-10s","name":"103从登陆进大厅成功时长5-10s","value":"upx2sn","desc":"玩家从登陆界面点登陆按钮后转圈到正式进大厅的时长"},"4":{"id":4,"key":"enter-Hall Time10-15s","name":"104从登陆进大厅成功时长10-15s","value":"g881rv","desc":"玩家从登陆界面点登陆按钮后转圈到正式进大厅的时长"},"5":{"id":5,"key":"enter-Hall Time15s+","name":"105从登陆进大厅成功时长15s以上","value":"34l2eo","desc":"玩家从登陆界面点登陆按钮后转圈到正式进大厅的时长"},"6":{"id":6,"key":"open-FirstRecharge","name":"10打开首充礼包界面的人数","value":"vtrhyj","desc":"打开首充礼包界面的人数"},"7":{"id":7,"key":"open-game registration success","name":"11进B面且成功注册","value":"dq59ph","desc":"首先得进B面,然后成功注册(包括快速注册和手机注册,都算)"},"8":{"id":8,"key":"open-Shop player information","name":"12打开商城填写个人信息界面","value":"sq4sq0","desc":"商城那个用户名,手机,邮箱的填写界面,这个界面被打开,即统计"},"9":{"id":9,"key":"open-Shop player information save","name":"13商城个人信息保存成功","value":"qfv37u","desc":"商城那个用户名,手机,邮箱的填写界面,这个界面玩家填写信息后,保存成功,即统计"},"10":{"id":10,"key":"open-game B side","name":"14进B面成功的用户","value":"i4137q","desc":"返回能进B面的消息的用户"},"11":{"id":11,"key":"open-New Shop payment page","name":"15新支付的支付页面成功弹出","value":"bxf1zi","desc":"新的支付页,完全展示出来,那个带二维码和链接地址的页面"},"12":{"id":12,"key":"open-New Shop payment page invalid","name":"16新支付拉起生成中页面失败","value":"hn69qs","desc":"新的支付,点[proxima Etapa]跳转后会有个转圈生成的界面,这个界面没有成功跳转的人数"},"13":{"id":13,"key":"open-New Shop payment page copy","name":"17新支付的支付页面点复制按钮","value":"gw5q86","desc":"新的支付页,完全展示出来,那个带二维码和链接地址的页面,里的复制链接按钮,点击就算"},"14":{"id":14,"key":"login Success To Hall","name":"18登陆成功,准备进入大厅","value":"mc6tjz","desc":"登陆成功返回,准备加载大厅场景"},"15":{"id":15,"key":"no Update","name":"19无需热更","value":"4wvpct","desc":"版本已是最新,无需热更"},"16":{"id":16,"key":"open-APP","name":"1打开应用人数","value":"upilkr","desc":"打开APP的人数"},"17":{"id":17,"key":"enter-Game Time0-3s","name":"201进游戏过程加载时长1-3s","value":"k6ibc5","desc":"从大厅次级页面进游戏时那个转圈的等待时间"},"18":{"id":18,"key":"enter-Game Time3-5s","name":"202进游戏过程加载时长3-5s","value":"5ktg90","desc":"从大厅次级页面进游戏时那个转圈的等待时间"},"19":{"id":19,"key":"enter-Game Time5-10s","name":"203进游戏过程加载时长5-10s","value":"eye0n6","desc":"从大厅次级页面进游戏时那个转圈的等待时间"},"20":{"id":20,"key":"enter-Game Time10-15s","name":"204进游戏过程加载时长10-15s","value":"ouvcev","desc":"从大厅次级页面进游戏时那个转圈的等待时间"},"21":{"id":21,"key":"enter-Game Time15s+","name":"205进游戏过程加载时长15s以上","value":"aafmlw","desc":"从大厅次级页面进游戏时那个转圈的等待时间"},"22":{"id":22,"key":"start Hotupdate","name":"20开始热更","value":"1mudj2","desc":"检测到有新版本,准备热更"},"23":{"id":23,"key":"hotUpdate Success","name":"21热更完成","value":"tjk31x","desc":"更新完成,准备重新启动"},"24":{"id":24,"key":"open-game A side","name":"22进A面","value":"gzj8l1","desc":"玩家进A面显示"},"25":{"id":25,"key":"login Success To Game","name":"23A面登陆成功,进游戏","value":"6d7dpe","desc":"玩家A面下登陆成功,需要直接进入游戏"},"26":{"id":26,"key":"quick Login YouKe","name":"24游客快速登录","value":"nhgk8q","desc":"启动游戏,直接游客登录进游戏"},"27":{"id":27,"key":"quick Login Phone","name":"25手机快速登录","value":"gfrpyt","desc":"启动偶像,直接手机账号登录进游戏"},"28":{"id":28,"key":"youkeLogin Need Register","name":"26游客登录失败,需要注册","value":"2qyyom","desc":"游客快速登录失败,需要注册"},"29":{"id":29,"key":"loginSuccess","name":"27登陆成功","value":"159cp7","desc":"账号登陆成功"},"30":{"id":30,"key":"loginFailure","name":"28登录失败","value":"a66i3t","desc":"账号登陆失败"},"31":{"id":31,"key":"login ShowPhone","name":"29登录界面展示手机","value":"jnaf7b","desc":"设置界面切换账号到登录"},"32":{"id":32,"key":"open-Loning...","name":"2加载过程人数","value":"yfjiel","desc":"打开APP开始加载的人数(请求服务器成功)"},"33":{"id":33,"key":"enter-Shop Time0-3s","name":"301进商城过程加载时长0-3s","value":"8u4r26","desc":"玩家打开商城的等待时间"},"34":{"id":34,"key":"enter-Shop Time3-5s","name":"302进商城过程加载时长3-5s","value":"yx77ni","desc":"玩家打开商城的等待时间"},"35":{"id":35,"key":"enter-Shop Time5-10s","name":"303进商城过程加载时长5-10s","value":"1fbgdv","desc":"玩家打开商城的等待时间"},"36":{"id":36,"key":"enter-Shop Time10-15s","name":"304进商城过程加载时长10-15s","value":"eond8p","desc":"玩家打开商城的等待时间(基本判定为打开失败)"},"37":{"id":37,"key":"enter-Shop Time15s+","name":"305进商城过程加载时长15s以上","value":"h2ap3o","desc":"玩家打开商城的等待时间(基本判定为打开失败)"},"38":{"id":38,"key":"open-New Shop time1-5s","name":"306新支付拉起加载时长1-5s","value":"opm4wv","desc":"新的支付,点[proxima Etapa]跳转后会有个转圈生成的界面,这个界面到成功弹出充值页面消耗的时长"},"39":{"id":39,"key":"open-New Shop time5s+","name":"307新支付拉起加载时长5s以上","value":"v2wzqq","desc":"新的支付,点[proxima Etapa]跳转后会有个转圈生成的界面,这个界面到成功弹出充值页面消耗的时长"},"40":{"id":40,"key":"open-New Shop invalid tips01","name":"308新支付拉起失败报错01","value":"ae4tv3","desc":"提示文本:“充值页面跳转失败,请稍后再试”这个错误(超时,异常,都会是这个)"},"41":{"id":41,"key":"open-New Shop invalid tips02","name":"309新支付拉起失败报错02","value":"tdwvd0","desc":"提示文本:“您的订单生成失败,请检查您填写的信息是否正确”"},"42":{"id":42,"key":"login ShowRegister","name":"30登录界面展示注册","value":"zgi835","desc":"设置界面切换账号到登录"},"43":{"id":43,"key":"click-set logout","name":"31设置界面切换账号","value":"lye1cd","desc":"设置界面点击切换账号按钮"},"44":{"id":44,"key":"login Timeout30s","name":"32登录时间超过30秒","value":"xaubyr","desc":"快速登录开始计时,30秒后还未登录成功或失败"},"45":{"id":45,"key":"quick Login A Side","name":"33A面快速登录","value":"mduilk","desc":"玩家进A面,游客快速登录"},"46":{"id":46,"key":"registration success A side","name":"34A面注册成功","value":"fnchgq","desc":"玩家在A面,游客注册成功"},"47":{"id":47,"key":"registration failure","name":"35注册失败","value":"wd9gqp","desc":"玩家注册失败"},"48":{"id":48,"key":"open server to login","name":"36连接成功准备登录","value":"caibpq","desc":"服务器连接成功,准备发送登录数据"},"49":{"id":49,"key":"server already to login","name":"37服务已连接,直接登录","value":"6q15qa","desc":"服务器已连接,只需发送登录"},"50":{"id":50,"key":"open-New Shop not components","name":"38新支付没有QRCODE组件","value":"y3r2ax","desc":"字面意思"},"51":{"id":51,"key":"VIP button","name":"39VIP功能点击入口次数","value":"eu04tb","desc":"大厅的VIP功能入口点击的人数"},"52":{"id":52,"key":"open-game lobby","name":"3进B面大厅成功人数","value":"t2xvhh","desc":"成功进B面进到大厅的人数"},"53":{"id":53,"key":"VIP button-Melhorar","name":"40VIP功能点击升级按钮","value":"oe47hz","desc":"VIP功能界面里面点击Melhorar的那个跳转商城按钮"},"54":{"id":54,"key":"Guide payment button","name":"41引导付费礼包的入口按钮点击","value":"rd9nqp","desc":"只要是引导付费礼包的入口,用户主动去点击次数"},"55":{"id":55,"key":"Guide payment UI popup","name":"42引导付费礼包界面弹出次数","value":"ai95kh","desc":"引导付费礼包界面弹出成功,就记录一次,但是记录的是次数"},"56":{"id":56,"key":"Guide payment package one","name":"43引导付费礼包档位1购买按钮","value":"yzn0jd","desc":"用户没有付费回到大厅主动弹的那个礼包,第一个充值档位的购买按钮点击"},"57":{"id":57,"key":"Guide payment package two","name":"44引导付费礼包档位2购买按钮","value":"j34o4t","desc":"用户没有付费回到大厅主动弹的那个礼包,第二个充值档位的购买按钮点击"},"58":{"id":58,"key":"Guide payment close","name":"45引导付费礼包关闭按钮点击","value":"dhqhyt","desc":"用户没有付费回到大厅主动弹的那个礼包,关闭按钮点击"},"59":{"id":59,"key":"Lembrete de recarga open","name":"46游戏内没钱时的统一弹窗弹出次数","value":"6xxgqr","desc":"游戏里玩家没钱弹出的那个可跳商城的弹框,弹出次数"},"60":{"id":60,"key":"Lembrete de recarga go to mall","name":"47游戏内没钱时的统一弹窗点击跳转充值","value":"aawk66","desc":"游戏里玩家没钱弹出的那个可跳商城的弹框,里面的跳转商城按钮点击次数"},"61":{"id":61,"key":"Lembrete de recarga close","name":"48游戏内没钱时的统一弹窗点击关闭按钮","value":"s44hoi","desc":"游戏里玩家没钱弹出的那个可跳商城的弹框,里面的关闭按钮点击次数"},"62":{"id":62,"key":"withdraw to recharge","name":"49提现弹出提醒充值弹框","value":"9b8jqd","desc":"玩家提现,点提取按钮时弹出提示充值的那个弹框,弹出次数"},"63":{"id":63,"key":"open-Shop","name":"4商城页面被打开","value":"h8012i","desc":"打开商城页面的人数"},"64":{"id":64,"key":"withdraw to recharge go to mall","name":"50提现弹出提醒充值弹框后点击跳转充值","value":"nb11cc","desc":"玩家提现,点提取按钮时弹出提示充值的那个弹框,里面的跳转商城按钮点击次数"},"65":{"id":65,"key":"withdraw to recharge close","name":"51提现弹出提醒充值弹框后点击关闭按钮","value":"e8jmzm","desc":"玩家提现,点提取按钮时弹出提示充值的那个弹框,里面的关闭按钮点击次数"},"66":{"id":66,"key":"click-ShopItem","name":"5点击商城内任意充值档位按钮人数","value":"tge79i","desc":"点商城内任意充值档位按钮人数"},"67":{"id":67,"key":"click-GoBuy","name":"6点击[proxima Etapa]跳转按钮成功人数","value":"yw1r51","desc":"点击商城选择渠道界面那个黄色的próxima Etapa按钮,且成功跳转人数"},"68":{"id":68,"key":"open-CashOut","name":"7打开提现页面的人数","value":"93rklo","desc":"打开提现页面的人数,注:多个页面可跳转到提现,这里是打开这个页面,而不是点击提现按钮"},"69":{"id":69,"key":"open-Agent","name":"8打开推广赚金页面人数","value":"yw54pq","desc":"打开推广赚金页面的人数"},"70":{"id":70,"key":"open-VIPWeek","name":"9打开周卡界面的人数","value":"bki2ct","desc":"打开周卡界面的人数"},"71":{"id":71,"key":"RocketLoad-pre-unpack","name":"01前置开始","value":"o5yxoz","desc":"01前置开始"},"72":{"id":72,"key":"RocketLoad-pre-finish","name":"02前置完成","value":"gf9j0h","desc":"02前置完成"},"73":{"id":73,"key":"RocketLoad-normal-startdown","name":"03下载init开始","value":"f6t870","desc":"03下载init开始"},"74":{"id":74,"key":"RocketLoad-normal-downfinish","name":"04下载init完成","value":"cznk1a","desc":"04下载init完成"},"75":{"id":75,"key":"RocketLoad-normal-unpack","name":"05init解开","value":"rey4d9","desc":"05下载init解开"},"76":{"id":76,"key":"RocketLoad-normal-finish","name":"06init完成","value":"52cqjl","desc":"06下载init完成"}}','config'=>'','ani_name'=>'play','black'=>false],
  696. "com.silamedia.chocolaterecipe2"=>['adj_token'=>"stxguhycksn4",'adj_config'=>'{"1":{"id":1,"key":"enter-Hall Time0-3s","name":"101从登陆进大厅成功时长1-3s","value":"hdgu3b","desc":"玩家从登陆界面点登陆按钮后转圈到正式进大厅的时长"},"2":{"id":2,"key":"enter-Hall Time3-5s","name":"102从登陆进大厅成功时长3-5s","value":"vpg4vx","desc":"玩家从登陆界面点登陆按钮后转圈到正式进大厅的时长"},"3":{"id":3,"key":"enter-Hall Time5-10s","name":"103从登陆进大厅成功时长5-10s","value":"upx2sn","desc":"玩家从登陆界面点登陆按钮后转圈到正式进大厅的时长"},"4":{"id":4,"key":"enter-Hall Time10-15s","name":"104从登陆进大厅成功时长10-15s","value":"g881rv","desc":"玩家从登陆界面点登陆按钮后转圈到正式进大厅的时长"},"5":{"id":5,"key":"enter-Hall Time15s+","name":"105从登陆进大厅成功时长15s以上","value":"34l2eo","desc":"玩家从登陆界面点登陆按钮后转圈到正式进大厅的时长"},"6":{"id":6,"key":"open-FirstRecharge","name":"10打开首充礼包界面的人数","value":"vtrhyj","desc":"打开首充礼包界面的人数"},"7":{"id":7,"key":"open-game registration success","name":"11进B面且成功注册","value":"dq59ph","desc":"首先得进B面,然后成功注册(包括快速注册和手机注册,都算)"},"8":{"id":8,"key":"open-Shop player information","name":"12打开商城填写个人信息界面","value":"sq4sq0","desc":"商城那个用户名,手机,邮箱的填写界面,这个界面被打开,即统计"},"9":{"id":9,"key":"open-Shop player information save","name":"13商城个人信息保存成功","value":"qfv37u","desc":"商城那个用户名,手机,邮箱的填写界面,这个界面玩家填写信息后,保存成功,即统计"},"10":{"id":10,"key":"open-game B side","name":"14进B面成功的用户","value":"i4137q","desc":"返回能进B面的消息的用户"},"11":{"id":11,"key":"open-New Shop payment page","name":"15新支付的支付页面成功弹出","value":"bxf1zi","desc":"新的支付页,完全展示出来,那个带二维码和链接地址的页面"},"12":{"id":12,"key":"open-New Shop payment page invalid","name":"16新支付拉起生成中页面失败","value":"hn69qs","desc":"新的支付,点[proxima Etapa]跳转后会有个转圈生成的界面,这个界面没有成功跳转的人数"},"13":{"id":13,"key":"open-New Shop payment page copy","name":"17新支付的支付页面点复制按钮","value":"gw5q86","desc":"新的支付页,完全展示出来,那个带二维码和链接地址的页面,里的复制链接按钮,点击就算"},"14":{"id":14,"key":"login Success To Hall","name":"18登陆成功,准备进入大厅","value":"mc6tjz","desc":"登陆成功返回,准备加载大厅场景"},"15":{"id":15,"key":"no Update","name":"19无需热更","value":"4wvpct","desc":"版本已是最新,无需热更"},"16":{"id":16,"key":"open-APP","name":"1打开应用人数","value":"upilkr","desc":"打开APP的人数"},"17":{"id":17,"key":"enter-Game Time0-3s","name":"201进游戏过程加载时长1-3s","value":"k6ibc5","desc":"从大厅次级页面进游戏时那个转圈的等待时间"},"18":{"id":18,"key":"enter-Game Time3-5s","name":"202进游戏过程加载时长3-5s","value":"5ktg90","desc":"从大厅次级页面进游戏时那个转圈的等待时间"},"19":{"id":19,"key":"enter-Game Time5-10s","name":"203进游戏过程加载时长5-10s","value":"eye0n6","desc":"从大厅次级页面进游戏时那个转圈的等待时间"},"20":{"id":20,"key":"enter-Game Time10-15s","name":"204进游戏过程加载时长10-15s","value":"ouvcev","desc":"从大厅次级页面进游戏时那个转圈的等待时间"},"21":{"id":21,"key":"enter-Game Time15s+","name":"205进游戏过程加载时长15s以上","value":"aafmlw","desc":"从大厅次级页面进游戏时那个转圈的等待时间"},"22":{"id":22,"key":"start Hotupdate","name":"20开始热更","value":"1mudj2","desc":"检测到有新版本,准备热更"},"23":{"id":23,"key":"hotUpdate Success","name":"21热更完成","value":"tjk31x","desc":"更新完成,准备重新启动"},"24":{"id":24,"key":"open-game A side","name":"22进A面","value":"gzj8l1","desc":"玩家进A面显示"},"25":{"id":25,"key":"login Success To Game","name":"23A面登陆成功,进游戏","value":"6d7dpe","desc":"玩家A面下登陆成功,需要直接进入游戏"},"26":{"id":26,"key":"quick Login YouKe","name":"24游客快速登录","value":"nhgk8q","desc":"启动游戏,直接游客登录进游戏"},"27":{"id":27,"key":"quick Login Phone","name":"25手机快速登录","value":"gfrpyt","desc":"启动偶像,直接手机账号登录进游戏"},"28":{"id":28,"key":"youkeLogin Need Register","name":"26游客登录失败,需要注册","value":"2qyyom","desc":"游客快速登录失败,需要注册"},"29":{"id":29,"key":"loginSuccess","name":"27登陆成功","value":"159cp7","desc":"账号登陆成功"},"30":{"id":30,"key":"loginFailure","name":"28登录失败","value":"a66i3t","desc":"账号登陆失败"},"31":{"id":31,"key":"login ShowPhone","name":"29登录界面展示手机","value":"jnaf7b","desc":"设置界面切换账号到登录"},"32":{"id":32,"key":"open-Loning...","name":"2加载过程人数","value":"yfjiel","desc":"打开APP开始加载的人数(请求服务器成功)"},"33":{"id":33,"key":"enter-Shop Time0-3s","name":"301进商城过程加载时长0-3s","value":"8u4r26","desc":"玩家打开商城的等待时间"},"34":{"id":34,"key":"enter-Shop Time3-5s","name":"302进商城过程加载时长3-5s","value":"yx77ni","desc":"玩家打开商城的等待时间"},"35":{"id":35,"key":"enter-Shop Time5-10s","name":"303进商城过程加载时长5-10s","value":"1fbgdv","desc":"玩家打开商城的等待时间"},"36":{"id":36,"key":"enter-Shop Time10-15s","name":"304进商城过程加载时长10-15s","value":"eond8p","desc":"玩家打开商城的等待时间(基本判定为打开失败)"},"37":{"id":37,"key":"enter-Shop Time15s+","name":"305进商城过程加载时长15s以上","value":"h2ap3o","desc":"玩家打开商城的等待时间(基本判定为打开失败)"},"38":{"id":38,"key":"open-New Shop time1-5s","name":"306新支付拉起加载时长1-5s","value":"opm4wv","desc":"新的支付,点[proxima Etapa]跳转后会有个转圈生成的界面,这个界面到成功弹出充值页面消耗的时长"},"39":{"id":39,"key":"open-New Shop time5s+","name":"307新支付拉起加载时长5s以上","value":"v2wzqq","desc":"新的支付,点[proxima Etapa]跳转后会有个转圈生成的界面,这个界面到成功弹出充值页面消耗的时长"},"40":{"id":40,"key":"open-New Shop invalid tips01","name":"308新支付拉起失败报错01","value":"ae4tv3","desc":"提示文本:“充值页面跳转失败,请稍后再试”这个错误(超时,异常,都会是这个)"},"41":{"id":41,"key":"open-New Shop invalid tips02","name":"309新支付拉起失败报错02","value":"tdwvd0","desc":"提示文本:“您的订单生成失败,请检查您填写的信息是否正确”"},"42":{"id":42,"key":"login ShowRegister","name":"30登录界面展示注册","value":"zgi835","desc":"设置界面切换账号到登录"},"43":{"id":43,"key":"click-set logout","name":"31设置界面切换账号","value":"lye1cd","desc":"设置界面点击切换账号按钮"},"44":{"id":44,"key":"login Timeout30s","name":"32登录时间超过30秒","value":"xaubyr","desc":"快速登录开始计时,30秒后还未登录成功或失败"},"45":{"id":45,"key":"quick Login A Side","name":"33A面快速登录","value":"mduilk","desc":"玩家进A面,游客快速登录"},"46":{"id":46,"key":"registration success A side","name":"34A面注册成功","value":"fnchgq","desc":"玩家在A面,游客注册成功"},"47":{"id":47,"key":"registration failure","name":"35注册失败","value":"wd9gqp","desc":"玩家注册失败"},"48":{"id":48,"key":"open server to login","name":"36连接成功准备登录","value":"caibpq","desc":"服务器连接成功,准备发送登录数据"},"49":{"id":49,"key":"server already to login","name":"37服务已连接,直接登录","value":"6q15qa","desc":"服务器已连接,只需发送登录"},"50":{"id":50,"key":"open-New Shop not components","name":"38新支付没有QRCODE组件","value":"y3r2ax","desc":"字面意思"},"51":{"id":51,"key":"VIP button","name":"39VIP功能点击入口次数","value":"eu04tb","desc":"大厅的VIP功能入口点击的人数"},"52":{"id":52,"key":"open-game lobby","name":"3进B面大厅成功人数","value":"t2xvhh","desc":"成功进B面进到大厅的人数"},"53":{"id":53,"key":"VIP button-Melhorar","name":"40VIP功能点击升级按钮","value":"oe47hz","desc":"VIP功能界面里面点击Melhorar的那个跳转商城按钮"},"54":{"id":54,"key":"Guide payment button","name":"41引导付费礼包的入口按钮点击","value":"rd9nqp","desc":"只要是引导付费礼包的入口,用户主动去点击次数"},"55":{"id":55,"key":"Guide payment UI popup","name":"42引导付费礼包界面弹出次数","value":"ai95kh","desc":"引导付费礼包界面弹出成功,就记录一次,但是记录的是次数"},"56":{"id":56,"key":"Guide payment package one","name":"43引导付费礼包档位1购买按钮","value":"yzn0jd","desc":"用户没有付费回到大厅主动弹的那个礼包,第一个充值档位的购买按钮点击"},"57":{"id":57,"key":"Guide payment package two","name":"44引导付费礼包档位2购买按钮","value":"j34o4t","desc":"用户没有付费回到大厅主动弹的那个礼包,第二个充值档位的购买按钮点击"},"58":{"id":58,"key":"Guide payment close","name":"45引导付费礼包关闭按钮点击","value":"dhqhyt","desc":"用户没有付费回到大厅主动弹的那个礼包,关闭按钮点击"},"59":{"id":59,"key":"Lembrete de recarga open","name":"46游戏内没钱时的统一弹窗弹出次数","value":"6xxgqr","desc":"游戏里玩家没钱弹出的那个可跳商城的弹框,弹出次数"},"60":{"id":60,"key":"Lembrete de recarga go to mall","name":"47游戏内没钱时的统一弹窗点击跳转充值","value":"aawk66","desc":"游戏里玩家没钱弹出的那个可跳商城的弹框,里面的跳转商城按钮点击次数"},"61":{"id":61,"key":"Lembrete de recarga close","name":"48游戏内没钱时的统一弹窗点击关闭按钮","value":"s44hoi","desc":"游戏里玩家没钱弹出的那个可跳商城的弹框,里面的关闭按钮点击次数"},"62":{"id":62,"key":"withdraw to recharge","name":"49提现弹出提醒充值弹框","value":"9b8jqd","desc":"玩家提现,点提取按钮时弹出提示充值的那个弹框,弹出次数"},"63":{"id":63,"key":"open-Shop","name":"4商城页面被打开","value":"h8012i","desc":"打开商城页面的人数"},"64":{"id":64,"key":"withdraw to recharge go to mall","name":"50提现弹出提醒充值弹框后点击跳转充值","value":"nb11cc","desc":"玩家提现,点提取按钮时弹出提示充值的那个弹框,里面的跳转商城按钮点击次数"},"65":{"id":65,"key":"withdraw to recharge close","name":"51提现弹出提醒充值弹框后点击关闭按钮","value":"e8jmzm","desc":"玩家提现,点提取按钮时弹出提示充值的那个弹框,里面的关闭按钮点击次数"},"66":{"id":66,"key":"click-ShopItem","name":"5点击商城内任意充值档位按钮人数","value":"tge79i","desc":"点商城内任意充值档位按钮人数"},"67":{"id":67,"key":"click-GoBuy","name":"6点击[proxima Etapa]跳转按钮成功人数","value":"yw1r51","desc":"点击商城选择渠道界面那个黄色的próxima Etapa按钮,且成功跳转人数"},"68":{"id":68,"key":"open-CashOut","name":"7打开提现页面的人数","value":"93rklo","desc":"打开提现页面的人数,注:多个页面可跳转到提现,这里是打开这个页面,而不是点击提现按钮"},"69":{"id":69,"key":"open-Agent","name":"8打开推广赚金页面人数","value":"yw54pq","desc":"打开推广赚金页面的人数"},"70":{"id":70,"key":"open-VIPWeek","name":"9打开周卡界面的人数","value":"bki2ct","desc":"打开周卡界面的人数"},"71":{"id":71,"key":"RocketLoad-pre-unpack","name":"01前置开始","value":"o5yxoz","desc":"01前置开始"},"72":{"id":72,"key":"RocketLoad-pre-finish","name":"02前置完成","value":"gf9j0h","desc":"02前置完成"},"73":{"id":73,"key":"RocketLoad-normal-startdown","name":"03下载init开始","value":"f6t870","desc":"03下载init开始"},"74":{"id":74,"key":"RocketLoad-normal-downfinish","name":"04下载init完成","value":"cznk1a","desc":"04下载init完成"},"75":{"id":75,"key":"RocketLoad-normal-unpack","name":"05init解开","value":"rey4d9","desc":"05下载init解开"},"76":{"id":76,"key":"RocketLoad-normal-finish","name":"06init完成","value":"52cqjl","desc":"06下载init完成"}}','config'=>'','ani_name'=>'play','black'=>false],
  697. ];
  698. if(isset($config[$PackageName])){
  699. $config=$config[$PackageName];
  700. }else {
  701. $config=$config['default'];
  702. }
  703. $service = new IpCheck();
  704. $login_ip = IpLocation::getRealIp();
  705. $ipcheck=$service->ipCheck($login_ip,$PackageName,1);
  706. if($locale!='pt-BR'){
  707. // $ips=[$service->getIpLocation($login_ip),$service->iplogger($login_ip),$ipcheck];
  708. $lastRes=$service->lastLocation;
  709. Util::WriteLog('warnapp',compact('ipcheck','lastRes'));
  710. }
  711. //拉黑,不返回信息
  712. if(!$ipcheck){
  713. // $config=[];
  714. // $config['black']=true;
  715. }
  716. return $config;
  717. }
  718. }