excelente

ya tengo lista la cancelacion con Edicom
les dejo un pedazo de codigo en php
Código: Seleccionar todo
$response = $pac->CancelaCfdi($user, $pw, $row["rfc"], $row["uuid"], $path, $row["passwordCertificado"]);
Código: Seleccionar todo
function CancelaCfdi($user, $pw, $rfc, $uuid, $pfx, $pfxPassword)
{
//open zip and encode it
$fh = fopen($pfx, 'r');
$theData = fread($fh, filesize($pfx));
$encoded = base64_encode($theData);
fclose($fh);
require_once(DOC_ROOT.'/libs/nusoap.php');
$client = new nusoap_client('https://cfdiws.sedeb2b.com/EdiwinWS/services/CFDi?wsdl', true);
$client->useHTTPPersistentConnection();
$params = array(
'user' => $user,
'password' => $pw,
'rfc' => $rfc,
'uuid' => $uuid,
'pfx' => "$zipFileEncoded",
'pfxPassword' => $pfxPassword
);
$response = $client->call('cancelaCFDi', $params, 'http://cfdi.service.ediwinws.edicom.com/');
//errors
if($response["faultcode"])
{
print_r($response);
return "fault";
}
return $response;
}
Lo mas complicado fue saber que el archivo que necesitan es un PFX que debe de ser generado ON THE FLY...como no fregaos usaron 2 parametros..uno para el cer y el otro para el key :/ pero bueno

ya salio
Ejemplo de respuesta
Código: Seleccionar todo
[cancelaCFDiReturn] => Array
(
[ack] => PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48czpFbnZlbG9wZSB4bWxuczpzPSJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy9zb2FwL2VudmVsb3BlLyI+PHM6QmlbGFDRkRSZXNwb25zZT48L3M6Qm9keT48L3M6RW52ZWxvcGU+ - very long text
[text] => 00AEF53D-7CA9-426D-A986-8949A9372720~PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48czpFbnZlbG9wZSB4bWxuczpzPSJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy9zb2FwL2VudmVsbb3hoejR5RU09PC9Nb2R1bHVzPjxFeHBvbmVudD5BUUFCPC9FeHBvbmVudD48L1JTQUtleVZhbHVlPjwvS2V5VmFsdWU+PC9LZXlJbmZvPjwvU2lnbmF0dXJlPjwvQ2FuY2VsYUNGRFJlc3VsdD48L0NhbmNlbGFDRkRSZXNwb25zZT48L3M6Qm9keT48L3M6RW52ZWxvcGU+ = very long text
[uuids] => Array
(
[uuids] => 00AEF53D-7CA9-426D-A986-8949A9372720
)