移动支付产品接入

移动支付产品接入文档


云喇叭-PHP阿里云MQTT推送代码

<pre><code class="language-php">&amp;lt;?php use Mosquitto\Client; ##此处填写阿里云帐号 AccessKey $accessKey = 'LTAI4FgxuFC1auJcZNSnFSw5'; ##此处填写阿里云帐号 SecretKey $secretKey = 'uRYSk7pGXkGEE1uNnezShLbvBkAC6v'; ## 接入点地址,购买实例后从控制台获取 $endPoint = 'mqtt-cn-0pp1bnxar02.mqtt.aliyuncs.com'; ##实例 ID,购买后从控制台获取 $instanceId = 'mqtt-cn-0pp1bnxar02'; ## MQTT 第一级 Topic 需要在 MQTT 控制台提前申请 $topic = 'TID_ZKC'; ## MQTT 客户端ID 前缀, GroupID,需要在 MQTT 控制台申请 $groupId = 'GID_ZKC'; ## MQTT 客户端ID 后缀,DeviceId,业务方自由指定,需要保证全局唯一,禁止 2 个客户端连接使用同一个 ID ## 设备IMEI号码 $deviceId = '352736082440754'; ## QOS必须为2 $qos = 2; $port = 1883; $keepalive = 90; $cleanSession = true; $clientId = $groupId . '@@@' . $deviceId; ## 发送端ClientID,@@@后面字符串可以随意修改,不能与设备IMEI重复 $masterClientId=$groupId . '@@@20191010master'; echo $clientId . &amp;quot;\n&amp;quot;; $mid = 0; ## 初始化客户端,需要设置 clientId 和 CleanSession 参数,参考官网文档规范 $mqttClient = new Mosquitto\Client($masterClientId, $cleanSession); ## 设置鉴权参数,参考 MQTT 客户端鉴权代码计算 username 和 password $username = 'Signature|' . $accessKey . '|' . $instanceId; $sigStr = hash_hmac(&amp;quot;sha1&amp;quot;, $masterClientId, $secretKey, true); $password = base64_encode($sigStr); echo &amp;quot;UserName:&amp;quot; . $username . &amp;quot; Password:&amp;quot; . $password . &amp;quot;\n&amp;quot;; $mqttClient-&amp;amp;setCredentials($username, $password); ## 设置连接成功回调 $mqttClient-&amp;amp;onConnect(function ($rc, $message) use ($mqttClient, &amp;amp;$mid, $topic, $qos, $clientId,$deviceId) { echo date('Y-m-d H:i:s').&amp;quot; 连接成功:Connnect to Server Code is &amp;quot; . $rc . &amp;quot; message is &amp;quot; . $message . &amp;quot;\n&amp;quot;; ## P2P消息的二级 topic 是/p2p/,三级 topic 是目标客户端的 clientId $mqttP2PTopic = $topic . &amp;quot;/p2p/&amp;quot; . $clientId; $ZPL = $deviceId.&amp;quot;|1007|2019022611153312312345|566.88|2001&amp;quot;; echo date('Y-m-d H:i:s').&amp;quot; 推送Topic:&amp;quot;.$mqttP2PTopic.&amp;quot;\n&amp;quot;; echo date('Y-m-d H:i:s').&amp;quot; 推送内容:&amp;quot;.$ZPL.&amp;quot;\n&amp;quot;; $mqttClient-&amp;gt;publish($mqttP2PTopic, $ZPL, $qos); }); ## 设置发送成功回调 $mqttClient-&amp;amp;onPublish(function ($publishedId) use ($mqttClient, $mid) { echo date('Y-m-d H:i:s').&amp;quot; 发送成功:publish message success &amp;quot; . $mid . &amp;quot;\n&amp;quot;; }); ## 设置消息接收回调 $mqttClient-&amp;amp;onMessage(function ($message) { echo date('Y-m-d H:i:s').&amp;quot; 接收回调:Message From mqtt, topic is &amp;quot; . $message-&amp;amp;topic . &amp;quot; qos is &amp;quot; . $message-&amp;amp;qos . &amp;quot; messageId is &amp;quot; . $message-&amp;amp;mid . &amp;quot; payload is &amp;quot; . $message-&amp;amp;payload . &amp;quot;\n&amp;quot;; }); $mqttClient-&amp;amp;connect($endPoint, $port, $keepalive); $mqttClient-&amp;amp;loopForever(); echo &amp;quot;Finished&amp;quot;;</code></pre>

页面列表

ITEM_HTML