|
@@ -39,13 +39,13 @@ class AcpService {
|
|
|
}
|
|
|
$logger->LogInfo ('证书更新成功');
|
|
|
return 1;
|
|
|
- } else {
|
|
|
+ } else {
|
|
|
$logger->LogInfo ('证书无需更新');
|
|
|
return 0;
|
|
|
}
|
|
|
} else if($certType === "02"){
|
|
|
return 0;
|
|
|
- } else {
|
|
|
+ } else {
|
|
|
$logger->LogError ('unknown cerType: '. $certType);
|
|
|
return -1;
|
|
|
}
|
|
@@ -62,9 +62,9 @@ class AcpService {
|
|
|
return AcpService::signByCertInfo($params, SDKConfig::getSDKConfig()->signCertPath, SDKConfig::getSDKConfig()->signCertPwd);
|
|
|
} else {
|
|
|
return AcpService::signBySecureKey($params, SDKConfig::getSDKConfig()->secureKey);
|
|
|
- }
|
|
|
+ }
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
static function signByCertInfo(&$params, $cert_path, $cert_pwd) {
|
|
|
|
|
|
$logger = LogUtil::getLogger();
|
|
@@ -72,9 +72,9 @@ class AcpService {
|
|
|
if(isset($params['signature'])){
|
|
|
unset($params['signature']);
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
$result = false;
|
|
|
-
|
|
|
+
|
|
|
if($params['signMethod']=='01') {
|
|
|
//证书ID
|
|
|
$params ['certId'] = CertUtil::getSignCertIdFromPfx($cert_path, $cert_pwd);
|
|
@@ -87,7 +87,7 @@ class AcpService {
|
|
|
$logger->LogInfo ( "摘要sha1x16 >" . $params_sha1x16 );
|
|
|
// 签名
|
|
|
$result = openssl_sign ( $params_sha1x16, $signature, $private_key, OPENSSL_ALGO_SHA1);
|
|
|
-
|
|
|
+
|
|
|
if ($result) {
|
|
|
$signature_base64 = base64_encode ( $signature );
|
|
|
$logger->LogInfo ( "签名串为 >" . $signature_base64 );
|
|
@@ -119,18 +119,18 @@ class AcpService {
|
|
|
$logger->LogInfo ( '=====签名报文结束======' );
|
|
|
return $result;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
static function signBySecureKey(&$params, $secureKey) {
|
|
|
-
|
|
|
+
|
|
|
$logger = LogUtil::getLogger();
|
|
|
-
|
|
|
+
|
|
|
if($secureKey == null || trim($secureKey) == '') {
|
|
|
$logger->LogError ( "密钥没配,签名失败");
|
|
|
return false;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
$logger->LogInfo ( '=====签名报文开始======' );
|
|
|
-
|
|
|
+
|
|
|
if($params['signMethod']=='11') {
|
|
|
// 转换成key=val&串
|
|
|
$params_str = createLinkString ( $params, true, false );
|
|
@@ -203,28 +203,28 @@ class AcpService {
|
|
|
}
|
|
|
} else {
|
|
|
$isSuccess = AcpService::validateBySecureKey($params, SDKConfig::getSDKConfig()->secureKey);
|
|
|
- }
|
|
|
+ }
|
|
|
return $isSuccess;
|
|
|
}
|
|
|
|
|
|
- static function validateBySecureKey($params, $secureKey) {
|
|
|
-
|
|
|
+ static function validateBySecureKey($params, $secureKey) {
|
|
|
+
|
|
|
$logger = LogUtil::getLogger();
|
|
|
-
|
|
|
+
|
|
|
if($secureKey == null || trim($secureKey) == '') {
|
|
|
$logger->LogError ( "密钥没配,验签失败");
|
|
|
return false;
|
|
|
}
|
|
|
$isSuccess = false;
|
|
|
-
|
|
|
+
|
|
|
$signature_str = $params ['signature'];
|
|
|
unset ( $params ['signature'] );
|
|
|
$params_str = createLinkString ( $params, true, false );
|
|
|
$logger->LogInfo ( '报文去[signature] key=val&串>' . $params_str );
|
|
|
$logger->LogInfo ( '签名原文>' . $signature_str );
|
|
|
-
|
|
|
+
|
|
|
if($params['signMethod']=='11') {
|
|
|
-
|
|
|
+
|
|
|
$params_before_sha256 = hash('sha256', $secureKey);
|
|
|
$params_before_sha256 = $params_str.'&'.$params_before_sha256;
|
|
|
$params_after_sha256 = hash('sha256',$params_before_sha256);
|
|
@@ -240,9 +240,9 @@ class AcpService {
|
|
|
}
|
|
|
|
|
|
return $isSuccess;
|
|
|
-
|
|
|
+
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
/**
|
|
|
* @deprecated 5.1.0开发包已删除此方法,请直接参考5.1.0开发包中的VerifyAppData.php验签。
|
|
|
* 对控件支付成功返回的结果信息中data域进行验签
|
|
@@ -283,7 +283,7 @@ class AcpService {
|
|
|
curl_setopt ( $ch, CURLOPT_SSL_VERIFYHOST, false ); // 不验证HOST
|
|
|
curl_setopt ( $ch, CURLOPT_SSLVERSION, 1 ); // http://php.net/manual/en/function.curl-setopt.php页面搜CURL_SSLVERSION_TLSv1
|
|
|
curl_setopt ( $ch, CURLOPT_HTTPHEADER, array (
|
|
|
- 'Content-type:application/x-www-form-urlencoded;charset=UTF-8'
|
|
|
+ 'Content-type:application/x-www-form-urlencoded;charset=UTF-8'
|
|
|
) );
|
|
|
curl_setopt ( $ch, CURLOPT_POSTFIELDS, $opts );
|
|
|
curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, true );
|
|
@@ -464,7 +464,7 @@ eot;
|
|
|
$cert_path = SDKConfig::getSDKConfig()->signCertPath;
|
|
|
$cert_pwd = SDKConfig::getSDKConfig()->signCertPwd;
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
$data = base64_decode ( $data );
|
|
|
$private_key = CertUtil::getSignKeyFromPfx ( $cert_path, $cert_pwd);
|
|
|
openssl_private_decrypt ( $data, $crypted, $private_key );
|
|
@@ -605,6 +605,6 @@ class UnionQuery{
|
|
|
$url = SDKConfig::getSDKConfig()->singleQueryUrl;
|
|
|
|
|
|
$result_arr = AcpService::post ( $params, $url);
|
|
|
- return is_array($result_arr) && $result_arr["origRespCode"] == "00";
|
|
|
+ return is_array($result_arr) && ($result_arr["origRespCode"]??null) === "00";
|
|
|
}
|
|
|
-}
|
|
|
+}
|