QappXimalayaReport.php 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. <?php
  2. namespace General\Services\Report;
  3. use General\Models\Report\ReportUserBindRecord;
  4. use App\Consts\BaseConst;
  5. use GuzzleHttp\Client;
  6. use Illuminate\Support\Collection;
  7. /**
  8. * 喜马拉雅数据上报
  9. */
  10. class QappXimalayaReport {
  11. public static function reportCharge(ReportUserBindRecord $user) :array
  12. {
  13. try{
  14. $path = $user->link . '&event_type=2';
  15. myLog('ximalaya-charge-buchuan')->info('充值回传:开始浅层转化目标[event_type=2],uid='. $user->uid);
  16. $requestResult = self::sendRequest($path);
  17. if($requestResult['result']) {
  18. $deepPath = $user->link. '&deep_event_type=1';
  19. myLog('ximalaya-charge-buchuan')->info('充值回传:开始深层转化目标[deep_event_type=1],uid='. $user->uid);
  20. $deepRequestResult = self::sendRequest($deepPath);
  21. return [
  22. 'result' => $deepRequestResult->get('result', false),
  23. 'content' => '',
  24. 'query_params' => ['path' => $path, 'deep_path' => $deepPath],
  25. ];
  26. }
  27. return [
  28. 'result' => $requestResult->get('result', false),
  29. 'content' => '',
  30. 'query_params' => ['path' => $path],
  31. ];
  32. }catch (\Exception $exception) {
  33. myLog('ximalaya-charge-buchuan')->error('回传充值出现异常:'. $exception->getMessage(), $exception->getTrace());
  34. return [
  35. 'result' => false,
  36. 'content' => '回传充值出现异常',
  37. 'query_params' => []
  38. ];
  39. }
  40. }
  41. private function sendRequest($path) :Collection{
  42. myLog('ximalaya-charge-buchuan')->info('请求喜马拉雅服务器的参数:', [
  43. 'path' => $path,
  44. ]);
  45. $httpClient = new Client(['timeout' => 4]);
  46. $httpResponse = $httpClient->get($path);
  47. $result = ($httpResponse->getStatusCode() == 200);
  48. $content = $httpResponse->getBody()->getContents();
  49. $resultType = (\json_decode($content, true))['type'] ?? '';
  50. $result = $result && ('success' == strtolower($resultType));
  51. myLog('ximalaya-charge-buchuan')->info('请求喜马拉雅服务器的结果:', [
  52. 'request_url' => $path,
  53. 'reponse_status' => $httpResponse->getStatusCode(),
  54. 'response_content' => $content,
  55. 'result' => $result,
  56. ]);
  57. return collect(compact('result', 'content'));
  58. }
  59. }