diff --git a/FlyCube/Api/Controller/PayController.class.php b/FlyCube/Api/Controller/PayController.class.php index 3bde13b..2dcca99 100644 --- a/FlyCube/Api/Controller/PayController.class.php +++ b/FlyCube/Api/Controller/PayController.class.php @@ -6,7 +6,6 @@ use Yansongda\Pay\Pay; use PhpMqtt\Client\MqttClient; use PhpMqtt\Client\Exceptions\MqttClientException; use PhpMqtt\Client\ConnectionSettings; -use PhpMqtt\Client\Message; class PayController extends PublicController { @@ -83,42 +82,14 @@ class PayController extends PublicController public function notifyCallback() { - $server = 'www.szdot.top'; // MQTT 代理地址 - $port = 1883; // MQTT 代理端口 - $clientId = 'php-mqtt-client'; // 客户端 ID - $username = 'admin'; // 用户名(如果需要) - $password = '123456'; // 密码(如果需要) + $pay = Pay::wechat($this->config); try { - // 创建连接设置对象 - $settings = (new ConnectionSettings)->setUsername($username)->setPassword($password); - // 实例化 MQTT 客户端 - $mqtt = new MqttClient($server, $port, $clientId); - // 连接到 MQTT 代理 - $mqtt->connect($settings); - // 检查是否连接成功 - if ($mqtt->isConnected()) { - echo "连接成功"; - // 发布消息到指定的主题 ps:主题 信息 qos - $mqtt->publish('demo', 'Hello MQTT', 0); - // 断开连接 - $mqtt->disconnect(); - echo "断开连接"; - } else { - echo "连接失败"; - } - } catch (MqttClientException $e) { //连接失败 - echo "Could not connect to MQTT broker: " . $e->getMessage(); + $data = $pay->callback(); // 是的,验签就这么简单! + } catch (\Exception $e) { + // $e->getMessage(); } - // $pay = Pay::wechat($this->config); - - // try { - // $data = $pay->callback(); // 是的,验签就这么简单! - // } catch (\Exception $e) { - // // $e->getMessage(); - // } - - // return $pay->success(); + $this->publish('demo', $data); } } diff --git a/FlyCube/Api/Controller/PublicController.class.php b/FlyCube/Api/Controller/PublicController.class.php index 12b3712..c6c73ef 100644 --- a/FlyCube/Api/Controller/PublicController.class.php +++ b/FlyCube/Api/Controller/PublicController.class.php @@ -7,6 +7,10 @@ use Think\Controller; use Firebase\JWT\JWT; use Firebase\JWT\Key; +use PhpMqtt\Client\MqttClient; +use PhpMqtt\Client\Exceptions\MqttClientException; +use PhpMqtt\Client\ConnectionSettings; + class PublicController extends Controller { protected $openid; // 用户openid @@ -103,4 +107,37 @@ class PublicController extends Controller return $phoneNumber; } } + /** + * @description: 连接mqtt服务器 并向指定主题发布信息 + * @param string $topic mqtt主题 + * @param string $msg 要发布的主题 + */ + protected function publish($topic, $msg) + { + $server = C('mqtt')['server']; // MQTT 代理地址 + $port = C('mqtt')['port']; // MQTT 代理端口 + $clientId = C('mqtt')['client_id']; // 客户端 ID + $username = C('mqtt')['username']; // 用户名(如果需要) + $password = C('mqtt')['password']; // 密码(如果需要) + + try { + // 创建连接设置对象 + $settings = (new ConnectionSettings)->setUsername($username)->setPassword($password); + // 实例化 MQTT 客户端 + $mqtt = new MqttClient($server, $port, $clientId); + // 连接到 MQTT 代理 + $mqtt->connect($settings); + // 检查是否连接成功 + if ($mqtt->isConnected()) { + // 发布消息到指定的主题 ps:主题 信息 qos + $mqtt->publish($topic, $msg, 0); + // 断开连接 + $mqtt->disconnect(); + } else { + echo "连接失败"; + } + } catch (MqttClientException $e) { //连接失败 + echo "Could not connect to MQTT broker: " . $e->getMessage(); + } + } } diff --git a/FlyCube/Common/Conf/config.php b/FlyCube/Common/Conf/config.php index 3b8660f..8916db1 100644 --- a/FlyCube/Common/Conf/config.php +++ b/FlyCube/Common/Conf/config.php @@ -2,7 +2,7 @@ /* * @Author: 田老师 4021673@qq.com * @Date: 2022-05-16 17:57:44 - * @LastEditTime: 2024-06-04 20:39:52 + * @LastEditTime: 2024-06-05 20:15:27 * @Description: Do not edit */ return array( @@ -29,7 +29,7 @@ return array( 'jwtKey' => 'T!o@k_en', //签发 解析token的key //mqtt 'mqtt' => array( - 'server' => 'szdot.top', // mqtt服务器 + 'server' => 'www.szdot.top', // mqtt服务器 'port' => 1883, // mqtt端口 'username' => 'admin', // mqtt用户名 'password' => '123456', // mqtt密码