Test.php 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529
  1. <?php
  2. /**
  3. * 关于我们等页面 控制器
  4. * Created by PhpStorm.
  5. * User: Administrator
  6. * Date: 2019/9/29
  7. * Time: 14:11
  8. */
  9. namespace app\home\controller;
  10. use app\common\model\Gift as GiftModel;
  11. use app\api\complex\Naozhewan;
  12. use app\api\complex\Zhaosy;
  13. use app\common\model\Pay;
  14. use app\api\complex\Jiuqu;
  15. use app\api\controller\v1\Role;
  16. use app\api\service\SpecialService;
  17. use app\common\library\AirwallexPay;
  18. use app\common\library\HuaweiObs;
  19. use app\common\library\IpLimit;
  20. use app\common\library\MakeReportGo;
  21. use app\common\logic\PayCallback;
  22. use app\service\PayService;
  23. use app\service\WelfareService;
  24. use think\Cache;
  25. use think\Config;
  26. use think\Controller;
  27. use think\Env;
  28. use think\Request;
  29. class Test extends Controller
  30. {
  31. public function getIdcard()
  32. {
  33. vendor('authSdk.Authentication', '.class.php');
  34. $auth = new \Authentication();
  35. //{"ai":"100000000000000001","name":"某一一","idNum":"110000190101010001"}
  36. //{"ai":"200000000000000001", "name":"某二一", "idNum":"110000190201010009"}
  37. $result = $auth->check('1101999999', '100000000000000001', '某一一', '110000190101010001');
  38. // {"errcode":0,"errmsg":"OK","data":{"result":{"status":0,"pi":"1fffbjzos82bs9cnyj1dna7d6d29zg4esnh99u"}}}
  39. // $result = $auth->check('1101999999', '200000000000000001', '某二一', '110000190201010009');
  40. //{"errcode":0,"errmsg":"OK","data":{"result":{"status":1,"pi":null}}}
  41. //{"ai":"100000000000000001","name":"某一一","idNum":"110000190101010001"}
  42. // $result = $auth->query($bizid = '1101999999', $ai = '100000000000000001');
  43. //{"errcode":0,"errmsg":"OK","data":{"result":{"status":0,"pi":"1fffbjzos82bs9cnyj1dna7d6d29zg4esnh99u"}}}
  44. //{"ai":"200000000000000001", "name":"某二一", "idNum":"110000190201010009"}
  45. // $result = $auth->query($bizid = '1101999999', $ai = '200000000000000001');
  46. //{"errcode":0,"errmsg":"OK","data":{"result":{"status":1,"pi":null}}}
  47. //{"ai":" 300000000000000001"}
  48. // $result = $auth->query($bizid = '1101999999', $ai = ' 300000000000000001');
  49. //{"errcode":0,"errmsg":"OK","data":{"result":{"status":2,"pi":null}}}
  50. // 上线
  51. // $result = $auth->loginout($bizid = '1101999999','123',1,2, '123', '');
  52. // 下线
  53. // $result = $auth->loginout($bizid = '1101999999','123',0,0, '', '1fffbjzos82bs9cnyj1dna7d6d29zg4esnh99u');
  54. echo json_encode($result);
  55. }
  56. public function pay()
  57. {
  58. $pay = new AirwallexPay();
  59. $return_url = 'https://www.46yx.com/coin_airwallex/recharge.html';
  60. $pay->getToken();
  61. // $pay->createOrder();
  62. $s = $pay->createOrder(0.01, 'WL' . time(), $return_url);
  63. var_dump($s);
  64. die();
  65. }
  66. public function test()
  67. {
  68. // $data = [
  69. // "cp_order"=>"1079005143013437394030b59",
  70. // "extra"=>"123123",
  71. // "game_id"=>"6344",
  72. // "money"=>"10.00",
  73. // "pay_id"=>"g1589430140836000070",
  74. // "role_id"=>"437505",
  75. // "server_id"=>"6",
  76. // "time"=>"1589437933",
  77. // "to_uid"=>"100503",
  78. // "to_user"=>"rechargetest",
  79. // "user_id"=>"100503",
  80. // "username"=>"rechargetest",
  81. // "sign"=>"a163a9524b1ade5299da1260639ae80e",
  82. // ];
  83. // $polyChannelGame['param'] = '{"appid":14043,"appkey":"a23e431eb902f23d87659eba3bec8d48"}';
  84. // var_dump((new Zhaosy())->paySign($data,$polyChannelGame));die();
  85. // var_dump( auth_code(123456789, "ENCODE", AUTH_KEY));die();
  86. //var_dump( auth_code("Oy7g5Xb8l6k9G6/d9YJyMw67u1XUYZux4hb3M95CFfEAdyuZvfAaUr77vMCigUeoaUTQh+VDWNBJL8SExcIO5BH+f1PX", "DECODE", AUTH_KEY));die();
  87. // $str = "orderid=" . urlencode('WL16777361765118156666') . "&username=" . urlencode('yyh001') . "&gameid=" . '211' . "&roleid=" . urlencode('2871326237425402990') . "&serverid=" . urlencode('10201') . "&paytype=" . urlencode('old-zfb-wap') . "&amount=" . '6' . "&paytime=" . '1677736176' . "&attach=" . urlencode('M2023030213493237033');
  88. // $param = $str . "&appkey=" . urlencode('2ffcdd147a0e12eb96eddb192b81d309');
  89. // var_dump($param);
  90. // $md5params = md5($param);
  91. // $params = $str . "&sign=" . urlencode($md5params);
  92. //var_dump($params);die();
  93. //var_dump(getMonthRange('2023-02',false));die();
  94. // var_dump(isFrozenOption(3558, 178,'register'));
  95. // var_dump(isFrozenOption(3558, 178, 'member_login'));die();
  96. // var_dump( auth_code('Oy7g5Xb8l6k9G6/e8IVyYwnrtV/cPcqxtRz1Mt9KFfE', "DECODE", AUTH_KEY));die();
  97. $data = file_get_contents('php://input');
  98. // var_dump( $data,auth_code($data,"DECODE",AUTH_KEY));die();
  99. $decryptStr = $this->opensslDecrypt($data, 'erecNF1vp5Qphd8e');
  100. echo $decryptStr;
  101. die();
  102. }
  103. public function getTokens()
  104. {
  105. $data = input('data');
  106. var_dump(auth_code($data, "DECODE", Env::get('auth_key')));
  107. }
  108. public function getToken()
  109. {
  110. $userinfo['id'] = 123231;
  111. $userinfo['username'] = 'rfsdf';
  112. $gameid = '172';
  113. $sub_username = 'cdscdsfsf';
  114. $token_random = '3232323';
  115. $token = auth_code($userinfo['id'] . '|' . $userinfo['username'] . '|' . $gameid . '|' . $sub_username . '|' . $token_random . '|sdk', "ENCODE", Env::get('auth_key'));
  116. var_dump($token);
  117. var_dump(explode('|', auth_code($token, "DECODE", Env::get('auth_key'))));
  118. die();
  119. }
  120. public function specialCallback()
  121. {
  122. $callback_params = 'orderid=WL16613361248395341449&username=yyh001&gameid=158&roleid=78812993478984368&serverid=70&paytype=wx-wap&amount=68&paytime=1661336124&attach=221720220824181521945710673&sign=61bd84c842a36eb8d9d698b6f76ff597';
  123. (new PayCallback())->specialCallback($callback_params);
  124. }
  125. private function opensslDecrypt($data, $key, $method = 'AES-128-ECB')
  126. {
  127. try {
  128. $str = openssl_decrypt($data, $method, $key);
  129. } catch (\Exception $e) {
  130. $this->jsonResult('', 0, '接口参数解密失败' . $e->getMessage() . ',请检查参数格式!');
  131. }
  132. return $str;
  133. }
  134. public function download()
  135. {
  136. $makeReport = new MakeReportGo();
  137. $sql = 'test' . time();
  138. $makeReport->addTask('admin.memberCoinGetList', $sql, 1);
  139. }
  140. public function wefare()
  141. {
  142. $wefareService = new WefareService();
  143. $wefare = $wefareService->wefare(9, 187, 0);
  144. echo json_encode($wefare);
  145. exit();
  146. $game_id = 187;
  147. $grant_type_id = 8;
  148. $server_id = 2113;
  149. $serverid = 0;
  150. $welfare = model('Welfare')->whereRaw(sprintf('FIND_IN_SET(%s,game_id)', $game_id))
  151. ->where(['grant_type_id' => $grant_type_id])
  152. // ->where(['id' => 19])
  153. ->order('id desc')->find();
  154. $wefareService = new WefareService();
  155. if (!$welfare) {
  156. echo 'no welfare';
  157. exit();
  158. }
  159. $welfareGiftType = model('welfareGiftType')->where(['id' => $welfare['welfare_gift_type_id']])->find();
  160. if (!$welfareGiftType) {
  161. echo 'no welfareGiftType';
  162. exit();
  163. }
  164. $game_id = ['in', [187, 188]];
  165. $channel_id = ['in', [5354, 5434, 3550]];
  166. $start_time = strtotime(date('Y-m-d'));
  167. $end_time = strtotime(date('Y-m-d 23:59:59'));
  168. if (in_array($grant_type_id, [3, 4, 5, 8, 9])) {
  169. if ($welfareGiftType['type_id'] == 1) {
  170. switch ($welfareGiftType['time_type']) {
  171. case 1: // 全部
  172. $start_time = '';
  173. $end_time = '';
  174. break;
  175. case 2: //当日
  176. $start_time = strtotime(date('Y-m-d'));
  177. $end_time = strtotime(date('Y-m-d 23:59:59'));
  178. break;
  179. case 3: //周
  180. $start_time = mktime(0, 0, 0, date("m"), date("d") - date("w") + 1, date("Y"));
  181. $end_time = mktime(23, 59, 59, date("m"), date("d") - date("w") + 7, date("Y"));
  182. break;
  183. case 4: //月
  184. $start_time = mktime(0, 0, 0, date("m"), 1, date("Y"));
  185. $end_time = mktime(23, 59, 59, date("m"), date("t"), date("Y"));
  186. break;
  187. case 5: //季度
  188. $season = ceil((date('n')) / 3);
  189. $start_time = mktime(0, 0, 0, $season * 3 - 3 + 1, 1, date('Y'));
  190. $end_time = mktime(23, 59, 59, $season * 3, date('t', mktime(0, 0, 0, $season * 3, 1, date("Y"))), date('Y'));
  191. break;
  192. case 6: //年
  193. $start_time = strtotime(date('Y-01-01 00:00:00', time()));
  194. $end_time = strtotime(date('Y-12-31 23:59:59', time()));
  195. break;
  196. case 7: //自定义
  197. $start_time = strtotime(date('Y-m-d', $welfareGiftType['start_time']));
  198. $end_time = strtotime(date('Y-m-d 23:59:59', $welfareGiftType['end_time']));
  199. break;
  200. }
  201. } else {
  202. echo 'welfareGiftType error';
  203. exit();
  204. }
  205. } elseif (in_array($grant_type_id, [6])) {
  206. $gameServer = model('GameServer')->where(['game_id' => $game_id, 'id' => $server_id])->find();
  207. if (!$gameServer) {
  208. echo 'gameServer error';
  209. exit();
  210. }
  211. $serverid = $gameServer['serverid'];
  212. $start_time = strtotime(date('Y-m-d', $gameServer['create_time']));
  213. $end_time = strtotime(date('Y-m-d 23:59:59', $gameServer['create_time'] + 84600 * 7));
  214. } elseif (in_array($grant_type_id, [7])) {
  215. $start_time = '';
  216. $end_time = '';
  217. }
  218. $amount = $welfareGiftType['recharge_amount'];
  219. $members = $wefareService->getUserlistByGrantTypeGameChannelId($grant_type_id, $welfare, $game_id, $channel_id, $serverid, $start_time, $end_time, $amount, []);
  220. var_dump($members);
  221. $res = 'null';
  222. if ($members) {
  223. $res = $wefareService->saveWelfareGrant($members, $welfare, $grant_type_id);
  224. }
  225. var_dump($res);
  226. }
  227. public function redis()
  228. {
  229. exit("xxxx");
  230. $redis = new \Redis();
  231. $redis->connect(Env::get('redis.host', '127.0.0.1'), Env::get('redis.port', 6379));
  232. if (Env::get('redis.password', '')) {
  233. $redis->auth(Env::get('redis.password', ''));
  234. }
  235. // $redis->connect('123.60.79.32', 8887);
  236. //
  237. // $redis->auth('Njqfwlkj1221');
  238. $redis->select(0);
  239. $iterator = null;
  240. for ($i = 0; $i < 5; $i++) {
  241. $res = $redis->scan($iterator, "aoyousdk_*", 10000);
  242. var_dump($iterator);
  243. var_dump($res);
  244. // if($res){
  245. // $tmp = [];
  246. // foreach ($res as $k=>$v){
  247. //// if( strlen(substr($v,9,32)) == 32 && $redis->get($v) == 1){
  248. //
  249. // $str = str_ireplace('aoyousdk_', '', $v);
  250. //// var_dump(preg_match("/^[a-z\d]*$/i",$str));
  251. // if( strlen($str) == 32 && preg_match("/^[a-z\d]*$/i",$str)){
  252. // $tmp[] = $v;
  253. // }
  254. // }
  255. // if($tmp){var_dump($tmp);
  256. //// $redis->del($tmp);
  257. // }
  258. // }
  259. // var_dump($res);
  260. }
  261. }
  262. public function ip()
  263. {
  264. $ip = '68.205.25.162';
  265. // $ip = '125.77.44.192';
  266. $res = (new IpLimit())->validateIp($ip);
  267. var_dump($res);
  268. die();
  269. }
  270. public function clear()
  271. {
  272. // $parent_list = model('Common/Channel')->getParentChannel();
  273. // Cache::clear('channel_cache');
  274. $welfareGiftType['time_type'] = 6;
  275. $data['cycle_id'] = 2;
  276. switch ($welfareGiftType['time_type']) {
  277. case 1: // 全部
  278. $start_time = '';
  279. $end_time = '';
  280. break;
  281. case 2: //当日
  282. if ($data['cycle_id'] == 1) { //今日
  283. $start_time = strtotime(date('Y-m-d'));
  284. $end_time = strtotime(date('Y-m-d 23:59:59'));
  285. } else { //昨日
  286. $start_time = strtotime(date("Y-m-d")) - 86400;
  287. $end_time = strtotime(date('Y-m-d')) - 1;
  288. }
  289. break;
  290. case 3: //周
  291. if ($data['cycle_id'] == 1) { //本周
  292. $start_time = mktime(0, 0, 0, date("m"), date("d") - date("w") + 1, date("Y"));
  293. $end_time = mktime(23, 59, 59, date("m"), date("d") - date("w") + 7, date("Y"));
  294. } else { //上周
  295. $start_time = mktime(0, 0, 0, date("m"), date("d") - date("w") + 1 - 7, date("Y"));
  296. $end_time = mktime(23, 59, 59, date("m"), date("d") - date("w") + 7 - 7, date("Y"));
  297. }
  298. break;
  299. case 4: //月
  300. if ($data['cycle_id'] == 1) { //本月
  301. $start_time = mktime(0, 0, 0, date("m"), 1, date("Y"));
  302. $end_time = mktime(23, 59, 59, date("m"), date("t"), date("Y"));
  303. } else { //上月
  304. $start_time = mktime(0, 0, 0, date("m") - 1, 1, date("Y"));
  305. $end_time = mktime(23, 59, 59, date("m"), 0, date("Y"));
  306. }
  307. break;
  308. case 5: //季度
  309. if ($data['cycle_id'] == 1) { //本季度
  310. $season = ceil((date('n')) / 3);
  311. $start_time = mktime(0, 0, 0, $season * 3 - 3 + 1, 1, date('Y'));
  312. $end_time = mktime(23, 59, 59, $season * 3, date('t', mktime(0, 0, 0, $season * 3, 1, date("Y"))), date('Y'));
  313. } else { //上季度
  314. $season = ceil((date('n')) / 3) - 1;
  315. $start_time = mktime(0, 0, 0, $season * 3 - 3 + 1, 1, date('Y'));
  316. $end_time = mktime(23, 59, 59, $season * 3, date('t', mktime(0, 0, 0, $season * 3, 1, date("Y"))), date('Y'));
  317. }
  318. break;
  319. case 6: //年
  320. if ($data['cycle_id'] == 1) { //今年
  321. $start_time = strtotime(date('Y-01-01 00:00:00', time()));
  322. $end_time = strtotime(date('Y-12-31 23:59:59', time()));
  323. } else { // 去年
  324. $start_time = strtotime(date('Y-01-01 00:00:00', strtotime('-1 year')));
  325. $end_time = strtotime(date('Y-12-31 23:59:59', strtotime('-1 year')));
  326. }
  327. break;
  328. case 7: //自定义
  329. $start_time = strtotime(date('Y-m-d', $welfareGiftType['start_time']));
  330. $end_time = strtotime(date('Y-m-d 23:59:59', $welfareGiftType['end_time']));
  331. break;
  332. }
  333. var_dump(date("Y-m-d H:i:s", $start_time), date("Y-m-d H:i:s", $end_time));
  334. }
  335. public function welfare()
  336. {
  337. if (!input('id')) {
  338. exit(0);
  339. }
  340. $makeReportGo = new MakeReportGo();
  341. $makeReportGo->welfareTask('welfareList', input('id'));
  342. }
  343. public function temporary()
  344. {
  345. if (temporary()) {
  346. echo '禁止登录';
  347. die();
  348. }
  349. }
  350. public function welfareRongyao()
  351. {
  352. $data = [
  353. 'appId' => 'fbss398ab6x5s33xs88edfe5a22',
  354. 'userId' => 'yyh001',
  355. 'orderNum' => 'FL' . time(),
  356. 'propData' => '11',
  357. 'serverId' => '47',
  358. 'roleId' => '52917295621615179',
  359. 'Time' => time(),
  360. ];
  361. $serverKey = 'dfsjssfl83943x434x3bdf5x615fc704';
  362. $data['Sign'] = MD5($data['appId'] . $data['serverId'] . $data['roleId'] . $data['userId'] . $data['propData'] . $data['orderNum'] . $data['Time'] . $serverKey);
  363. $url = 'https://api.gamedreamsky.com/gitem-yiyou/welfare';
  364. var_dump($data);
  365. $result = curl($url, $data);
  366. var_dump($result);
  367. }
  368. public function welfareApi()
  369. {
  370. $orderid = 'WL16777420663228642648';
  371. $payModel = new Pay;
  372. $payInfo = $payModel->field('id,status,amount,real_amount,userid,gameid,channel_id,ip')->where(['orderid' => $orderid])->find();
  373. cache('PayNotify:updateOrder:' . $orderid, $payInfo, 300);
  374. $callback_params = [
  375. 'orderid' => $orderid,
  376. 'gameid' => 212,
  377. 'amount' => 6,
  378. ];
  379. (new SpecialService())->welfare($callback_params);
  380. }
  381. public function time()
  382. {
  383. $formdata = '%Y-%m';
  384. var_dump(date("Y-m-d", time() - 86400 * 220));
  385. for ($i = 1; $i <= 7; $i++) {
  386. var_dump(date("Y-m", mktime(0, 0, 0, date("m") + ($i - 7), 01, date("Y"))));
  387. $weekormonth[$i]['date'] = date('Y-m', strtotime('+' . $i - 7 . ' month'));
  388. $weekormonth[$i]['流水'] = 0;
  389. }
  390. var_dump($weekormonth);
  391. }
  392. public function gettime()
  393. {
  394. $welfareGiftType['time_type'] = 6;
  395. $data['cycle_id'] = 2;
  396. $welfare['month_type'] = 2;
  397. list($a, $b) = (new WelfareService())->getTime($welfareGiftType, $data, $welfare);
  398. var_dump(date('Y-m-d H:i:s', $a), date('Y-m-d H:i:s', $b));
  399. }
  400. public function getSpecialParam()
  401. {
  402. $data = [
  403. 'channelToken' => 'ZDE5YjJRZFRsU2k4YzVIL1FVbHhtZm9kSlM3WUU5bjRKMi9OWTJFTVlDQm5oLy9oZ1pIZ3c0YmdiMEY2K0tYS3dLWXc5bnNtdUgvZFdWdGU0dFU5RUxId3ZreDRnZmQ3NzZwb0p2NTc3aG9FaUtWWG1OVQ',
  404. ];
  405. $polyChannelGame = ['param' => '{"appid":"1455f6eac7838b3c2ab6191906003f51","appkey":"86fea77719a85dfbaf1d609e054d318b","serverkey":"dbe847357fa6a91c4b2bf2dc472245d8"}'];
  406. $a = (new Naozhewan())->getSpecialParam($data, $polyChannelGame);
  407. var_dump($a);
  408. }
  409. public function getgift()
  410. {
  411. $this->getGiftData(10);
  412. }
  413. public function getGiftData($game_id)
  414. {
  415. $nowtime = NOW_TIMESTAMP;
  416. //$yearAgo = strtotime("-1 year");
  417. $GiftModel = new GiftModel();
  418. $giftList = $GiftModel->alias('gift')
  419. ->field('gift.id,gift.title,gift.consume,gift.content,gift.total,gift.used,gift.endtime,info.mobileicon')
  420. ->join('cy_gameinfo info', 'info.game_id = gift.gameid', 'left')
  421. ->where(['gift.isdelete' => 0])
  422. ->where(function ($query) use ($game_id) {
  423. if (isset($game_id) && !empty($game_id)) {
  424. $query->whereRaw(sprintf('FIND_IN_SET(%s,gameid)', $game_id));
  425. }
  426. })
  427. ->where('gift.starttime', '<=', $nowtime)
  428. ->where('gift.endtime', '>=', $nowtime)
  429. ->order('gift.create_time desc')
  430. ->paginate(10);
  431. if (!empty($giftList)) { // 标识玩家已领取的礼包
  432. foreach ($giftList as &$gift) {
  433. // 剩余可领的数量占比
  434. $gift['percent'] = round(($gift['total'] - $gift['used']) / $gift['total'], 2) * 100;
  435. //$gift['image'] = STATIC_DOMAIN.$gift['image'];
  436. }
  437. }
  438. var_dump($giftList);
  439. }
  440. public function getPay()
  441. {
  442. $pay = new PayService();
  443. $notify_url = Config::get('alipayAop')['notify_url'];
  444. $wxpayh5_param = $pay->getAlipayAopParam(time(), 1, '测试', '125.77.44.84', $notify_url);
  445. var_dump($wxpayh5_param);
  446. }
  447. }