提交 515a7692 编写于 作者: 李光春's avatar 李光春

- 增加卡券网服务

上级 fe399c48
## v6.0.131 / 2020-12-03
- 增加卡券网服务
## v6.0.130 / 2020-11-26
- 优化服务
......
......@@ -25,7 +25,7 @@ use DtApp\ThinkLibrary\service\SystemService;
/**
* 定义当前版本
*/
const VERSION = '6.0.130';
const VERSION = '6.0.131';
if (!function_exists('get_ip_info')) {
/**
......
<?php
namespace DtApp\ThinkLibrary\service;
use DtApp\ThinkLibrary\Service;
use DtApp\ThinkLibrary\service\curl\HttpService;
use think\App;
use think\exception\HttpException;
/**
* 卡商网
* http://www.kashangwl.com/
* Class KaShAngWl
* @package DtApp\ThinkLibrary\service
*/
class KaShAngWl extends Service
{
/**
* 接口地址
* @var string
*/
private $api_url = 'http://www.kashangwl.com/api';
/**
* 商家编号、商家密钥
* @var
*/
private $customer_id, $customer_key;
/**
* 设置商家编号
* @param string $customer_id
* @return $this
*/
public function setCustomerId(string $customer_id): self
{
$this->customer_id = $customer_id;
return $this;
}
/**
* 设置商家密钥
* @param string $customer_key
* @return $this
*/
public function setCustomerKey(string $customer_key): self
{
$this->customer_key = $customer_key;
return $this;
}
/**
* 待请求的链接
* @var string
*/
private $method = '';
/**
* 设置接口
* @param $method
* @return KaShAngWl
*/
public function setMethod($method): self
{
$this->method = "{$this->api_url}/$method";
return $this;
}
/**
* 需要发送的的参数
* @var
*/
private $param;
/**
* 入参
* @param $param
* @return KaShAngWl
*/
public function param($param): self
{
$this->param = $param;
return $this;
}
/**
* 响应内容
* @var
*/
private $output;
/**
* 时间戳
* @var int
*/
private $time;
public function __construct(App $app)
{
$this->time = time();
parent::__construct($app);
}
/**
* @return array|mixed
*/
public function toArray()
{
//首先检测是否支持curl
if (!extension_loaded("curl")) {
throw new HttpException(404, '请开启curl模块!');
}
$this->http();
// 正常
if (is_array($this->output)) {
return $this->output;
}
if (is_object($this->output)) {
$this->output = json_encode($this->output, JSON_UNESCAPED_UNICODE);
}
$this->output = json_decode($this->output, true);
return $this->output;
}
/**
* 网络请求
*/
private function http(): void
{
//生成签名
$sign = $this->createSign();
//组织参数
$this->param['customer_id'] = $this->customer_id;
$this->param['timestamp'] = $this->time;
$this->param['sign'] = $sign;
$result = HttpService::instance()
->url($this->method)
->data($this->param)
->post()
->toArray();
$this->output = $result;
}
/**
* 签名
* @return string
*/
private function createSign(): string
{
$sign = $this->customer_key;
$this->param['customer_id'] = $this->customer_id;
$this->param['timestamp'] = $this->time;
ksort($this->param);
foreach ($this->param as $key => $val) {
if ($key !== '' && $val !== '') {
$sign .= $key . $val;
}
}
$sign = strtolower(md5($sign));
return $sign;
}
}
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册