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

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

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

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

/**

* 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_token

public 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); // 自动设置Referer

curl_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 )

);

}

}

?>

tp飞蛾打印机PHP,易连云打印机PHP接口相关推荐

  1. 易连云打印机PHP接口

    为什么80%的码农都做不了架构师?>>>    思路是直接将参数这些定义在构造方法里面,下面的所有方法都可以直接调用 先获取accesstoken,然后再进行传参 注1:UUID4在 ...

  2. 怎样设置默认打印机(HttpPrinter 易桥打印中间件)

    怎样设置默认打印机(HttpPrinter 易桥打印中间件) 把 报表绑定打印机 客户端打印时 指定打印机, 控制面板中 可以查看您的 打印机的名称 下面的  "PrinterName&qu ...

  3. 富士通打印机调整位置_打印机为什么卡纸 打印机四种卡纸原因及解决办法【介绍】...

    我们在使用打印机的过程中,由于频繁使用打印机,常常会出现打印机无法处理纸张的故障.大多数常见的故障就是夹纸.不进纸.一次进多页纸以及乱走纸等.我们在打印机出现这些现象的时候,该怎样去应对呢?下面为大家 ...

  4. 打印机服务器的系统,打印机服务器主机系统

    打印机服务器主机系统 内容精选 换一换 云堡垒机可查看和修改纳管的资源配置,包括主机资源.应用服务器.应用资源.资源账户等.已分别获取主机管理.应用服务器.应用发布.资源账户模块操作权限.快速查询在搜 ...

  5. nx600打印机打印设置_win7打印机共享怎么设置

    本文将说明在Win7下如何实现同个局域网内共享打印机.经过测试,Win7之间和Win7与XP之间均可正常连接. 第一步:取消禁用Guest用户 1. 点击[开始]按钮,在[计算机]上右键,选择[管理] ...

  6. vb 如何检测打印机是否联机_打印机提示该文档未能打印导致打印失败的原因及解决方法...

    打印机打印时,一直出现该文档未能打印的提示,如何解决这个问题?在使用打印机的时候,偶尔会出现提示该文档未能打印,打印失败的状况,这是怎么回事?下面就给大家分析下具体原因及其解决办法. 一.打印机处于脱 ...

  7. 如何看打印机的缓存区域_松下打印机好吗 松下打印机卡纸如何解决【详解】...

    现在人们早已习惯了用手机记录下生活中的美好事物,因此拥有一台能打印照片的打印机成为这些人的选择,可随着现在人们对于打印机的需求量在不断的增加,市面上的打印机品牌也随之增多了起来.那么松下 打印机怎么样 ...

  8. dcp9030cdn定影_兄弟Brother DCP-9030CDN打印机驱动(修复DCP-9030CDN打印机连接故障)V1.0 正式版...

    兄弟Brother DCP-9030CDN打印机驱动(修复DCP-9030CDN打印机连接故障)是一款非常优秀好用的针对兄弟Brother DCP-9030CDN打印机推出专业驱动程序.使用小编带来的 ...

  9. 笔记本电脑怎样连接打印机_怎样使用打印机,打印机的基础知识

    人们都知道打印机可以用于打印电脑中的任何文件,并且也可以复印自己想要的文件,但是很多人并不清楚如何使用打印机,今天我们就讲一下怎样使用打印机,打印机的基础知识有哪些? 怎样使用打印机 1.打印机是分为 ...

最新文章

  1. ldd 显示的so的位置修改
  2. ELK之收集日志到mysql数据库
  3. 限制textbox中的内容
  4. 小说中场景的功能_如何让你的小说中的场景转换自如?
  5. 史上最全MySQL 大表优化方案(长文)
  6. Objective-C 2.0 with Cocoa Foundation --- 2,从Hello,World!开始
  7. Access 中数据库操作时提示from子句语法错误
  8. 知识蒸馏方法的演进历史综述
  9. 角色 RESOURCE、CONNECT、DBA具有的权限
  10. 计算机海报大赛策划书,海报策划书模板.docx
  11. Maya模型制作心得
  12. 如何确定产品生命周期
  13. Counter()函数进行排序后如何得到有序的键
  14. Linkerd 2.10(Step by Step)—设置服务配置文件
  15. 虾米音乐穷X事件程序员怎么样呢?
  16. 目前计算机病毒只有网络病毒吗,目前计算机病毒只有网络型病毒。()
  17. 网页简单整合Skype
  18. 怎么在html中创建单选按钮?
  19. gremlin 语法
  20. Mybatis密码加密

热门文章

  1. 解读领跑全国的区块链发展“北京方案”:设专项基金,构建开源生态
  2. 我的java自学经历,土木转行java的
  3. 【考研线代】一. 行列式
  4. 1111112222
  5. 蔻驰和mk哪个更大牌_mk包包属于什么档次 蔻驰和mk的包包哪个好
  6. bittiger视频(AI简历)
  7. indexOf详解,几种使用情况
  8. OpenWrt之quilt打补丁
  9. 类与类之间的关系-继承
  10. Linux进阶(3)--RAID简介