移动支付产品接入

移动支付产品接入文档


云打印-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 = '352736082691067'; ## 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;amp;$mid, $topic, $qos, $clientId) { 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; $printText=&amp;quot;ABCD\r\n&amp;quot;;//打印内容 $ZPL=bin2hex($printText); $hexBin=pack(&amp;quot;H*&amp;quot;,$ZPL); $len=strlen($hexBin)+4;//打印指定尾部4字节 $lenHex=dechex($len); $len_MSB=dechex(($len&amp;amp;0xff00)&amp;gt;&amp;gt;8); $len_LSB=dechex($len&amp;amp;0x00ff); $lenMSBStr=str_pad($len_MSB,2,0,STR_PAD_LEFT); $lenLSBSTR=str_pad($len_LSB,2,0,STR_PAD_LEFT); echo &amp;quot;数据长度:&amp;quot;.$len; echo &amp;quot;\r最高位是&amp;quot;.$lenMSBStr; echo &amp;quot;\r最低位是&amp;quot;.$lenLSBSTR; $printHex=&amp;quot;1E1001&amp;quot;.$lenMSBStr.$lenLSBSTR.$ZPL.&amp;quot;1B636F90&amp;quot;; echo &amp;quot;\r最终打印内容,请转HEX:&amp;quot;.$printHex; 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;.$printHex.&amp;quot;\n&amp;quot;; $mqttClient-&amp;amp;publish($mqttP2PTopic, pack(&amp;quot;H*&amp;quot;,$printHex), $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