ソースを参照

添加喜马拉雅补传

liuzejian 2 年 前
コミット
75410b1ce9

+ 16 - 1
src/Services/LandingPage/ChargeFeedBack/QappRereport.php

@@ -9,6 +9,7 @@ use General\Models\User\User;
 use General\Services\LandingPage\Report;
 use General\Services\Report\BaseReport;
 use General\Services\Report\QappTxadqNewReport;
+use General\Services\Report\QappXimalayaReport;
 
 /**
  * qapp付费重传
@@ -56,7 +57,21 @@ class QappRereport extends Rereport
                         'content' => $result['result'] ? '手动回传' : $result['content'],
                     ]
                 );
-            } else {
+            }
+            else if($report_user->platform='ximalaya') {
+                $result = QappXimalayaReport::reportCharge($report_user);
+                ReportUserChargeRecord::updateOrCreate(
+                    [
+                        'order_no' => $order_no,
+                    ],
+                    [
+                        'uid' => $report_user->uid,
+                        'status' => $result['result'],
+                        'content' => $result['result'] ? '手动回传' : $result['content'],
+                    ]
+                );
+            }
+            else {
                 $instance = $this->reportInstance($report_user->platform);
                 $result =  $instance->reportCharge($report_user, $amount);
                 $charge = ReportUserChargeRecord::updateOrCreate(

+ 64 - 0
src/Services/Report/QappXimalayaReport.php

@@ -0,0 +1,64 @@
+<?php
+
+namespace General\Services\Report;
+
+use General\Models\Report\ReportUserBindRecord;
+use App\Consts\BaseConst;
+use GuzzleHttp\Client;
+use Illuminate\Support\Collection;
+
+/**
+ * 喜马拉雅数据上报
+ */
+class QappXimalayaReport {
+    public static function reportCharge(ReportUserBindRecord $user) :array
+    {
+        try{
+            $path = $user->link . '&event_type=2';
+            myLog('ximalaya-charge-buchuan')->info('充值回传:开始浅层转化目标[event_type=2],uid='. $user->uid);
+            $requestResult = self::sendRequest($path);
+            if($requestResult['result']) {
+                $deepPath = $user->link. '&deep_event_type=1';
+                myLog('ximalaya-charge-buchuan')->info('充值回传:开始深层转化目标[deep_event_type=1],uid='. $user->uid);
+                $deepRequestResult = self::sendRequest($deepPath);
+                return [
+                    'result' => $deepRequestResult->get('result', false),
+                    'content' => '',
+                    'query_params' => ['path' => $path, 'deep_path' => $deepPath],
+                ];
+            }
+            return [
+                'result' => $requestResult->get('result', false),
+                'content' => '',
+                'query_params' => ['path' => $path],
+            ];
+        }catch (\Exception $exception) {
+            myLog('ximalaya-charge-buchuan')->error('回传充值出现异常:'. $exception->getMessage(), $exception->getTrace());
+            return [
+                'result' => false,
+                'content' => '回传充值出现异常',
+                'query_params' => []
+            ];
+        }
+
+    }
+
+    private function sendRequest($path) :Collection{
+        myLog('ximalaya-charge-buchuan')->info('请求喜马拉雅服务器的参数:', [
+            'path' => $path,
+        ]);
+        $httpClient = new Client(['timeout' => 4]);
+        $httpResponse = $httpClient->get($path);
+        $result = ($httpResponse->getStatusCode() == 200);
+        $content = $httpResponse->getBody()->getContents();
+        $resultType = (\json_decode($content, true))['type'] ?? '';
+        $result = $result && ('success' == strtolower($resultType));
+        myLog('ximalaya-charge-buchuan')->info('请求喜马拉雅服务器的结果:', [
+            'request_url' => $path,
+            'reponse_status' => $httpResponse->getStatusCode(),
+            'response_content' => $content,
+            'result' => $result,
+        ]);
+        return collect(compact('result', 'content'));
+    }
+}