Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature/analytics #92

Merged
merged 5 commits into from
Nov 22, 2022
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
Se agrega metodo TimbrarV4Analytics
  • Loading branch information
SwAeyrton committed Nov 22, 2022
commit 2a47671fb023c50f875ef06824088fb16158a9f2
42 changes: 42 additions & 0 deletions SW-sdk-45/Services/Stamp/BaseStampV4XML.cs
Original file line number Diff line number Diff line change
@@ -103,5 +103,47 @@ public virtual StampResponseV4 TimbrarV4(string xml, string email = null, string
}
return ConvertionHelper.ConvertV2ToV4Response(response);
}
public virtual StampResponseV4 TimbrarV4Analytics(string xml, string email = null, string customId = null, bool isb64 = false, string[] extras = null)
{
StampResponseHandlerV2XML handler = new StampResponseHandlerV2XML(xml);

var xmlBytes = Encoding.UTF8.GetBytes(xml);
var headers = GetHeaders(email, customId, extras);
var content = GetMultipartContent(xmlBytes);
var proxy = Helpers.RequestHelper.ProxySettings(this.Proxy, this.ProxyPort);
var response = handler.GetPostResponse(this.Url,
string.Format("v4/cfdi33/{0}/{1}/{2}",
"stamp",
StampTypes.v2.ToString(),
"analytics"), headers, content, proxy);
if (response.status == "error")
{
if (response.message == "CFDI3307 - Timbre duplicado. El customId proporcionado está duplicado.")
{
StorageResponseHandler storangeHandler = new StorageResponseHandler();
string uuid = XmlUtils.GetUUIDFromTFD(response.data.tfd);
var xmlFromStorange = storangeHandler.GetResponse(_apiUrl,
headers, $"datawarehouse/v1/live/{uuid}",
RequestHelper.ProxySettings(this.Proxy, this.ProxyPort));
var xmlStorange = xmlFromStorange.data.records.ElementAtOrDefault(0)?.urlXml;
if (string.IsNullOrEmpty(xmlStorange))
{
return new StampResponseV4()
{
data = null,
message = "No es posible obtener el url para descargar el XML",
status = "error",
messageDetail = "No esta disponible el URL de descarga del XML, intente más tarde"
};
}
var dataResult = DowloadFile.DowloadFileAsync(xmlStorange, RequestHelper.ProxySettings(this.Proxy, this.ProxyPort));
dataResult.data.tfd = response.data.tfd;
dataResult.message = response.message;
return ConvertionHelper.ConvertV2ToV4Response(dataResult);
}
return ConvertionHelper.ConvertV2ToV4Response(response);
}
return ConvertionHelper.ConvertV2ToV4Response(response);
}
}
}