阶段性更新,没有实质性的功能

This commit is contained in:
2020-09-28 15:10:02 +08:00
parent 8c81c76aa0
commit 996ed300f5
119 changed files with 2745 additions and 2666 deletions

View File

@@ -0,0 +1,69 @@
<?php
namespace XuanChen\UnionPay\Action;
use Illuminate\Http\Request;
class Init
{
/**
* RSA验签
* @param $params 待签名数据
* @param $public_key 公钥字符串
* @param $sign 要校对的的签名结果
* return 验证结果
*/
public function rsaSign($params, $self = false)
{
$sign = $params['sign'];
unset($params['sign']);
$public_key = $this->getPublic($self);
$pub_key_id = openssl_get_publickey($public_key);
$signStr = $this->getSignString($params);
if ($pub_key_id) {
$result = (bool)openssl_verify($signStr, $sign, $pub_key_id);
openssl_free_key($pub_key_id);
} else {
return '公钥格式有误!';
}
return $result;
}
/**
* 获取待签名字符串
* @param array $params 参数数组
* @return string
*/
public function getSignString($params)
{
$params = array_filter($params);
ksort($params);
$signStr = http_build_query($params);
return $signStr;
}
//获取私钥
public function getPrivate()
{
$private = config('unionpay.check.self.private');
return file_get_contents($private);
}
//获取公钥
public function getPublic($self = false)
{
$public = config('unionpay.check.unionpay.public');
if ($self) {
$public = config('unionpay.check.self.public');
}
return file_get_contents($public);
}
}