|
@@ -40,6 +40,16 @@ class TelegramWebHook extends Controller
|
|
|
$update = $telegram->getWebhookUpdate(); // 获取更新数据
|
|
|
$update->callbackQuery;
|
|
|
if ($update->has('callback_query')) {
|
|
|
+ $json['type'] = 'callback_query';
|
|
|
+ $callbackQuery = $update->callbackQuery;
|
|
|
+ $json['update'] = $callbackQuery;
|
|
|
+ $message = $callbackQuery->message;
|
|
|
+ $from = $callbackQuery->from;
|
|
|
+ $data = $callbackQuery->data; // 获取 callback_data
|
|
|
+ $m = new Message();
|
|
|
+ $m->json = $data;
|
|
|
+ $m->save();
|
|
|
+ Util::delCache($message->chat->id);
|
|
|
Log::error('Telegram 回调数据(JSON): ' . json_encode($update, JSON_UNESCAPED_UNICODE));
|
|
|
|
|
|
}else {
|
|
@@ -48,8 +58,65 @@ class TelegramWebHook extends Controller
|
|
|
$message = $update['message'];
|
|
|
$chatId = $message['chat']['id'];
|
|
|
$messageId = $message['message_id'];
|
|
|
+ DB::beginTransaction();
|
|
|
+ try {
|
|
|
+ $m = new Message();
|
|
|
+ $m->json = json_encode($update);
|
|
|
+ $m->save();
|
|
|
+
|
|
|
+ //用户发送图片,结算截图
|
|
|
+ if (isset($message['photo'])) {
|
|
|
+ $stepStatus = Cache::get(get_step_key($chatId), -1);
|
|
|
+ $stepStatus = intval($stepStatus);
|
|
|
+ // //结算截图
|
|
|
+ // if ($stepStatus === StepStatus::INPUT_IMAGE) {
|
|
|
+ // $photo = $message['photo'][count($message['photo']) - 1];
|
|
|
+ // $res = (new SettlementService())->photo($photo, $chatId);
|
|
|
+ // if ($res) $telegram->sendMessage($res);
|
|
|
+ // }//
|
|
|
+ // //充值截图
|
|
|
+ // else if ($stepStatus === StepStatus::INPUT_TOP_UP_IMAGE) {
|
|
|
+ // $photo = $message['photo'][count($message['photo']) - 1];
|
|
|
+ // $res = TopUpService::photo($chatId, $photo);
|
|
|
+ // if (isset($res['message_id'])) $telegram->editMessageText($res);
|
|
|
+ // else $telegram->sendMessage($res);
|
|
|
+ // }
|
|
|
+
|
|
|
+ } //用户发送了消息
|
|
|
+ else if (isset($message['text'])) {
|
|
|
+ $text = $message['text'];
|
|
|
+ if ($message['chat']['type'] === 'private') {
|
|
|
+ switch ($text) {
|
|
|
+ case "/start":
|
|
|
+ Util::delCache($chatId);
|
|
|
+ $user = User::where('member_id', $chatId)->first();
|
|
|
+ if (!$user) {
|
|
|
+ $user = new User();
|
|
|
+ $user->member_id = $chatId;
|
|
|
+ }
|
|
|
+ $user->first_name = $message['chat']['first_name'];
|
|
|
+ $user->save();
|
|
|
+ //给每个用户生成一个专属的USDT钱包
|
|
|
+ WalletService::getUserWallet($chatId);
|
|
|
|
|
|
- Log::error('Telegram 回调数据(JSON): ' . json_encode($update, JSON_UNESCAPED_UNICODE));
|
|
|
+ $username = config('services.telegram.username');
|
|
|
+ $telegram->sendMessage(['chat_id' => $chatId, 'text' => "你好,请选择功能菜单"]);
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ //输入结算分数
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ } catch (\Exception $e) {
|
|
|
+ DB::rollBack();
|
|
|
+ $m = new Message();
|
|
|
+ $m->json = json_encode([
|
|
|
+ 'line' => $e->getLine(),
|
|
|
+ 'message' => $e->getMessage()
|
|
|
+ ]);
|
|
|
+ $m->save();
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
}
|
|
@@ -57,6 +124,12 @@ class TelegramWebHook extends Controller
|
|
|
}
|
|
|
|
|
|
|
|
|
+ public function processChatMessage($chatId, $messageId, $message, $from)
|
|
|
+ {
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
public function handleMessage(Request $request)
|
|
|
{
|
|
|
|