Ai
1 Star 0 Fork 0

小马哥/php-pay

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
PaySigner.php 1.41 KB
一键复制 编辑 原始数据 按行查看 历史
小马哥 提交于 2024-07-29 09:07 +08:00 . update
<?php
declare (strict_types=1);
namespace magein\pay;
class PaySigner
{
/**
* 解签
* @param array $params
* @return bool
*/
public function verify(array $params): bool
{
if (empty($params)) {
return false;
}
$sign = $params['sign'] ?? '';
if (empty($sign)) {
return false;
}
unset($params['sign']);
if ($sign == self::create($params)) {
return true;
}
return false;
}
/**
* 加签
* @param array $params
* @param string $channel_id
* @return string
*/
public function create(array $params, string $channel_id = ''): string
{
$channel_id = $channel_id ?: ($params['channel_id'] ?? '');
// 获取签名秘钥
if ($channel_id) {
$secret = PayConfig::channelSecret($channel_id) ?? uniqid();
} else {
$secret = uniqid();
}
foreach ($params as $key => $val) {
if (is_numeric($val)) {
continue;
}
if (is_object($val) || is_array($val) || strlen($val) > 10000) {
unset($params[$key]);
}
}
ksort($params);
$plain_text = '';
foreach ($params as $key => $val) {
$plain_text .= $key . $val;
}
return md5(strtolower($secret . $plain_text));
}
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/magein/php-pay.git
git@gitee.com:magein/php-pay.git
magein
php-pay
php-pay
master

搜索帮助