Hola Argel. Buenos días.
Te comento para tener acceso a toda la información del XML lo que tienes que hacer es descargar estos archivos, o bien, su contenido. Para esto tienes que hacer uso de la clase Attachment que te permitirá descargar todos los archivos adjuntos, en este caso XMLs de algún usuario.
Ahora bien, puesto que Paybook maneja todo tipo de transacciones (bancarias y CFDIs) los archivos adjuntos pueden tener diferentes formatos e.g. PDF, XML, etc. En particular al consultar los catálogos del API verás los siguientes tipos de archivos adjuntos:
- CFDI (XML)
- CFDI (PDF)
- Cancellation Acknowledgment
- Sample XML
Entonces lo conveniente es filtrar los archivos adjuntos para obtener aquellos que tienen el formato que a ti te interesa, en este caso CFDI (XML). Lo primero es obtener el id del tipo de archivo adjunto de tu interés:
$attachment_types = paybook\Catalogues::get_attachment_types($session);
$xml_attachment_type_id = null;
foreach ($attachment_types as $index => $attachment_type) {
if ($attachment_type->name == ‘CFDI (XML)’) {
$xml_attachment_type_id = $attachment_type->id_attachment_type;
break;
}
}
Una vez que ya tiene el tipo de archivo adjunto que quieres descargar puedes hacer la consulta con la clase Attachment para traer todos los archivos de este tipo:
$options = [
'id_attachment_type' => $xml_attachment_type_id,
];
$sat_attachments = paybook\Attachment::get($session, null, null, null, $options);
Importante Argel, esto te regresará un arreglo con metadata de todos los archivos adjuntos, más no los archivos adjuntos en sí, el siguiente paso consistiría en que por cada elemento del arreglo tienes que descargar el contenido, esto lo haces de la siguiente manera:
foreach ($sat_attachments as $index => $sat_attachment) {
$url = $sat_attachment->url;
$id_attachment = substrr($url, 1, strlen($url));
$xml_attached = paybook\Attachment::get($session, null, $id_attachment);
}
$xml_attached será el contenido de cada XML descargado en “string”. Teniendo acceso a éste tu ya puedes parsearlo al formato que requieras para tener acceso a la información de éste.
Espero sea de tu ayuda esta información. Saludos.