VER MANUAL
<?php
error_reporting(E_ALL ^ (E_NOTICE | E_WARNING | E_DEPRECATED));
date_default_timezone_set('America/Panama');
require_once 'sdk2/sdk2.php';
$datos['xml']='carpeta/almacenar_factura123.xml';
$datos['rFE']['gDGen']['dNroDF']='0000083458';
$datos['rFE']['gDGen']['dSeg']='836882747';
$datos['rFE']['gDGen']['dFechaEm']='AUTO';
$datos['rFE']['gDGen']['gEmis']['dTfnEm']['0']='123-4567';
$datos['rFE']['gDGen']['gEmis']['dCorElectEmi']['0']='demo@siteck.com.mx';
$datos['PAC']['usuario']='844084-1-504061';
$datos['PAC']['pass']='pruebapruebapruebapruebapruebapruebapruebapruebapruebapruebapruebapruebapruebapruebapruebapruebapruebapruebapruebaprueba';
$datos['PAC']['QR']='CEA4A5457603B609E05349D1950A8972CEA4A5457604B609E05349D1950A8972CEA4A5457605B609E05349D1950A8972CEA4A5457606B609E05349D1950A8972';
$datos['conf']['cer']='certificados/certificado_kit.cer';
$datos['conf']['pass']='YdWkLXgHoUaXJk';
$res = mf_genera_fepanama($datos);
echo '<h1>Respuesta Generar XML y Timbrado</h1>';
foreach ($res AS $variable => $valor) {
$valor = htmlentities($valor);
echo "<b>[$variable]=</b>$valor<hr>";
}
VER MANUAL
VER VIDEO
xml=C:\sdk2\timbrados\factura123.xml
[rFE]
[rFE.gDGen]
dNroDF=0000083458
dFechaEm=AUTO
dSeg=836882747
[rFE.gDGen.gEmis]
[rFE.gDGen.gEmis.dTfnEm]
0=123-4567
[rFE.gDGen.gEmis.dCorElectEmi]
0=demo@siteck.com.mx
[PAC]
usuario=844084-1-504061
QR=CEA4A5457603B609E05349D1950A8972CEA4A5457604B609E05349D1950A8972CEA4A5457605B609E05349D1950A8972CEA4A5457606B609E05349D1950A8972
pass=pruebapruebapruebapruebapruebapruebapruebapruebapruebapruebapruebapruebapruebapruebapruebapruebapruebapruebapruebaprueba
[conf]
pass=YdWkLXgHoUaXJk
cer=c:\sdk2\certificados\certificado_kit.cer
Pasos:
- Instalar el ejecutable SDK2.exe
- Crear un archivo llamado c:\alguna_carpeta\factura.ini
- Ejecutar en linea de comandos c:\sdk2\timbrar64.bat "c:\alguna_carpeta\factura.ini"
- Ver archivo de respuesta en c:\alguna_carpeta\factura
_respuesta.ini
Desde C#, VB, VFP, etc... utiliza la función para ejecutar comandos del sistema; los nombres comunes tienen nombre system, exec, shell_exec o similares los cuales variara su sintaxis según el lenguaje de programación
VER MANUAL
DESCARGAR PROYECTO C# CONTINGENCIA USO PREVIO
MFSDK sdk;
sdk = new MFSDK();
sdk.Iniciales.Add("MODOINI", "DIVISOR");
sdk.Iniciales.Add("RESPUESTA_UTF8", "SI");
sdk.Iniciales.Add("xml", @"C:\sdk2\timbrados\factura123.xml");
//#NODO [rFE]
MFObject rFE = new MFObject("rFE");
//#NODO [rFE/gDGen]
MFObject rFE_gDGen = new MFObject("gDGen");
rFE_gDGen["dNroDF"] = "0000083458";
rFE_gDGen["dFechaEm"] = "AUTO";
rFE_gDGen["dSeg"] = "836882747";
//#NODO [rFE/gDGen/gEmis]
MFObject rFE_gDGen_gEmis = new MFObject("gEmis");
//#NODO [rFE/gDGen/gEmis/dTfnEm]
MFObject rFE_gDGen_gEmis_dTfnEm = new MFObject("dTfnEm");
rFE_gDGen_gEmis_dTfnEm["0"] = "123-4567";
rFE_gDGen_gEmis.AgregaSubnodo(rFE_gDGen_gEmis_dTfnEm);
//#NODO [rFE/gDGen/gEmis/dCorElectEmi]
MFObject rFE_gDGen_gEmis_dCorElectEmi = new MFObject("dCorElectEmi");
rFE_gDGen_gEmis_dCorElectEmi["0"] = "demo@siteck.com.mx";
rFE_gDGen_gEmis.AgregaSubnodo(rFE_gDGen_gEmis_dCorElectEmi);
rFE_gDGen.AgregaSubnodo(rFE_gDGen_gEmis);
//#NODO [conf]
MFObject conf = new MFObject("conf");
conf["pass"] = "YdWkLXgHoUaXJk";
conf["cer"] = @"C:\sdk2\certificados\certificado_kit.cer";
//#NODO [PAC]
MFObject PAC = new MFObject("PAC");
PAC["usuario"] = "844084-1-504061";
PAC["QR"] = "CEA4A5457603B609E05349D1950A8972CEA4A5457604B609E05349D1950A8972CEA4A5457605B609E05349D1950A8972CEA4A5457606B609E05349D1950A8972";
PAC["pass"] = "pruebapruebapruebapruebapruebapruebapruebapruebapruebapruebapruebapruebapruebapruebapruebapruebapruebapruebapruebaprueba";
//#Agrega Nodos
rFE.AgregaSubnodo(rFE_gDGen);
sdk.AgregaObjeto(rFE);
sdk.AgregaObjeto(PAC);
sdk.AgregaObjeto(conf);
//#Ejecuta KIT
SDKRespuesta respuesta = sdk.Timbrar(@"C:\sdk2\timbrar32.bat", @"C:\sdk2\timbrados\", "factura", false);
//Muestra el archivo ini
//textBox1.Text = sdk.Ini;
//Muestra la respuesta de timbrado
//textBox2.Text = respuesta.RespuestaOriginalSDK;
// Se notifica que el SDK se ejecutó
string mensaje = string.Format("Código: {0}\r\nMensaje: {1}", respuesta.Codigo_MF_Numero, respuesta.Codigo_MF_Texto);
MessageBox.Show(this, mensaje, Application.ProductName, MessageBoxButtons.OK, respuesta.Codigo_MF_Numero == "0" ? MessageBoxIcon.Information : MessageBoxIcon.Warning);
VER MANUAL
VER VIDEO APIREST JSON C#
CODIGO FUENTE C#
variable modo (formato de respuesta) : JSON(default)|INI|DIVISOR|SERIALIZE|XML
variable json :
NOTA: parametro conf/cer es el archivo en base64
{
"rFE": {
"gDGen": {
"dNroDF": "0000083458",
"dSeg": 836882747,
"dFechaEm": "AUTO",
"gEmis": {
"dTfnEm": [
"123-4567"
],
"dCorElectEmi": [
"demo@siteck.com.mx"
]
}
}
},
"PAC": {
"usuario": "844084-1-504061",
"pass": "pruebapruebapruebapruebapruebapruebapruebapruebapruebapruebapruebapruebapruebapruebapruebapruebapruebapruebapruebaprueba",
"QR": "CEA4A5457603B609E05349D1950A8972CEA4A5457604B609E05349D1950A8972CEA4A5457605B609E05349D1950A8972CEA4A5457606B609E05349D1950A8972"
},
"conf": {
"cer": "QmFnIEF0dHJpYnV0ZXMKICAgIGZyaWVuZGx5TmFtZTogY249W0ZdIEZPUk1VTEFSSU9TIENPTUVSQ0lBTEVTLCBTLkEuICAgIC0gODQ0MDg0LTEtNTA0MDYxIC0gMDAgLSBDSEFOSVMgVEVKQURBIE1BTlVFTCBSSUNBUkRPLG91PUZBQ1RVUkEgRUxFQ1RST05JQ0Esbz1GSVJNQSBFTEVDVFJPTklDQSxjPVBBIE5vbi1yZXB1ZGlhdGlvbiBLZXkKICAgIGxvY2FsS2V5SUQ6IDI3IEZCIDBBIEZFIEZDIDFBIEM0IDU2IEM2IDMxIDBEIDMzIDMxIDJEIDYwIEJGIApLZXkgQXR0cmlidXRlczogPE5vIEF0dHJpYnV0ZXM+Ci0tLS0tQkVHSU4gRU5DUllQVEVEIFBSSVZBVEUgS0VZLS0tLS0KTUlJRkhEQk9CZ2txaGtpRzl3MEJCUTB3UVRBcEJna3Foa2lHOXcwQkJRd3dIQVFJektKYlRnNG9aVzBDQWdnQQpNQXdHQ0NxR1NJYjNEUUlKQlFBd0ZBWUlLb1pJaHZjTkF3Y0VDQjlYVEpiRWliNTBCSUlFeUdubXpDSVpnSFNwCkNITmlVSUwweVJuaUJvK3hWY0ZDTGJ6YkJWRDNaT0JFK0ZITHAvM3BVQXZnOVVnTVRkQ041a2RvTGNYcWx4UVIKems4Y29ZRkJHOVllSXJ4eXpadmVqNEIzVk1YM3VEcjNhS1puMCtLRTI5dlFTMXNVK0VPbk1jY3VXQitiaGNSdAoxTE5qR1lJSWpqdCtZMHBwdURFWExnbGU2SllleEhVNmxLdy9YamlZVXpTVmJXWGk4Zy9QY1htSElwSXA0T3VKCmlFUzlIZVF2K2V5TDRoSG1HaTV0OVA1ZWdNOUI5T2hlb25USmJ5USs1VkhuK2tKRXMxOVo5SU5ZakVxRk9OYnQKd0hYdi9WSHVkRnYxa0VjL3N6RlJRQnVHSENZeGx0QmJ4UjZKTnF1cHovK2xOQXQ0TGRZVFVBc1FGcXowZ1VCdgpPc2o2a0EyMSsvSzg0UUVkSHNIQ2Rjb1R5bEY4VXdDZVdpbDBBd2V6Ti92amNUN2Z4SEtZNmJPaGltVVJYY2FFCldQTzlYYllwSThVektZeG9pN2trTHdQSkpTVHN4TzFLUFJxUXFMb3UwVldObzh6SUxDVnlrSUE5S1JHb0h1ZWYKNE11R1gvQXBYMkdnRFNjaTFKK0dRVUs0Z09YVVc4cjZ0aTQ1cFg4SVo1R2RkWlNsQ3RvTnFRdUdiblNHSmdhWQp2Rm1xVm4xUlR5LzluV0ZzdnFzQk03WTI3NjVRTjRlRlI2a3ZLWGVhUXgra3VnTmxCWHdNOWl6WitVVUo5dGlXCkNvMG9VY3ZnM3BhZGNwZFRwM29ZM2VYRVhjWHJuYm51dy9vVzlMR2d3Q2FnYjZlRXFzMUlWVzArQnZhSXNqQkMKT0F3c1ZFNEFGYWV1clZWamNmNHBBeXhTMk5YUmh3M3JTMTlMYy84Um9pMFU5WGRNRVdDTW1Oa1RCUGpwVkVMbAo2dHFDa1pHRWVGaEhtOGRBdUthby8xRHppNnVpKzdVN3BLNllScGlaVjNpRW4zemlvcnFmUVkxdVFicFE3cEZpCmpCeS9DaTMwaGx2d01CSXc2b2V6ME8xK2cxUERQRkltQ0tScGZPdXNXc1RGajF6a1RqcjdOM0RkQkM1OTNWY3EKZElCdUk1V01KREFURkx5ZzgzL0VMRnZERHMwOXBzZWZxS3hpbzhGcDZwRUJFYTBHRkoyUmY0WjIvSW9CbU1TegprQmJZMjBSdEhUdCs4TGdUTTUxeER2cGhoL3U2aWpXQWZQZ1pycVNrUHhJcjY1OWJ0dGhjVzlxOU5IUFYwUEgwCkNNWXFSSGdSejhDTHByV0Y0b2xDNkd0S2ZJTmVhVGdKM0x6M25zTUtNdGJCcHhDZ0kzY0hQaFVaQ05nellTSzEKdU4ycE53ZlpGZ3B2S3VhUXpwYUxvcC9hQ0JJMS9la0kyVFlQdlcvNnErc3kydjJaR2NYejJ2UHpsRzdlZ0ozTgo4VC8zUjFoNmZwemgwc1FaSGRDZHlTdUZVUFNnY2s5MWlrNWZRVy9BL2dPWUxUY3oyL001U0FKSStVRFVuOUJiClYrTzFtb0VMTmkvSW52aFJOZjdQNmZvN2pWUFRKcFRXM1dJMjJiTjkxWXpCZERzbVBvVGRlaWRxZG5JTlRLb1kKRHkyRWh5Y2FUMXVtQ1FVU3FXaFhWeEt3L3BQL3l0WlJHVlQ5amhFTXJta29lcllXdmtldklMVm0wZHR1bzliawpmUlJPZjlzRjhoUjRNR2habitpVTRtK1FOcEJYekMzdW9oQU1BZi9XdEg3Z1k0WlVjVnlvaHhNdGk2S0ZPellQClZodzVhWHhrT25DMUMvNGNwWC8zZlBobFBwZTNMcWtmVGJVK2ZvOFdqY2RVL1RtWXlaQTdjUFRtOHAzOVVVMWsKY0ZMSjVEazVwVjdkdi9EOHA2ajVWVE1OUi9EdldrTjNGUjhSUStuUGRqVVJVa0FvcWJ6QnM2N3RtVHd4VFM4Zwp0T0VXUEl6dTlNRTFuenVjSXFJVi9pWVdvSlhyYWFLT3M4cWF3ckxCNGRnU3FocGpxZDUyQUFDbnBXdTV6aERiCkw5Mk41Z2xGQXl4SUhGTFpneXU0cUZTNHBacTlnbWRPUEkwWWRSZEozU3NSUHg3Q1RhRXk2QjFsS1puM1ZNbkcKaTdRZy9xZHpkRjJBQkdNYXFWYW42UT09Ci0tLS0tRU5EIEVOQ1JZUFRFRCBQUklWQVRFIEtFWS0tLS0tCkJhZyBBdHRyaWJ1dGVzCiAgICBmcmllbmRseU5hbWU6IGNuPVtGXSBGT1JNVUxBUklPUyBDT01FUkNJQUxFUywgUy5BLiAgICAtIDg0NDA4NC0xLTUwNDA2MSAtIDAwIC0gQ0hBTklTIFRFSkFEQSBNQU5VRUwgUklDQVJETyxvdT1GQUNUVVJBIEVMRUNUUk9OSUNBLG89RklSTUEgRUxFQ1RST05JQ0EsYz1QQSBOb24tcmVwdWRpYXRpb24gQ2VydGlmaWNhdGUKICAgIGxvY2FsS2V5SUQ6IDI3IEZCIDBBIEZFIEZDIDFBIEM0IDU2IEM2IDMxIDBEIDMzIDMxIDJEIDYwIEJGIApzdWJqZWN0PUMgPSBQQSwgTyA9IEZJUk1BIEVMRUNUUk9OSUNBLCBPVSA9IEZBQ1RVUkEgRUxFQ1RST05JQ0EsIENOID0gIltGXSBGT1JNVUxBUklPUyBDT01FUkNJQUxFUywgUy5BLiAgICAtIDg0NDA4NC0xLTUwNDA2MSAtIDAwIC0gQ0hBTklTIFRFSkFEQSBNQU5VRUwgUklDQVJETyIKCmlzc3Vlcj1DID0gUEEsIE8gPSBGSVJNQSBFTEVDVFJPTklDQSwgQ04gPSBDQSBQQU5BTUEgQ0xBU0UgMgoKLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUdnekNDQld1Z0F3SUJBZ0lRSi9zSy92d2F4RmJHTVEwek1TMWd2ekFOQmdrcWhraUc5dzBCQVFzRkFEQkYKTVFzd0NRWURWUVFHRXdKUVFURWFNQmdHQTFVRUNnd1JSa2xTVFVFZ1JVeEZRMVJTVDA1SlEwRXhHakFZQmdOVgpCQU1NRVVOQklGQkJUa0ZOUVNCRFRFRlRSU0F5TUI0WERUSTFNRGt4TlRFNE5ETTBNVm9YRFRJM01Ea3hOVEU0Ck5ETTBNVm93Z2F3eEN6QUpCZ05WQkFZVEFsQkJNUm93R0FZRFZRUUtEQkZHU1ZKTlFTQkZURVZEVkZKUFRrbEQKUVRFY01Cb0dBMVVFQ3d3VFJrRkRWRlZTUVNCRlRFVkRWRkpQVGtsRFFURmpNR0VHQTFVRUF3eGFXMFpkSUVaUApVazFWVEVGU1NVOVRJRU5QVFVWU1EwbEJURVZUTENCVExrRXVJQ0FnSUMwZ09EUTBNRGcwTFRFdE5UQTBNRFl4CklDMGdNREFnTFNCRFNFRk9TVk1nVkVWS1FVUkJJRTFCVGxWRlRDQlNTVU5CVWtSUE1JSUJJakFOQmdrcWhraUcKOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQXBXdDhEUnQ1L2Vzb1hQR3lZWHRYVEZHWUhJeWVBQVQxTDRkOApQRzU1UldPdHFVaEpOeHBIZWMwUit1MWFXQm0wc001WUhuaWJjSm9IOThsOUcrTlhySEJrWHlKdElYYXkyc2I1CkczT3hlR0lCSWZjU3grTkN0UGczRDMrRWxBQVBaaGVhekUvOElJeVJEMTFveVRiOVNZUGUrTlFoVnZCSW8yRkQKcGMrQmpyRHE1SllyZlo1VGF4L0ZoWUErREI2Vjc0Um16K0lwN3Y0VUNDbVNPN3hKL1B6TFR3Rzh4Z05Tb0pyegpHQnlpOWg4azJ2ajNSeUJFQzNiRUVOSzBESzJpbEp5dFJIUlFiSTY2d2xsYytPcENKTjZEWUJFSm5qL3lKeWRQCnQrU3BXUW5TWDVsL3I5dzhTemRZaW16b0JVUzZzbVJ2MmhxV0RMNlcraUQvQlA5dkh3SURBUUFCbzRJREJUQ0MKQXdFd0RnWURWUjBQQVFIL0JBUURBZ1pBTUJrR0ExVWRKUVFTTUJBR0NDc0dBUVVGQndNQ0JnUlZIU1VBTUdjRwpDQ3NHQVFVRkJ3RUJCRnN3V1RBaUJnZ3JCZ0VGQlFjd0FZWVdhSFIwY0RvdkwyOWpjM0F1Y0d0cExtZHZZaTV3CllUQXpCZ2dyQmdFRkJRY3dBb1luYUhSMGNEb3ZMM2QzZHk1d2Eya3VaMjlpTG5CaEwyTmhZMlZ5ZEhNdlkyRncKWXpJdVkzSjBNSUhLQmdOVkhTQUVnY0l3Z2I4d2did0dDR0NFVHdFQ0FnWUNNSUd2TURZR0NDc0dBUVVGQndJQgpGaXBvZEhSd09pOHZkM2QzTG5CcmFTNW5iMkl1Y0dFdmJtOXliV0YwYVhaaEwybHVaR1Y0TG1oMGJXd3dkUVlJCkt3WUJCUVVIQWdJd2FScG5RMlZ5ZEdsbWFXTmhaRzhnYzNWcVpYUnZJR0VnYkdFZ1JHVmpiR0Z5WVdOcGIyNGcKWkdVZ1VISmhZM1JwWTJGeklHUmxJRU5sY25ScFptbGpZV05wYjI0Z1pHVWdSbWx5YldFZ1JXeGxZM1J5YjI1cApZMkVnWkdVZ1VHRnVZVzFoSUNneU1ERXlLVENDQVJvR0ExVWRFUVNDQVJFd2dnRU5wSUgwTUlIeE1RNHdEQVlICllJUlBBUUVHQWd3Qk1qRVBNQTBHQjJDRVR3RUJCZ0VNQWpBd01Sd3dHZ1lIWUlSUEFRRUNBZ3dQT0RRME1EZzAKTFRFdE5UQTBNRFl4TVNvd0tBWUhZSVJQQVFFQ0FRd2RSazlTVFZWTVFWSkpUMU1nUTA5TlJWSkRTVUZNUlZNcwpJRk11UVM0eEZ6QVZCZ2RnaEU4QkFRRUdEQW95TlM4d05pOHhPVFl4TVJZd0ZBWUhZSVJQQVFFQkJRd0pPQzAwCk9EZ3RNek15TVJNd0VRWUhZSVJQQVFFQkJBd0dWRVZLUVVSQk1STXdFUVlIWUlSUEFRRUJBd3dHUTBoQlRrbFQKTVJRd0VnWUhZSVJQQVFFQkFnd0hVa2xEUVZKRVR6RVRNQkVHQjJDRVR3RUJBUUVNQmsxQlRsVkZUSUVVY21ObwpZVzVwYzBCamQzQmhibUZ0WVM1dVpYUXdOUVlEVlIwZkJDNHdMREFxb0NpZ0pvWWthSFIwY0RvdkwzZDNkeTV3CmEya3VaMjlpTG5CaEwyTnliSE12WTJGd1l6SXVZM0pzTUI4R0ExVWRJd1FZTUJhQUZPaitiUFlJbFNxNjNHUzUKb0ZsdTdkQzg4TWx5TUIwR0ExVWREZ1FXQkJTOE8vZHpoTWQ1OWJ4c1d0Q1VYYVBac0V6Rk1EQUpCZ05WSFJNRQpBakFBTUEwR0NTcUdTSWIzRFFFQkN3VUFBNElCQVFBZWtTa0ljRFFIS2dRSHB4OVFmSjQvdk1IOWg1MTArKzN6CmMwMDUrS3Y3RWROcC9YNFQ2Sm85RGZ6bVphemp2K1ZldXo2Mk0yS3BTY3lScG1VOWpFTU8yRGZXNlAwT1dNNVYKTSt4ZFVkOXc3dzRrdzFiQlZxcDZYSlV2Y25BUnpjaDVRYmRUMytCa2FjbkQ3Qm9MOHYvQ2lyUDZrL0tyeGFPMQpBWjIxZm9WcFlZaG1OVUptSFVlQVRsdlRTS1dkSTB0T0lTS2xTQ25rdmhMQi9maUFiOUVwakVKMGtZamxBczZWCjZEeTI1OVlqZjJ4cU5VbjhYUDN1bEh2dnNpRWY2TWEvUklPbVFvVUpxd1JNYTliVjhJNUVLUVJmV04yQm05Y3cKOXJKU0lHb3pubUk0S2dEdEh0bmhJTFpwYXlXU1NORDlhY2RhckZzUWVkRXRWRE5nU3QyRwotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==",
"pass": "YdWkLXgHoUaXJk"
}
}
Ejemplo PHP
$datospost['json']=$datos_factura_json;
$datospost['modo']='JSON';
$res=callAPI('POST', $url, $datospost);
echo $res;
function callAPI($method, $url, $data){
$curl = curl_init();
$options = array(
CURLOPT_RETURNTRANSFER => true, // return web page
CURLOPT_HEADER => false, // don't return headers
CURLOPT_FOLLOWLOCATION => false, // follow redirects
CURLOPT_MAXREDIRS => 1, // stop after 10 redirects
CURLOPT_ENCODING => "", // handle compressed
CURLOPT_USERAGENT => "api-mf", // name of client
CURLOPT_AUTOREFERER => true, // set referrer on redirect
CURLOPT_CONNECTTIMEOUT => 10, // time-out on connect
CURLOPT_TIMEOUT => 10, // time-out on response
);
curl_setopt_array($curl, $options);
switch ($method){
case "POST":
curl_setopt($curl, CURLOPT_POST, 1);
if ($data)
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
break;
case "PUT":
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "PUT");
if ($data)
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
break;
default:
if ($data)
$url = sprintf("%s?%s", $url, http_build_query($data));
}
// OPTIONS:
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
'APIKEY: 111111111111111111111',
'test-test: application/json',
));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
// EXECUTE:
$result = curl_exec($curl);
if(!$result){die("Connection Failure");}
curl_close($curl);
return $result;
}
Ejemplo C#
using System.Net;
using System.Collections.Specialized;
using System.Text;
var wb = new WebClient();
var data = new NameValueCollection();
string url = "https://pruebasws.siteck.mx/api/";
data["modo"] = "JSON";
data["json"] = entrada.Text;
byte[] responseArray = wb.UploadValues(url, "POST", data);
respuestaws.Text = Encoding.Default.GetString(responseArray);
Ejemplo VB .net
Dim wb As var = New WebClient()
Dim data As var = New NameValueCollection()
Dim url As String = "https://pruebasws.siteck.mx/api/"
data("modo") = "JSON"
data("json") = entrada.Text
Dim responseArray() As Byte = wb.UploadValues(url,"POST",data)
respuestaws.Text = Encoding.Default.GetString(responseArray)
Ejemplo Python
#check if module is installed "python -m pip install requests"
import requests
import json
url = "https://pruebasws.siteck.mx/api/"
datos = {
"modo": "JSON",
"json": """
INSERTAR STRING JSON AQUI
"""
}
response = requests.post(url, datos,verify=False)
print(response.text)
VER MANUAL
VER VIDEO APIREST TXT C#
variable modo (formato de respuesta) : JSON(default)|INI|DIVISOR|SERIALIZE|XML
variable txt :
NOTA: parametro conf/cer es el archivo en base64
[rFE]
[rFE.gDGen]
dNroDF=0000083458
dFechaEm=AUTO
dSeg=836882747
[rFE.gDGen.gEmis]
[rFE.gDGen.gEmis.dTfnEm]
0=123-4567
[rFE.gDGen.gEmis.dCorElectEmi]
0=demo@siteck.com.mx
[PAC]
usuario=844084-1-504061
QR=CEA4A5457603B609E05349D1950A8972CEA4A5457604B609E05349D1950A8972CEA4A5457605B609E05349D1950A8972CEA4A5457606B609E05349D1950A8972
pass=pruebapruebapruebapruebapruebapruebapruebapruebapruebapruebapruebapruebapruebapruebapruebapruebapruebapruebapruebaprueba
[conf]
cer=QmFnIEF0dHJpYnV0ZXMKICAgIGZyaWVuZGx5TmFtZTogY249W0ZdIEZPUk1VTEFSSU9TIENPTUVSQ0lBTEVTLCBTLkEuICAgIC0gODQ0MDg0LTEtNTA0MDYxIC0gMDAgLSBDSEFOSVMgVEVKQURBIE1BTlVFTCBSSUNBUkRPLG91PUZBQ1RVUkEgRUxFQ1RST05JQ0Esbz1GSVJNQSBFTEVDVFJPTklDQSxjPVBBIE5vbi1yZXB1ZGlhdGlvbiBLZXkKICAgIGxvY2FsS2V5SUQ6IDI3IEZCIDBBIEZFIEZDIDFBIEM0IDU2IEM2IDMxIDBEIDMzIDMxIDJEIDYwIEJGIApLZXkgQXR0cmlidXRlczogPE5vIEF0dHJpYnV0ZXM+Ci0tLS0tQkVHSU4gRU5DUllQVEVEIFBSSVZBVEUgS0VZLS0tLS0KTUlJRkhEQk9CZ2txaGtpRzl3MEJCUTB3UVRBcEJna3Foa2lHOXcwQkJRd3dIQVFJektKYlRnNG9aVzBDQWdnQQpNQXdHQ0NxR1NJYjNEUUlKQlFBd0ZBWUlLb1pJaHZjTkF3Y0VDQjlYVEpiRWliNTBCSUlFeUdubXpDSVpnSFNwCkNITmlVSUwweVJuaUJvK3hWY0ZDTGJ6YkJWRDNaT0JFK0ZITHAvM3BVQXZnOVVnTVRkQ041a2RvTGNYcWx4UVIKems4Y29ZRkJHOVllSXJ4eXpadmVqNEIzVk1YM3VEcjNhS1puMCtLRTI5dlFTMXNVK0VPbk1jY3VXQitiaGNSdAoxTE5qR1lJSWpqdCtZMHBwdURFWExnbGU2SllleEhVNmxLdy9YamlZVXpTVmJXWGk4Zy9QY1htSElwSXA0T3VKCmlFUzlIZVF2K2V5TDRoSG1HaTV0OVA1ZWdNOUI5T2hlb25USmJ5USs1VkhuK2tKRXMxOVo5SU5ZakVxRk9OYnQKd0hYdi9WSHVkRnYxa0VjL3N6RlJRQnVHSENZeGx0QmJ4UjZKTnF1cHovK2xOQXQ0TGRZVFVBc1FGcXowZ1VCdgpPc2o2a0EyMSsvSzg0UUVkSHNIQ2Rjb1R5bEY4VXdDZVdpbDBBd2V6Ti92amNUN2Z4SEtZNmJPaGltVVJYY2FFCldQTzlYYllwSThVektZeG9pN2trTHdQSkpTVHN4TzFLUFJxUXFMb3UwVldObzh6SUxDVnlrSUE5S1JHb0h1ZWYKNE11R1gvQXBYMkdnRFNjaTFKK0dRVUs0Z09YVVc4cjZ0aTQ1cFg4SVo1R2RkWlNsQ3RvTnFRdUdiblNHSmdhWQp2Rm1xVm4xUlR5LzluV0ZzdnFzQk03WTI3NjVRTjRlRlI2a3ZLWGVhUXgra3VnTmxCWHdNOWl6WitVVUo5dGlXCkNvMG9VY3ZnM3BhZGNwZFRwM29ZM2VYRVhjWHJuYm51dy9vVzlMR2d3Q2FnYjZlRXFzMUlWVzArQnZhSXNqQkMKT0F3c1ZFNEFGYWV1clZWamNmNHBBeXhTMk5YUmh3M3JTMTlMYy84Um9pMFU5WGRNRVdDTW1Oa1RCUGpwVkVMbAo2dHFDa1pHRWVGaEhtOGRBdUthby8xRHppNnVpKzdVN3BLNllScGlaVjNpRW4zemlvcnFmUVkxdVFicFE3cEZpCmpCeS9DaTMwaGx2d01CSXc2b2V6ME8xK2cxUERQRkltQ0tScGZPdXNXc1RGajF6a1RqcjdOM0RkQkM1OTNWY3EKZElCdUk1V01KREFURkx5ZzgzL0VMRnZERHMwOXBzZWZxS3hpbzhGcDZwRUJFYTBHRkoyUmY0WjIvSW9CbU1TegprQmJZMjBSdEhUdCs4TGdUTTUxeER2cGhoL3U2aWpXQWZQZ1pycVNrUHhJcjY1OWJ0dGhjVzlxOU5IUFYwUEgwCkNNWXFSSGdSejhDTHByV0Y0b2xDNkd0S2ZJTmVhVGdKM0x6M25zTUtNdGJCcHhDZ0kzY0hQaFVaQ05nellTSzEKdU4ycE53ZlpGZ3B2S3VhUXpwYUxvcC9hQ0JJMS9la0kyVFlQdlcvNnErc3kydjJaR2NYejJ2UHpsRzdlZ0ozTgo4VC8zUjFoNmZwemgwc1FaSGRDZHlTdUZVUFNnY2s5MWlrNWZRVy9BL2dPWUxUY3oyL001U0FKSStVRFVuOUJiClYrTzFtb0VMTmkvSW52aFJOZjdQNmZvN2pWUFRKcFRXM1dJMjJiTjkxWXpCZERzbVBvVGRlaWRxZG5JTlRLb1kKRHkyRWh5Y2FUMXVtQ1FVU3FXaFhWeEt3L3BQL3l0WlJHVlQ5amhFTXJta29lcllXdmtldklMVm0wZHR1bzliawpmUlJPZjlzRjhoUjRNR2habitpVTRtK1FOcEJYekMzdW9oQU1BZi9XdEg3Z1k0WlVjVnlvaHhNdGk2S0ZPellQClZodzVhWHhrT25DMUMvNGNwWC8zZlBobFBwZTNMcWtmVGJVK2ZvOFdqY2RVL1RtWXlaQTdjUFRtOHAzOVVVMWsKY0ZMSjVEazVwVjdkdi9EOHA2ajVWVE1OUi9EdldrTjNGUjhSUStuUGRqVVJVa0FvcWJ6QnM2N3RtVHd4VFM4Zwp0T0VXUEl6dTlNRTFuenVjSXFJVi9pWVdvSlhyYWFLT3M4cWF3ckxCNGRnU3FocGpxZDUyQUFDbnBXdTV6aERiCkw5Mk41Z2xGQXl4SUhGTFpneXU0cUZTNHBacTlnbWRPUEkwWWRSZEozU3NSUHg3Q1RhRXk2QjFsS1puM1ZNbkcKaTdRZy9xZHpkRjJBQkdNYXFWYW42UT09Ci0tLS0tRU5EIEVOQ1JZUFRFRCBQUklWQVRFIEtFWS0tLS0tCkJhZyBBdHRyaWJ1dGVzCiAgICBmcmllbmRseU5hbWU6IGNuPVtGXSBGT1JNVUxBUklPUyBDT01FUkNJQUxFUywgUy5BLiAgICAtIDg0NDA4NC0xLTUwNDA2MSAtIDAwIC0gQ0hBTklTIFRFSkFEQSBNQU5VRUwgUklDQVJETyxvdT1GQUNUVVJBIEVMRUNUUk9OSUNBLG89RklSTUEgRUxFQ1RST05JQ0EsYz1QQSBOb24tcmVwdWRpYXRpb24gQ2VydGlmaWNhdGUKICAgIGxvY2FsS2V5SUQ6IDI3IEZCIDBBIEZFIEZDIDFBIEM0IDU2IEM2IDMxIDBEIDMzIDMxIDJEIDYwIEJGIApzdWJqZWN0PUMgPSBQQSwgTyA9IEZJUk1BIEVMRUNUUk9OSUNBLCBPVSA9IEZBQ1RVUkEgRUxFQ1RST05JQ0EsIENOID0gIltGXSBGT1JNVUxBUklPUyBDT01FUkNJQUxFUywgUy5BLiAgICAtIDg0NDA4NC0xLTUwNDA2MSAtIDAwIC0gQ0hBTklTIFRFSkFEQSBNQU5VRUwgUklDQVJETyIKCmlzc3Vlcj1DID0gUEEsIE8gPSBGSVJNQSBFTEVDVFJPTklDQSwgQ04gPSBDQSBQQU5BTUEgQ0xBU0UgMgoKLS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUdnekNDQld1Z0F3SUJBZ0lRSi9zSy92d2F4RmJHTVEwek1TMWd2ekFOQmdrcWhraUc5dzBCQVFzRkFEQkYKTVFzd0NRWURWUVFHRXdKUVFURWFNQmdHQTFVRUNnd1JSa2xTVFVFZ1JVeEZRMVJTVDA1SlEwRXhHakFZQmdOVgpCQU1NRVVOQklGQkJUa0ZOUVNCRFRFRlRSU0F5TUI0WERUSTFNRGt4TlRFNE5ETTBNVm9YRFRJM01Ea3hOVEU0Ck5ETTBNVm93Z2F3eEN6QUpCZ05WQkFZVEFsQkJNUm93R0FZRFZRUUtEQkZHU1ZKTlFTQkZURVZEVkZKUFRrbEQKUVRFY01Cb0dBMVVFQ3d3VFJrRkRWRlZTUVNCRlRFVkRWRkpQVGtsRFFURmpNR0VHQTFVRUF3eGFXMFpkSUVaUApVazFWVEVGU1NVOVRJRU5QVFVWU1EwbEJURVZUTENCVExrRXVJQ0FnSUMwZ09EUTBNRGcwTFRFdE5UQTBNRFl4CklDMGdNREFnTFNCRFNFRk9TVk1nVkVWS1FVUkJJRTFCVGxWRlRDQlNTVU5CVWtSUE1JSUJJakFOQmdrcWhraUcKOXcwQkFRRUZBQU9DQVE4QU1JSUJDZ0tDQVFFQXBXdDhEUnQ1L2Vzb1hQR3lZWHRYVEZHWUhJeWVBQVQxTDRkOApQRzU1UldPdHFVaEpOeHBIZWMwUit1MWFXQm0wc001WUhuaWJjSm9IOThsOUcrTlhySEJrWHlKdElYYXkyc2I1CkczT3hlR0lCSWZjU3grTkN0UGczRDMrRWxBQVBaaGVhekUvOElJeVJEMTFveVRiOVNZUGUrTlFoVnZCSW8yRkQKcGMrQmpyRHE1SllyZlo1VGF4L0ZoWUErREI2Vjc0Um16K0lwN3Y0VUNDbVNPN3hKL1B6TFR3Rzh4Z05Tb0pyegpHQnlpOWg4azJ2ajNSeUJFQzNiRUVOSzBESzJpbEp5dFJIUlFiSTY2d2xsYytPcENKTjZEWUJFSm5qL3lKeWRQCnQrU3BXUW5TWDVsL3I5dzhTemRZaW16b0JVUzZzbVJ2MmhxV0RMNlcraUQvQlA5dkh3SURBUUFCbzRJREJUQ0MKQXdFd0RnWURWUjBQQVFIL0JBUURBZ1pBTUJrR0ExVWRKUVFTTUJBR0NDc0dBUVVGQndNQ0JnUlZIU1VBTUdjRwpDQ3NHQVFVRkJ3RUJCRnN3V1RBaUJnZ3JCZ0VGQlFjd0FZWVdhSFIwY0RvdkwyOWpjM0F1Y0d0cExtZHZZaTV3CllUQXpCZ2dyQmdFRkJRY3dBb1luYUhSMGNEb3ZMM2QzZHk1d2Eya3VaMjlpTG5CaEwyTmhZMlZ5ZEhNdlkyRncKWXpJdVkzSjBNSUhLQmdOVkhTQUVnY0l3Z2I4d2did0dDR0NFVHdFQ0FnWUNNSUd2TURZR0NDc0dBUVVGQndJQgpGaXBvZEhSd09pOHZkM2QzTG5CcmFTNW5iMkl1Y0dFdmJtOXliV0YwYVhaaEwybHVaR1Y0TG1oMGJXd3dkUVlJCkt3WUJCUVVIQWdJd2FScG5RMlZ5ZEdsbWFXTmhaRzhnYzNWcVpYUnZJR0VnYkdFZ1JHVmpiR0Z5WVdOcGIyNGcKWkdVZ1VISmhZM1JwWTJGeklHUmxJRU5sY25ScFptbGpZV05wYjI0Z1pHVWdSbWx5YldFZ1JXeGxZM1J5YjI1cApZMkVnWkdVZ1VHRnVZVzFoSUNneU1ERXlLVENDQVJvR0ExVWRFUVNDQVJFd2dnRU5wSUgwTUlIeE1RNHdEQVlICllJUlBBUUVHQWd3Qk1qRVBNQTBHQjJDRVR3RUJCZ0VNQWpBd01Sd3dHZ1lIWUlSUEFRRUNBZ3dQT0RRME1EZzAKTFRFdE5UQTBNRFl4TVNvd0tBWUhZSVJQQVFFQ0FRd2RSazlTVFZWTVFWSkpUMU1nUTA5TlJWSkRTVUZNUlZNcwpJRk11UVM0eEZ6QVZCZ2RnaEU4QkFRRUdEQW95TlM4d05pOHhPVFl4TVJZd0ZBWUhZSVJQQVFFQkJRd0pPQzAwCk9EZ3RNek15TVJNd0VRWUhZSVJQQVFFQkJBd0dWRVZLUVVSQk1STXdFUVlIWUlSUEFRRUJBd3dHUTBoQlRrbFQKTVJRd0VnWUhZSVJQQVFFQkFnd0hVa2xEUVZKRVR6RVRNQkVHQjJDRVR3RUJBUUVNQmsxQlRsVkZUSUVVY21ObwpZVzVwYzBCamQzQmhibUZ0WVM1dVpYUXdOUVlEVlIwZkJDNHdMREFxb0NpZ0pvWWthSFIwY0RvdkwzZDNkeTV3CmEya3VaMjlpTG5CaEwyTnliSE12WTJGd1l6SXVZM0pzTUI4R0ExVWRJd1FZTUJhQUZPaitiUFlJbFNxNjNHUzUKb0ZsdTdkQzg4TWx5TUIwR0ExVWREZ1FXQkJTOE8vZHpoTWQ1OWJ4c1d0Q1VYYVBac0V6Rk1EQUpCZ05WSFJNRQpBakFBTUEwR0NTcUdTSWIzRFFFQkN3VUFBNElCQVFBZWtTa0ljRFFIS2dRSHB4OVFmSjQvdk1IOWg1MTArKzN6CmMwMDUrS3Y3RWROcC9YNFQ2Sm85RGZ6bVphemp2K1ZldXo2Mk0yS3BTY3lScG1VOWpFTU8yRGZXNlAwT1dNNVYKTSt4ZFVkOXc3dzRrdzFiQlZxcDZYSlV2Y25BUnpjaDVRYmRUMytCa2FjbkQ3Qm9MOHYvQ2lyUDZrL0tyeGFPMQpBWjIxZm9WcFlZaG1OVUptSFVlQVRsdlRTS1dkSTB0T0lTS2xTQ25rdmhMQi9maUFiOUVwakVKMGtZamxBczZWCjZEeTI1OVlqZjJ4cU5VbjhYUDN1bEh2dnNpRWY2TWEvUklPbVFvVUpxd1JNYTliVjhJNUVLUVJmV04yQm05Y3cKOXJKU0lHb3pubUk0S2dEdEh0bmhJTFpwYXlXU1NORDlhY2RhckZzUWVkRXRWRE5nU3QyRwotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==
pass=YdWkLXgHoUaXJk
Ejemplo PHP
$datospost['txt']=$datos_factura_txt;
$datospost['modo']='JSON';
$res=callAPI('POST', $url, $datospost);
echo $res;
function callAPI($method, $url, $data){
$curl = curl_init();
$options = array(
CURLOPT_RETURNTRANSFER => true, // return web page
CURLOPT_HEADER => false, // don't return headers
CURLOPT_FOLLOWLOCATION => false, // follow redirects
CURLOPT_MAXREDIRS => 1, // stop after 10 redirects
CURLOPT_ENCODING => "", // handle compressed
CURLOPT_USERAGENT => "api-mf", // name of client
CURLOPT_AUTOREFERER => true, // set referrer on redirect
CURLOPT_CONNECTTIMEOUT => 10, // time-out on connect
CURLOPT_TIMEOUT => 10, // time-out on response
);
curl_setopt_array($curl, $options);
switch ($method){
case "POST":
curl_setopt($curl, CURLOPT_POST, 1);
if ($data)
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
break;
case "PUT":
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "PUT");
if ($data)
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
break;
default:
if ($data)
$url = sprintf("%s?%s", $url, http_build_query($data));
}
// OPTIONS:
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
'APIKEY: 111111111111111111111',
'test-test: application/json',
));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
// EXECUTE:
$result = curl_exec($curl);
if(!$result){die("Connection Failure");}
curl_close($curl);
return $result;
}
Ejemplo C#
var wb = new WebClient();
var data = new NameValueCollection();
string url = "https://pruebasws.siteck.mx/api/";
data["modo"] = "TXT";
data["txt"] = entrada.Text;
byte[] responseArray = wb.UploadValues(url, "POST", data);
respuestaws.Text = Encoding.Default.GetString(responseArray);
Ejemplo VB .net
Dim wb As var = New WebClient()
Dim data As var = New NameValueCollection()
Dim url As String = "https://pruebasws.siteck.mx/api/"
data("modo") = "TXT"
data("txt") = entrada.Text
Dim responseArray() As Byte = wb.UploadValues(url,"POST",data)
respuestaws.Text = Encoding.Default.GetString(responseArray)
Ejemplo Python
#check if module is installed "python -m pip install requests"
import requests
import json
url = "https://pruebasws.siteck.mx/api/"
datos = {
"modo": "JSON",
"txt": """
INSERTAR STRING JSON AQUI
"""
}
response = requests.post(url, datos,verify=False)
print(response.text)
RESPUESTA DEL WEBSERVICE
Este es un ejemplo de los elementos y el formato cambia segun el ambiente
NOTAS:
PHP : respuesta en array
TXT : respuesta en TXT
C# : respuesta en SDKRespuesta respuesta
API REST : respuesta JSON, XML, TXT, SERIALIZADO
WS SOAP WSDL : variables del WS