|
|
@@ -7,6 +7,7 @@ use App\Helpers\PhoneHelper;
|
|
7
|
7
|
use App\Models\QrcodeRecord;
|
|
8
|
8
|
use Illuminate\Http\Request;
|
|
9
|
9
|
use Illuminate\Support\Facades\Http;
|
|
|
10
|
+use Illuminate\Support\Facades\Validator;
|
|
10
|
11
|
|
|
11
|
12
|
class QrcodeController extends Controller
|
|
12
|
13
|
{
|
|
|
@@ -58,12 +59,11 @@ class QrcodeController extends Controller
|
|
58
|
59
|
|
|
59
|
60
|
// Step 4: 寫入紀錄
|
|
60
|
61
|
QrcodeRecord::create([
|
|
61
|
|
- 'outlet_id' => $data['outletid'],
|
|
62
|
|
- 'outlet_name' => $data['name'],
|
|
63
|
|
-
|
|
64
|
|
- 'representative_id' => $encryptedPhone,
|
|
65
|
|
-
|
|
66
|
|
- 'qr_generated_at' => now(),
|
|
|
62
|
+ 'outlet_id' => $data['outletid'],
|
|
|
63
|
+ 'outlet_name' => $data['name'],
|
|
|
64
|
+ 'representative_id' => $encryptedPhone,
|
|
|
65
|
+ 'qr_generated_at' => now(),
|
|
|
66
|
+ 'source' => 'web',
|
|
67
|
67
|
]);
|
|
68
|
68
|
|
|
69
|
69
|
// Step 5: 回傳
|
|
|
@@ -78,4 +78,55 @@ class QrcodeController extends Controller
|
|
78
|
78
|
],
|
|
79
|
79
|
]);
|
|
80
|
80
|
}
|
|
|
81
|
+
|
|
|
82
|
+ public function generateFromOneApp(Request $request)
|
|
|
83
|
+ {
|
|
|
84
|
+ $validator = Validator::make($request->all(), [
|
|
|
85
|
+ 'token' => 'required|string',
|
|
|
86
|
+ ]);
|
|
|
87
|
+
|
|
|
88
|
+ if ($validator->fails()) {
|
|
|
89
|
+ return response()->json([
|
|
|
90
|
+ 'success' => false,
|
|
|
91
|
+ 'message' => $validator->errors()->first(),
|
|
|
92
|
+ ], 422);
|
|
|
93
|
+ }
|
|
|
94
|
+
|
|
|
95
|
+ // Step 1: 取得 user data
|
|
|
96
|
+ $step = Http::post(config('app.oneapp_base_url') . '/API/GetUserData.ashx', [
|
|
|
97
|
+ 'token' => $request->input('token'),
|
|
|
98
|
+ ]);
|
|
|
99
|
+
|
|
|
100
|
+ if (!$step->json('Success')) {
|
|
|
101
|
+ return response()->json(['success' => false, 'message' => 'GetUserData failed'], 400);
|
|
|
102
|
+ }
|
|
|
103
|
+
|
|
|
104
|
+ $data = $step->json();
|
|
|
105
|
+
|
|
|
106
|
+ // Step 2: 處理資料
|
|
|
107
|
+ $tel = $data['tel'];
|
|
|
108
|
+ $encryptedPhone = PhoneHelper::encrypt($tel);
|
|
|
109
|
+ $maskedPhone = substr($tel, 0, 2) . '*****' . substr($tel, 7);
|
|
|
110
|
+
|
|
|
111
|
+ // Step 3: 寫入紀錄
|
|
|
112
|
+ QrcodeRecord::create([
|
|
|
113
|
+ 'outlet_id' => $data['outletid'],
|
|
|
114
|
+ 'outlet_name' => $data['name'],
|
|
|
115
|
+ 'representative_id' => $encryptedPhone,
|
|
|
116
|
+ 'qr_generated_at' => now(),
|
|
|
117
|
+ 'source' => 'oneapp',
|
|
|
118
|
+ ]);
|
|
|
119
|
+
|
|
|
120
|
+ // Step 4: 回傳
|
|
|
121
|
+ return response()->json([
|
|
|
122
|
+ 'success' => true,
|
|
|
123
|
+ 'data' => [
|
|
|
124
|
+ 'otid' => $data['otid'],
|
|
|
125
|
+ 'outletid' => $data['outletid'],
|
|
|
126
|
+ 'name' => $data['name'],
|
|
|
127
|
+ 'representative_id' => $encryptedPhone,
|
|
|
128
|
+ 'representative_id_masked' => $maskedPhone,
|
|
|
129
|
+ ],
|
|
|
130
|
+ ]);
|
|
|
131
|
+ }
|
|
81
|
132
|
}
|