crontabVipLog.php 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. <?php
  2. if (substr(PHP_SAPI_NAME(), 0, 3) !== 'cli') {
  3. die("The program runs only in CLI mode!");
  4. }
  5. date_default_timezone_set('UTC');
  6. $sid =$lid =1;
  7. include_once dirname(__FILE__) . "/crontab.inc.php";
  8. include_once dirname(__FILE__) . "/../com.php";
  9. set_time_limit(0);
  10. $tb = otable::vipPaymentLog();
  11. $now = time();
  12. $date = empty($argv[1]) ? date('Ymd', $now - 86400) : $argv[1];
  13. $dirName = __DIR__. "/../deBUG/logs2/{$date}/";
  14. $logFile = $dirName. "vip.log";
  15. if(file_exists($logFile)){
  16. echo $logFile . ':';
  17. $insertArr = [];
  18. $f = fopen($logFile, 'r');
  19. while(!feof($f)){
  20. $line = fgets($f);
  21. $line = @json_decode($line, true);
  22. if(empty($line['message']['data']))continue;
  23. $line['msg-data'] = @base64_decode($line['message']['data']);
  24. $line['msg-data'] = @json_decode($line['msg-data'], true);
  25. $insertArr[] = [
  26. 'uid' => $line['msg-data']['uid'] ?? 0,
  27. 'data' => json_encode($line),
  28. 'purchaseToken' => $line['msg-data']['subscriptionNotification']['purchaseToken'] ?? ($line['msg-data']['oneTimeProductNotification']['purchaseToken'] ?? ''),
  29. 'datetime' => empty($line['msg-data']['eventTimeMillis']) ? 0 : intval($line['msg-data']['eventTimeMillis']/1000),
  30. ];
  31. }
  32. fclose($f);
  33. $sql = funs::db_intsertArrSQL($tb, ['uid','data','purchaseToken','datetime'], $insertArr);
  34. $res = oo::commonOprDb('api_log')->query($sql);
  35. var_dump($res);
  36. echo PHP_EOL;
  37. }
  38. $logFile = $dirName. "paymentLog.log";
  39. if(file_exists($logFile)) {
  40. echo $logFile . ':';
  41. $insertArr = [];
  42. $f = fopen($logFile, 'r');
  43. while (!feof($f)) {
  44. $line = fgets($f);
  45. $arr = @json_decode($line, true);
  46. if (empty($arr)) continue;
  47. if(!empty($arr['actExtraData']) && is_string($arr['actExtraData'])){
  48. $arr['actExtraData'] = @json_decode($arr['actExtraData'], true);
  49. }
  50. $arr['signedData'] = @json_decode(@base64_decode($arr['signedData']), true);
  51. $arr['extraData'] = @json_decode(@base64_decode($arr['extraData']), true);
  52. $insertArr[] = [
  53. 'uid' => $arr['uid'] ?? 0,
  54. 'data' => json_encode($arr),
  55. 'purchaseToken' => $arr['subscriptionNotification']['purchaseToken'] ?? '',
  56. 'datetime' => empty($arr['time']) ? 0 : intval($arr['time'] / 1000),
  57. ];
  58. }
  59. fclose($f);
  60. $sql = funs::db_intsertArrSQL($tb, ['uid','data','purchaseToken','datetime'], $insertArr);
  61. $res = oo::commonOprDb('api_log')->query($sql);
  62. var_dump($res);
  63. echo PHP_EOL;
  64. }