如何直接调用accesstoken?timestap参数构造方法
思路是直接将参数这些定义在构造方法里面,下面的所有方法都可以直接调用
先获取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 )
);
}
}
?>
标签:
相关推荐:
最新新闻:
- 全球关注:Rancher和KubeSphere哪个更友好?Rancher和KubeSphere的对比介绍
- 全球聚焦:飞信公众平台密码怎么修改?电脑版密码修改教程
- 淘宝刷单怎么做?淘宝刷单技巧|天天速看
- 手机hd怎么关闭?关闭魅族手机Flyme7.1系统教程
- 百度工具栏如何设置热门推荐网站?热门推荐网站设置
- 焦点信息:你的无线网络被蹭网了吗?怎么防止别人蹭网?
- 液晶电视机使用的高清线是什么?HDMI1.4版禁止使用版本号标识方法-天天最新
- 天天观天下!无线网络中的ac控制器怎么设置?设置步骤介绍
- Homebrew是什么?软件包管理工具Homebrew的安装与使用-全球信息
- 传智播客和黑马程序员到底有什么关系?详情介绍:世界热资讯
- 全球观热点:CRC校验原理是什么?如何校验?CRC校验原理与步骤
- 世界快看:什么是ASP?一文带你揭开ASP神秘面纱
- 当前快报:为什么说“鲶鱼效应”是一种负激励?鲶鱼效应详情
- 【数据库学习】数据库平台:postgresql安装配置与常见命令
- Stripe注册流程是什么?Stripe国际支付简介及API对接
- 每日速讯:移动短信内容查询方法有哪些?移动短信内容查询方法
- 【世界报资讯】三星r25好不好?三星R25笔记本评测
- 世界通讯!【中文版】Dev-C++的安装与使用
- 微软的共享源码公共语言基础——mono|焦点热闻
- String.format的用法(字符串格式化)|快报
- commit中文含义是什么?mitcommit的音标和读音及用法:全球热讯
- 微信号怎么注册?微信使用方法有哪些?
- 当前焦点!第一张报表效果展示图:FineReport-leanning
- 苹果妙控鼠标2如何使用?使用方法大全
- 三星q40配置怎么样?三星q40评测及报价|世界报道
- 环球快看点丨相机内存卡坏了怎么办?用计算机自检程序进行数据恢复
- 3D打印火箭第二次发射失败_全球快看点
- 什么是APM?什么是应用程序性能管理(APM)? 世界热头条
- 环球短讯!网络监控系统简介、流程及架构和方案设计
- 环球通讯!多屏方便 桌面显示器支架89元
- tp login.cn登陆入口进不去怎么办?新版TP-Link路由器管理页面地址是什么?
- 休闲骑游必备 喜德盛平把公路1599元:今日热搜
- 有线路由器和无线路由器有什么区别?哪个更实用?
- 如何直接调用accesstoken?timestap参数构造方法
- 【聚看点】入手立省80元!储侠1TB固态仅需269元
- 全球今日讯!通用汽车开发ChatGPT一样的行驶助理
- 天天热门:《杀手4》开发有点停滞 IO互动当前重心是007游戏
- EA或将公布一个新的竞速游戏
- 【世界播资讯】有钱了再还!ChatGPT老板向硅谷银行受害公司伸援手
- 任天堂仍对Switch充满信心 称其销售强劲
- 《塞尔达传说:王国之泪》不会在PAX East展出
- 当前焦点!《最后的生还者:重制版》PC版为外包 质量令人担忧
- 【全球报资讯】盖乌斯·尤利乌斯·恺撒
- 富春染织(605189):第三届第五次监事会会议决议,12项议案获通过
- 全球看点:配置拉满 华硕ROG冰刃7双屏游戏本上架:顶配首发价54999元
- 《巫师3》4.02版本已上线 修正稳定和优化性能 全球报道
- 谷歌翻译网页版升级 可直接翻译图片中文字
- 环球微资讯!鲁豫成功预测杨紫琼拿奥斯卡奖:去年表现很出色
- 前沿资讯!就看iPhone 15了?苹果市值或将再次站上3万亿美元
- 每日热点:带领四百万人逃离大城市的“北欧李子柒”
- 分析师:微软收购动视暴雪会伤害索尼 但不会影响玩家:最新
- 3USB充电口!米家智能魔方插排低至49元
- 全球微资讯!小米13 Ultra确定4月初发布 5月海外开售
- 森歌不锈钢定制家居,畅想自定义人生
- 锐龙 9 7945HX 发布,16 核心,比 i9-13950HX 快 10%
- 环球报道:因传感器问题,iPhone 17 Pro 才有屏下 Face ID
- 玩家在《生化危机8:村庄》VR版里戏耍夫人:打完就跑-全球新视野
- 恐怖游戏《无尽轮回》新实机演示:逃离一战无尽梦魇
- 《游灵》正式版现已登陆PC与主机平台,Steam购买更享8折优惠
- 平台解谜游戏《逃离梦境》今日登陆Steam-动态焦点
- 27英寸显示器抄底价!仅需699元HKC显示器带回家
- 今亮点!跌穿了!英特尔A380显卡仅799元
- 每日速读!苹果大招在 2026 年,iPhone18 Pro上将实现真全面屏
- 湾区绿金对话|星展银行首席可持续发展官Helge Muenkel:中国可持续金融发展三大关键:政策确定性、创新工具及利弊权衡 世界时快讯
- 扫黑剧《狂飙》片头已更改:曾被曝抄袭网飞剧:世界速读
- 当前速递!卡普空发行商特卖 《生化8》《怪猎崛起》半价
- 要闻:《生化危机4:重制版》试玩Demo隐藏模式解锁方法公布
- 动态焦点:魔灵召唤克罗尼柯战记开局人物推荐,克罗尼柯战记初始胎五推荐
- 《生化危机4:重制版》泄露版视频 性感艾达王大战里昂:每日时讯
- 今日热议:真白菜价了!2TB NVMe M.2固态硬盘低至649元
- 2022年度市场关注,雷柏键盘第一,鼠标第二-全球看热讯
- 盐城移动与启明星辰签署战略合作协议 共绘信息安全行业全景视图_天天速递
- 北京用户专享!LG 27英寸4K显示器1799元入手_全球资讯
- 热讯:Redmi Note 12 4G真机图曝光、后置三摄、5000mAh电池
- 小红书被曝后台私自删除照片 被系统拦截