3 Commits

Author SHA1 Message Date
4829305a44 Merge branch 'dev' of https://git.tool.dwoodauto.com/ykxiao/dmmes into dev 2023-09-09 13:16:12 +08:00
c9484deaec 验证 2023-09-09 13:16:03 +08:00
8c9680d364 更新签名规则 2023-09-08 14:59:32 +08:00
2 changed files with 49 additions and 4 deletions

View File

@ -1,9 +1,11 @@
# 德木自动化项目开放接口SDK # 德木自动化项目开放接口SDK
# 介绍 # 介绍
用于德木自动化对外开放接口数据交互 用于德木自动化对外开放接口数据交互
# 要求 # 要求
- php版本>=7.0 - php版本>=7.0
# 安装 # 安装
@ -22,14 +24,33 @@ $w = new Order($secretKey);
// 获取工单数据 // 获取工单数据
$response = $w->getProductOrder('SN5436745676543'); $response = $w->getProductOrder('SN5436745676543');
// 加工工单原木材种
$w->getWoodTypeOptions([
'company_id' => 1
]);
// 加工工单加工等级
$w->getProductionLevelOptions([
'company_id' => 1
]);
// 创建加工工单 // 创建加工工单
$response = $w->createProductOrder([ $response = $w->createProductOrder([
'cube_plan' => 32.23, 'company_id' => 1,
'owner' => 'ykxiao' 'wood_type_id' => 1,
'wood_level_id' => 1,
'spec_thickness' => 12,
'spec_width' => 22,
'spec_length' => 38,
'number_width' => 12,
'number_height' => 22,
'number_pcs' => 10,
'owner' => 'ykxiao'
]); ]);
``` ```
# 回调说明 # 回调说明
- 配置回调后地址后应用服务器会以POST方式请求你的服务器地址以便你做进一步业务流程。 - 配置回调后地址后应用服务器会以POST方式请求你的服务器地址以便你做进一步业务流程。
- 回调你服务器地址后,可获取参数"data"、"signature"进行验签,"response" 为服务器处理结果。 - 回调你服务器地址后,可获取参数"data"、"signature"进行验签,"response" 为服务器处理结果。
@ -42,7 +63,8 @@ $request = require();
$params = json_decode($request->contents(), true); $params = json_decode($request->contents(), true);
// 回调验签 // 回调验签
$receivedSignature = $request->headers('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签名
@ -55,7 +77,7 @@ function generateHmacSignature($data): string
return hash_hmac('sha256', $data, $secretKey); return hash_hmac('sha256', $data, $secretKey);
} }
$calculatedSignature = $this->generateHmacSignature($data); $calculatedSignature = $this->generateHmacSignature($timestamp . $data);
// 验证签名是否匹配 hash_equals($receivedSignature, $calculatedSignature) // 验证签名是否匹配 hash_equals($receivedSignature, $calculatedSignature)
if ($receivedSignature === $calculatedSignature) { if ($receivedSignature === $calculatedSignature) {

View File

@ -106,6 +106,29 @@ class Order
return $this->sendRequest('production.status', $data); return $this->sendRequest('production.status', $data);
} }
/**
* 加工工单原木材种
* @return mixed|string
* @throws GuzzleException
* @throws HttpException
* @throws InvalidArgumentException
*/
public function getWoodTypeOptions($data)
{
return $this->baseFun($data, 'Wood.types');
}
/**
* 加工等级
* @return mixed|string
* @throws GuzzleException
* @throws HttpException
* @throws InvalidArgumentException
*/
public function getProductionLevelOptions($data)
{
return $this->baseFun($data, 'production.levels');
}
/** /**
* 加工工单创建 * 加工工单创建
* @return mixed|string * @return mixed|string