Bueno, no se si ayudando, pero intentando seguro.. esto al parecer es prueba y error.
En base al ejemplo que te decia de wso2php, arme esto:
Código PHP:
Ver originaltry {
$rec_cert = ws_get_cert_from_file('../keys/bob_cert.cert');
$pvt_key = ws_get_key_from_file('../keys/alice_key.pem');
$sec_array = array("encrypt"=>TRUE, "algorithmSuite" => "Basic256Rsa15", // lista de algoritnos en http://docs.oasis-open.org/ws-sx/ws-securitypolicy/200702/ws-securitypolicy-1.2-spec-os.html#_Toc161826547
"securityTokenReference" => "EmbeddedToken"
);
$policy = new WSPolicy
(array("security"=>$sec_array));
$sec_token = new WSSecurityToken
(array("privateKey" => $pvt_key, "receiverCertificate" => $rec_cert));
$client = new WSClient
(array("wsdl"=>"https://desarrollo.pse.com.co/PSEWebServices/MainServices.asmx?wsdl", "useWSA" => TRUE,
"policy" => $policy,
"securityToken" => $sec_token
)
);
$proxy = $client->getProxy();
$l = $proxy->getBankList(); // lleva parametros?
} catch (Exception $e) {
if ($e instanceof WSFault) {
printf("Soap Fault: %s\n", $e->Reason); } else {
printf("Message = %s\n",$e->getMessage()); }
}
Fijate que el array que le pasas cuando instancias WSPolicy tiene un monton de opciones (esas no son todas, en la docu de la API aparecen). Por ahi debe estar lo que hay que cambiarle para que ande.
Codigo de .net tenes mas? en una de esas hay pistas ahi.
Con respecto a wse-php, por lo menos es lo que dice que hace xD:
Cita: Currently provides support for employing WS-Security and WS-Addressing when using the native PHP 5 SOAP extension.