Ich habe erfolgreich eine ASP.NET-Anwendung erstellt, die ZATCA .NET SDK (Saudi-Arabien-E-Invoicing) zum Erstellen und Signieren von XML-Dateien verwendet. In ASP.NET funktioniert alles gut mit dem SDK. Aber bei der Ausführung der API bleibt sie in einer Funktion stecken. Wobei die Funktion ZATCA .NET SDK zur Ausführung verwendet. < /P>
Code der Funktion ist: < /p>
public static string[] SignDocument(XmlDocument doc, string signedPath, string certificate, string privateKey)
{
string[] retresult = new string[3];
try
{
SignResult result = new EInvoiceSigner().SignDocument(doc, certificate, privateKey);
if (result != null && result.IsValid)
{
result.SaveSignedEInvoice(signedPath);
string hash = (from s in result.Steps
where s.StepName.Contains("Generate EInvoice Hash")
select s).First().ResultedValue;
string[] RequestResult = new string[2];
RequestResult = GenerateRequest(signedPath);
if (RequestResult[0] == "success")
{
retresult[0] = "success";
retresult[1] = hash;
retresult[2] = RequestResult[1];
return retresult;
}
else
{
retresult[0] = "invreq";
retresult[1] = "";
retresult[2] = "";
return retresult;
}
}
else
{
retresult[0] = "sign";
return retresult;
}
}
catch (Exception ex)
{
retresult[0] = "failed";
return retresult;
}
}
< /code>
Hier zur Ausführung der folgenden Zeile wird der QR -Code -Fehler angezeigt. < /p>
SignResult result = new EInvoiceSigner().SignDocument(doc, certificate, privateKey);
< /code>
Der Fehler wird vom SDK übergeben. Das Problem ist, dass dieselbe Funktion in der ASP.NET -Anwendung gut funktioniert. Alles ist gleich. Mit der gleichen SDK -DLL werden die gleichen Werte an die Funktion übergeben. Ich habe auch versucht, Code aus der SDK -DLL zu extrahieren, und es ist wie unten: < /p>
namespace Zatca.EInvoice.SDK
{
public class EInvoiceSigner : IEInvoiceSigner
{
private readonly CoRExecutor signDocumentExecutor;
public EInvoiceSigner()
{
this.signDocumentExecutor = new CoRExecutor().AddMiddleware().AddMiddleware().AddMiddleware().AddMiddleware
().AddMiddleware().AddMiddleware().AddMiddleware().AddMiddleware().AddMiddleware().AddMiddleware();
}
public SignResult SignDocument(
XmlDocument eInvoice,
string certificateContent,
string privateKeyContent)
{
EInvoiceData invoice = new EInvoiceData(eInvoice)
{
CertificateContent = certificateContent,
PrivateKeyContent = privateKeyContent
};
this.signDocumentExecutor.Execute(invoice);
return new SignResult()
{
SignedEInvoice = invoice.EInvoice,
IsValid = invoice.IsValid,
ErrorMessage = invoice.Errors,
Steps = invoice.Steps
};
}
}
}
< /code>
Ich kann keine Änderungen am SDK vornehmen. Ich kann das Problem nicht verstehen. Bitte helfen Sie
.NET SDK (ZATCA EINVOICE), die einen Fehler auf dem API -Server anzeigen, aber mit ASP.NET einwandfrei funktioniert ⇐ C#
-
- Similar Topics
- Replies
- Views
- Last post