config = $data; } /** * 设置baseUrl * @date 2022-06-06 */ public function setUrl($url) { $this->url = $url; } /** * 生成提交结果参数 * @param array $data 公共参数 一般包含method参数 * @param array $bizContent 业务参数 * @return bool|string */ public function actionApi($data, $url = '') { try { $post_url = $this->url . $url; $result = http_data_post($post_url, $data); return $result; } catch (\Exception $e) { $result = [ 'message' => $e->getMessage() ]; return $result; } } //*********************************************** 生成签名和验签 *********************************************** /** * 生成签名 * @param array $data 需要签名的数据 * @date 2022-06-08 */ public function getSign($data) { //先进行键升序排列 ksort($data); //以&连接,拼接成key=value&key=value的字符串 $str = arrayToUrlParams($data); //签名 $sign = getSignData($str, $this->config['private_key'], 1); return $sign; } /** * 验签SHA256WithRSA * @param array $data 需要验证的数据 * @param string $sign 签名 * @date 2022-06-08 */ public function verifySign($data, $sign) { //先进行键升序排列 ksort($data); //以&连接,拼接成key=value&key=value的字符串 $str = arrayToUrlParams($data); //验证签名 $result = verifySignData($str, $sign, $this->config['public_key'], 2); return $result; } //*********************************************** 敏感信息加密和解密 *********************************************** /** * 生成对称秘钥 md5加密为32位 * @date 2022-06-07 */ public function getKey() { return md5($this->key); } /** * AES-265-ECB加密 * @param array $arr 加密信息 * @param string $key 加密秘钥 * @date 2022-06-08 */ public function encrypt($arr, $key) { //转json $arr = json_encode($arr); //返回加密结果 return encryptData($arr, $key, 'aes-256-ecb'); } /** * 生成数字信封 * @param string $data 需要加密的信息 * @date 2022-06-08 */ public function encryptWithPKCS1($data) { $encrypted = encryptDataByReceiveCert($data, $this->config['public_key'], 2); return $encrypted; } }