代码初始化

This commit is contained in:
2025-08-07 20:21:47 +08:00
commit 50f3a2dbb0
2191 changed files with 374790 additions and 0 deletions

View File

@@ -0,0 +1,85 @@
<?php
use think\Env;
class TongLian
{
/**
* 通联支付
*/
public function TongLianPay($date, $type) {
$data['appid'] = Env::get('AllinPay.appId');//平台分配的APPID
$data['body'] = $date['remarke'];//订单标题(不能有空格)
$data['cusid'] = Env::get('AllinPay.cusid');//平台分配的商户号
$data['notify_url'] = get_system_config_value("web_site")."/api/Payment/allinpayNotify";//服务器异步通知页面路径
if($type == 4){//4通联支付宝 5通联微信
$data['paytype'] = 'A02';//支付方式 支付宝A02
}elseif($type == 5){
$data['paytype'] = 'W06';//支付方式 微信小程序固定W06
}
$data['randomstr'] = uniqid();//商户自行生成的随机字符串
$data['remark'] = $type;//订单备注信息
$data['reqsn'] = $date['order_sn'];//商户订单号
$data['version'] = '12';//版本号 默认为12
$data['trxamt'] = strval($date['money']*100);//付款金额 单位为分
$data['signtype'] = 'RSA';//签名类型 RSA/RSA2/SM2
$data['sign'] = $this->Sign($data);//签名
ksort($data);
// var_dump($data);die;
return $data;
}
//RSA签名
public function Sign(array $array){
ksort($array);
$bufSignSrc = $this->ToUrlParams($array);
//用商户的RSA私钥进行签名
$private_key = Env::get('AllinPay.cusRsaPrivateKey');
$private_key = chunk_split($private_key , 64, "\n");
$key = "-----BEGIN RSA PRIVATE KEY-----\n".$private_key."-----END RSA PRIVATE KEY-----";
if(!openssl_sign($bufSignSrc, $signature, $key)) {
echo 'sign fail';
}
//加密后的内容通常含有特殊字符需要编码转换下在网络间通过url传输时要注意base64编码是否是url安全的
return base64_encode($signature);
}
//生成键值对字符串
public function ToUrlParams(array $array)
{
$buff = "";
foreach ($array as $k => $v)
{
if($v != "" && !is_array($v)){
$buff .= $k . "=" . $v . "&";
}
}
$buff = trim($buff, "&");
return $buff;
}
/**
* 校验签名
* @param array 参数
* @param unknown_type appkey
*/
public function ValidSign(array $array){
$sign =$array['sign'];
unset($array['sign']);
ksort($array);
$bufSignSrc = $this->ToUrlParams($array);
//通联的公钥进行验签
$public_key = Env::get('AllinPay.allpayrsaPublicKey');
$public_key = chunk_split($public_key , 64, "\n");
$key = "-----BEGIN PUBLIC KEY-----\n".$public_key."-----END PUBLIC KEY-----\n";
$result= openssl_verify($bufSignSrc,base64_decode($sign),$key);
return $result;
}
}