3 Commits

Author SHA1 Message Date
8c9680d364 更新签名规则 2023-09-08 14:59:32 +08:00
2f30a6cf6f 更新SDK用法 2023-09-08 14:17:19 +08:00
2e9999c877 更新README 2023-09-08 10:53:35 +08:00

View File

@ -1,9 +1,11 @@
# 德木自动化项目开放接口SDK # 德木自动化项目开放接口SDK
# 介绍 # 介绍
用于德木自动化对外开放接口数据交互 用于德木自动化对外开放接口数据交互
# 要求 # 要求
- php版本>=7.0 - php版本>=7.0
# 安装 # 安装
@ -30,14 +32,21 @@ $response = $w->createProductOrder([
``` ```
# 回调说明 # 回调说明
- 配置回调后地址后应用服务器会以POST方式请求你的服务器地址以便你做进一步业务流程
- 回调你服务器地址后,可获取参数"data"、"signature"进行验签,"response" 为服务器处理结果数据 - 配置回调后地址后应用服务器会以POST方式请求你的服务器地址以便你做进一步业务流程。
- 回调你服务器地址后,可获取参数"data"、"signature"进行验签,"response" 为服务器处理结果。
```php ```php
// 回调参数调用方法 // 回调参数调用方法
$w = new Order($secretKey, 'callback url'); $w = new Order($secretKey, 'callback url');
// 获取数据
$request = require();
$params = json_decode($request->contents(), true);
// 回调验签 // 回调验签
$receivedSignature = $params['signature']; $receivedSignature = $request->headers('mes-open-signature');
$timestamp = $request->headers('mes-open-timestamp');
$data = json_encode($params['data']); $data = json_encode($params['data']);
/** /**
* 生成HMAC签名 * 生成HMAC签名
@ -50,7 +59,7 @@ function generateHmacSignature($data): string
return hash_hmac('sha256', $data, $secretKey); return hash_hmac('sha256', $data, $secretKey);
} }
$calculatedSignature = $this->generateHmacSignature(json_encode($data)); $calculatedSignature = $this->generateHmacSignature($timestamp . $data);
// 验证签名是否匹配 hash_equals($receivedSignature, $calculatedSignature) // 验证签名是否匹配 hash_equals($receivedSignature, $calculatedSignature)
if ($receivedSignature === $calculatedSignature) { if ($receivedSignature === $calculatedSignature) {