为什么80%的码农都做不了架构师?>>>   

思路是直接将参数这些定义在构造方法里面,下面的所有方法都可以直接调用

先获取accesstoken,然后再进行传参

注1:UUID4在文档中并没有说怎么获取,写了一个create_uuid的方法可以生成这个UUID4

注2:在拼装参数的过程中,timestamp这个键可能会被过滤掉一部分,所以这个timestap参数要放数组的最上面

<?php
/*** ELind Openapi SDK For PHP, Version:1.0* Api WebSite :http://open.10ss.net/* Api Doc :http://doc.10ss.net/* @filename : print.class.php* @author   : heqian@yilianyun.net* @date     : 2016-07-11*/
class dyprint{public $mysql;public function __construct(){$this->apiKey="**";//应用秘钥(开发平台网站应用查看)$this->msign="***";//终端秘钥(机器上看)$this->partner=24424;//开发者ID --开发平台网站看$this->machine_code="***";//终端ID --机器上$this->client_id='***';//应用ID --开发平台网站看$this->access_token="*****";//这个通过调用getAccessToken方法,直接打印出来后,填入就行了$this->refresh_token="****";//同上}//获取access_tokenpublic function getAccessToken(){$url="https://open-api.10ss.net/oauth/oauth";$sign=$this->generateSign([],"","");$id=$this->create_uuid();$time=time();$params=["timestamp"=>$time,"client_id"=>$this->client_id,"grant_type"=>"client_credentials","sign"=>$sign,"scope"=>"all","id"=>$id,];$params=http_build_query($params);//获取access_token,获取一次,就可以用永久了$res=$this->sendCmd($url,$params);$res=json_decode($res,true);if($res['error']=="0"){$this->access_token=$res['body']['access_token'];$this->refresh_token=$res['body']['refresh_token'];var_dump($res);}}/*** 生成签名sign* @param  array $params 参数* @param  string $apiKey API密钥* @param  string $msign 打印机密钥* @return   string sign*/public function generateSign(){$str=$this->client_id.time().$this->apiKey;//使用MD5进行加密,再转化成大写return strtolower(md5($str));}/*** 生成字符串参数* @param array $param 参数* @return  string        参数字符串*/public function getStr($param){$str = '';foreach ($param as $key => $value) {$str=$str.$key.'='.$value.'&';}$str = rtrim($str,'&');return $str;}/*** 打印接口* @param  int $partner     用户ID* @param  string $machine_code 打印机终端号* @param  string $content      打印内容* @param  string $apiKey       API密钥* @param  string $msign       打印机密钥*/public function  action_print($content){//$token=$this->getAccessToken();$param = array("timestamp"=>time(),"client_id"=>$this->client_id,"access_token"=>$this->access_token,"machine_code"=>$this->machine_code,"origin_id"=>"order_".time(),"sign"=>$this->generateSign(),"id"=>$this->create_uuid(),"partner"=>$this->partner,);//获取签名$param['content'] = $content;//执行打印return $this->sendCmd('https://open-api.10ss.net/print/index',$param);}/***  添加打印机* @param  int $partner     用户ID1* @param  string $machine_code 打印机终端号* @param  string $username     用户名* @param  string $printname    打印机名称* @param  string $mobilephone  打印机卡号* @param  string $apiKey       API密钥* @param  string $msign       打印机密钥*/public function action_addprint($partner,$machine_code,$username,$printname,$mobilephone,$apiKey,$msign){$param = array('partner'=>$partner,'machine_code'=>$machine_code,'username'=>$username,'printname'=>$printname,'mobilephone'=>$mobilephone,);$param['sign'] = $this->generateSign($param,$apiKey,$msign);$param['msign'] = $msign;$str = $this->getStr($param);echo $this->sendCmd('http://open.10ss.net:8888/addprint.php',$str);}/*** 删除打印机* @param  int $partner      用户ID* @param  string $machine_code 打印机终端号* @param  string $apiKey       API密钥* @param  string $msign        打印机密钥*/public function action_removeprinter($partner,$machine_code,$apiKey,$msign){$param = array('partner'=>$partner,'machine_code'=>$machine_code,);$param['sign'] = $this->generateSign($param,$apiKey,$msign);$str = $this->getStr($param);echo $this->sendCmd('http://open.10ss.net:8888/removeprint.php',$str);}/*** 发起请求* @param  string $url  请求地址* @param  string $data 请求数据包* @return   string      请求返回数据*/public function sendCmd($url,$data){$curl = curl_init(); // 启动一个CURL会话curl_setopt($curl, CURLOPT_URL, $url); // 要访问的地址curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0); // 对认证证书来源的检测curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2); // 从证书中检查SSL加密算法是否存在curl_setopt($curl, CURLOPT_HTTPHEADER, array('Expect:')); //解决数据包大不能提交curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1); // 使用自动跳转curl_setopt($curl, CURLOPT_AUTOREFERER, 1); // 自动设置Referercurl_setopt($curl, CURLOPT_POST, 1); // 发送一个常规的Post请求curl_setopt($curl, CURLOPT_POSTFIELDS, $data); // Post提交的数据包curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 设置超时限制防止死循curl_setopt($curl, CURLOPT_HEADER, 0); // 显示返回的Header区域内容curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); // 获取的信息以文件流的形式返回$tmpInfo = curl_exec($curl); // 执行操作if (curl_errno($curl)) {echo 'Errno'.curl_error($curl);}curl_close($curl); // 关键CURL会话return $tmpInfo; // 返回数据}//生成UUID4(后面自己找的一个方法)function create_uuid() {return sprintf( '%04x%04x-%04x-%04x-%04x-%04x%04x%04x',mt_rand( 0, 0xffff ), mt_rand( 0, 0xffff ),mt_rand( 0, 0xffff ),mt_rand( 0, 0x0fff ) | 0x4000,mt_rand( 0, 0x3fff ) | 0x8000,mt_rand( 0, 0xffff ), mt_rand( 0, 0xffff ), mt_rand( 0, 0xffff ));}
}
?>

转载于:https://my.oschina.net/laobia/blog/1812268

易连云打印机PHP接口相关推荐

  1. tp飞蛾打印机PHP,易连云打印机PHP接口

    思路是直接将参数这些定义在构造方法里面,下面的所有方法都可以直接调用 先获取accesstoken,然后再进行传参 注1:UUID4在文档中并没有说怎么获取,写了一个create_uuid的方法可以生 ...

  2. APIAuto——敏捷开发最强大易用的 HTTP 接口工具 (二)

    文章目录 ApiAuto接口管理 (一)官方介绍 (二)APIAuto功能介绍 (1)安装使用 (2)测试ApiJson项目 (3)实时快捷查询文档 (4)基本功能概览 ApiJson和ApiAuto ...

  3. 苏宁易购的api接口展示

    前言 我们常在软件开发或合作中遇到"API"这个词,比如API接口.API调用.API接口函数等等,那么到底什么是API呢?API用通俗的话说,就相当于大家经常看的科幻电影中的空间 ...

  4. php 易信公众开发,易信公众平台接口代码分享

    易信公众平台接口文件代码,只要将文件里的token换成自己定义的就可以直接放到自己的空间上了.注意:token值要跟您在开发模式那里写的一样. /** * wechatphp test */ //de ...

  5. php聚合话费充值怎么接,首信易支付,话费充值接口解决方法

    首信易支付,话费充值接口 采用数据加密的形式:md5+des package com.test.moltest; import net.sf.json.JSONObject; import com.h ...

  6. 易信短信接口 php,新手指南-易信开放平台

    Oauth API 新手指南 Oauth API是易信为你提供的获取易信用户相应授权信息的API,当你获得用户授权(OAuth认证)后通过以下API可以轻松的访问相应的资源. 1. 准备 1. 如果您 ...

  7. 易语言调用微信接口方法(通过wxDriver.dll命令)

    易语言调用微信接口方法(通过wxDriver.dll命令) 先看易语言DLL命令图: DLL命令源码: .版本 2' ***************************************** ...

  8. 手机充值接口 php,首信易支付,话费充值接口

    采用数据加密的形式:md5+des package com.test.moltest;import net.sf.json.JSONObject;import com.huonet.util.DEST ...

  9. 思科服务器连接无线打印机,经典解决方案 : 路由器直接连接打印机USB接口实现网络打印。...

    近看到很多人问怎么把打印机接到路由器上面做网络打印,一开始觉得这样子很不可思议.但问的人多了自己也就开始怀疑了.后来查阅了很多资料发现路由器的USB接口有两种一种是WCN-UFD技术(也就是快速网络设 ...

最新文章

  1. 轻松实现Access数据导入Oracle!
  2. fatal: 无法访问 ‘https://github.com/salesforce/WikiSQL/‘:GnuTLS recv error (
  3. 使用CMD命令删除文件函数
  4. 微信公众平台“自定义回复”技巧
  5. 一本通1629聪明的燕姿
  6. 难于传播的正能量,来点干货
  7. 如何使用四个语句来提高 SQL Server 的伸缩性
  8. JS 学习笔记--10---基本包装类型
  9. CMMI-V2.0真题模拟(1)
  10. Spring Aop 报错 ...but was actually of type 'com.sun.proxy.$Proxy**'的解决方案
  11. NLP6:stanford Parser中文分词
  12. python余弦函数_Python cos() 函数
  13. php验证码汉字显示音节,普通话拼音PHP 标调音节 1403个
  14. 12306网站火车票抢票详细攻略(gohome抢票程序)
  15. 网络通信安全基础和OpenSSL
  16. c++ primer plus学习笔记(7)——类继承
  17. 帆软报表列表_报表软件FineReport各类函数大全
  18. gromacs 安装_安装gromacs的一些心得
  19. Cookie、Session、Token、JWT 看一篇就够了
  20. 克服低温磁场测量的挑战—高斯计

热门文章

  1. 新零售全渠道营销,线上经营,线下成长
  2. Hibernate(一)
  3. 免费在线工艺流程图软件 + 示例
  4. C++学习8——菜鸟教程自学
  5. 用matlab画椭圆曲线方程,椭圆曲线入门详解
  6. kettle报错 Driver class ‘org.gjt.mm.mysql.Driver‘ could not be found, make sure the ‘MySQL‘ driver
  7. 如何自己重装系统win7
  8. iOS 系统方法获取当前位置经纬度
  9. adm怎么下bt连接_BT宝塔FTP连接不上用不了的解决办法,轻松几步设置即可连接...
  10. Linux下载神器XDM,代替IDM