You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
74 lines
2.1 KiB
PHP
74 lines
2.1 KiB
PHP
<?php
|
|
namespace App\Services;
|
|
|
|
use App\Lib\Tools;
|
|
use Exception;
|
|
|
|
class ZhongKangService
|
|
{
|
|
private $channelSecret='fa7c9de77b0aad6ff176d7ba76827658'; //测试环境
|
|
//private $channelSecret='3fe0b8b5e600d38506c65321a0979690'; //正式环境
|
|
|
|
private $BaseUrl='https://dev.viptijian.com/thirdchannel/hnxd/'; //测试环境
|
|
//private $BaseUrl='https://backserv.viptijian.com/thirdchannel/hnxd/'; //正式环境
|
|
|
|
//查询核销码
|
|
public function GetHexiaoCode($code_num,$user_name,$user_id_number){
|
|
$data=[
|
|
'code_num'=>$code_num,
|
|
'timestamp'=> round(microtime(true) * 1000),
|
|
];
|
|
$sign=$this->sign($data,$this->channelSecret);
|
|
$data['sign']=$sign;
|
|
$query_string = http_build_query($data);
|
|
$send_data=[
|
|
'code_num'=>$code_num,
|
|
'user_name'=>$user_name,
|
|
'user_id_number'=>$user_id_number,
|
|
];
|
|
$Tools=new Tools();
|
|
return $Tools->Post($this->BaseUrl.'order/getVerifyCode?'.$query_string,$send_data,'查询核销码','中康');
|
|
}
|
|
public function HandleTransferCode($type,$code_num,$user_name,$user_id_number){
|
|
$data=[
|
|
'code_num'=>$code_num,
|
|
'timestamp'=> round(microtime(true) * 1000),
|
|
];
|
|
$sign=$this->sign($data,$this->channelSecret);
|
|
$data['sign']=$sign;
|
|
$query_string = http_build_query($data);
|
|
$send_data=[
|
|
'type'=>$type,
|
|
'code_num'=>$code_num,
|
|
'user_name'=>$user_name,
|
|
'user_id_number'=>$user_id_number,
|
|
];
|
|
$Tools=new Tools();
|
|
return $Tools->Post($this->BaseUrl.'order/completeVerify?'.$query_string,$send_data,'操作核销码','中康');
|
|
}
|
|
function sign($params, $channelSecret) {
|
|
// 移除可能存在的sign参数
|
|
unset($params['sign']);
|
|
|
|
// 对参数键名进行字典顺序排序
|
|
ksort($params);
|
|
|
|
// 拼接排序后的参数
|
|
$paramStr = '';
|
|
foreach ($params as $key => $value) {
|
|
if ($key != 'sign') {
|
|
$paramStr .= $key . $value;
|
|
}
|
|
}
|
|
|
|
// 生成签名
|
|
try {
|
|
$calcSign = hash_hmac('sha256', $paramStr, $channelSecret, false);
|
|
return strtoupper($calcSign);
|
|
} catch (Exception $ex) {
|
|
error_log("加密失败: " . $ex->getMessage());
|
|
return '';
|
|
}
|
|
}
|
|
}
|