$rocket]); $rocket->mergePayload(['sign' => $this->getSign($rocket)]); Logger::info('[Alipay][AddPayloadSignaturePlugin] 插件装载完毕', ['rocket' => $rocket]); return $next($rocket); } /** * @throws ContainerException * @throws InvalidConfigException * @throws ServiceNotFoundException */ protected function getSign(Rocket $rocket): string { $privateKey = $this->getPrivateKey($rocket->getParams()); $content = $rocket->getPayload()->sortKeys()->toString(); openssl_sign($content, $sign, $privateKey, OPENSSL_ALGO_SHA256); return base64_encode($sign); } /** * @throws ContainerException * @throws InvalidConfigException * @throws ServiceNotFoundException */ protected function getPrivateKey(array $params): string { $privateKey = get_provider_config('alipay', $params)['app_secret_cert'] ?? null; if (is_null($privateKey)) { throw new InvalidConfigException(Exception::CONFIG_ALIPAY_INVALID, '配置异常: 缺少支付宝配置 -- [app_secret_cert]'); } return get_private_cert($privateKey); } }