我的PHP文件位于Web服务器上,该服务器正在对需要传输和消息级加密的端点进行HTTPS调用。传输级加密已经实现,但是在尝试实现消息级加密时遇到问题。
我考虑的一种解决方案是使用openssl_sign和openssl_encrypt在消息层上对数据进行签名和加密。问题在于__soapCall仅采用数组格式的请求有效负载,而openssl_sign和openssl_encrypt仅采用要以字符串格式加密的消息。
因此在下面的代码中-最佳方法是分解__soapCall函数,以便我仍然可以以__soapCall期望的数组格式输入参数,并且一旦__soapCall便能够签名和加密请求消息在将数组格式传递给端点之前将其转换为XML字符串格式。
如果有更好的方法可以加密消息层,请告诉我。如果有一种方法可以分解__soapCall,以便当消息为XML字符串格式时可以对消息进行加密,那将是最佳选择。但是我愿意接受任何解决方案。
谢谢。
$params = array(
'ReturnRequest' => array(
'source' => $source_id,
'key' => $key_id
)
);
try {
$response = $client -> __soapCall("ReturnOperation", $params);
} catch (SoapFAULT $fault) {
trigger_error("SOAP Fault: (faultcode: {$fault -> faultcode}, faultstring: {$fault -> faultstring})", E_USER_ERROR);
}