Skip to content

Commit 515a769

Browse files
committed
- 增加卡券网服务
1 parent fe399c4 commit 515a769

File tree

3 files changed

+166
-1
lines changed

3 files changed

+166
-1
lines changed

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
## v6.0.131 / 2020-12-03
2+
- 增加卡券网服务
3+
14
## v6.0.130 / 2020-11-26
25
- 优化服务
36

src/common.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
/**
2626
* 定义当前版本
2727
*/
28-
const VERSION = '6.0.130';
28+
const VERSION = '6.0.131';
2929

3030
if (!function_exists('get_ip_info')) {
3131
/**

src/service/KaShAngWl.php

Lines changed: 162 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,162 @@
1+
<?php
2+
3+
namespace DtApp\ThinkLibrary\service;
4+
5+
use DtApp\ThinkLibrary\Service;
6+
use DtApp\ThinkLibrary\service\curl\HttpService;
7+
use think\App;
8+
use think\exception\HttpException;
9+
10+
/**
11+
* 卡商网
12+
* http://www.kashangwl.com/
13+
* Class KaShAngWl
14+
* @package DtApp\ThinkLibrary\service
15+
*/
16+
class KaShAngWl extends Service
17+
{
18+
/**
19+
* 接口地址
20+
* @var string
21+
*/
22+
private $api_url = 'http://www.kashangwl.com/api';
23+
24+
/**
25+
* 商家编号、商家密钥
26+
* @var
27+
*/
28+
private $customer_id, $customer_key;
29+
30+
/**
31+
* 设置商家编号
32+
* @param string $customer_id
33+
* @return $this
34+
*/
35+
public function setCustomerId(string $customer_id): self
36+
{
37+
$this->customer_id = $customer_id;
38+
return $this;
39+
}
40+
41+
/**
42+
* 设置商家密钥
43+
* @param string $customer_key
44+
* @return $this
45+
*/
46+
public function setCustomerKey(string $customer_key): self
47+
{
48+
$this->customer_key = $customer_key;
49+
return $this;
50+
}
51+
52+
/**
53+
* 待请求的链接
54+
* @var string
55+
*/
56+
private $method = '';
57+
58+
/**
59+
* 设置接口
60+
* @param $method
61+
* @return KaShAngWl
62+
*/
63+
public function setMethod($method): self
64+
{
65+
$this->method = "{$this->api_url}/$method";
66+
return $this;
67+
}
68+
69+
/**
70+
* 需要发送的的参数
71+
* @var
72+
*/
73+
private $param;
74+
75+
/**
76+
* 入参
77+
* @param $param
78+
* @return KaShAngWl
79+
*/
80+
public function param($param): self
81+
{
82+
$this->param = $param;
83+
return $this;
84+
}
85+
86+
/**
87+
* 响应内容
88+
* @var
89+
*/
90+
private $output;
91+
92+
/**
93+
* 时间戳
94+
* @var int
95+
*/
96+
private $time;
97+
98+
public function __construct(App $app)
99+
{
100+
$this->time = time();
101+
parent::__construct($app);
102+
}
103+
104+
/**
105+
* @return array|mixed
106+
*/
107+
public function toArray()
108+
{
109+
//首先检测是否支持curl
110+
if (!extension_loaded("curl")) {
111+
throw new HttpException(404, '请开启curl模块!');
112+
}
113+
$this->http();
114+
// 正常
115+
if (is_array($this->output)) {
116+
return $this->output;
117+
}
118+
if (is_object($this->output)) {
119+
$this->output = json_encode($this->output, JSON_UNESCAPED_UNICODE);
120+
}
121+
$this->output = json_decode($this->output, true);
122+
return $this->output;
123+
}
124+
125+
/**
126+
* 网络请求
127+
*/
128+
private function http(): void
129+
{
130+
//生成签名
131+
$sign = $this->createSign();
132+
//组织参数
133+
$this->param['customer_id'] = $this->customer_id;
134+
$this->param['timestamp'] = $this->time;
135+
$this->param['sign'] = $sign;
136+
$result = HttpService::instance()
137+
->url($this->method)
138+
->data($this->param)
139+
->post()
140+
->toArray();
141+
$this->output = $result;
142+
}
143+
144+
/**
145+
* 签名
146+
* @return string
147+
*/
148+
private function createSign(): string
149+
{
150+
$sign = $this->customer_key;
151+
$this->param['customer_id'] = $this->customer_id;
152+
$this->param['timestamp'] = $this->time;
153+
ksort($this->param);
154+
foreach ($this->param as $key => $val) {
155+
if ($key !== '' && $val !== '') {
156+
$sign .= $key . $val;
157+
}
158+
}
159+
$sign = strtolower(md5($sign));
160+
return $sign;
161+
}
162+
}

0 commit comments

Comments
 (0)