Neidio i’r prif gynnwys

C# SDK

Rydym yn argymell codio'n uniongyrchol yn erbyn yr API, mae'r cyfeirlyfr technegol a'ch AI chi yn ei gwneud yn syml. Gellir cynhyrchu SDK C# gan ddefnyddio maniffesto OpenAPI3 ein API a'r generadur openapi. Fodd bynnag, os ydych eisiau SDK rydym yn argymell i chi ddefnyddio'r prosiect a gynhyrchir a ddarperir, gan ei fod yn cynnwys trwsio rhai materion fel meysydd na ellir eu bodloni (nullable fields).

Click here for the C# repo..

Mae'r pecyn yn cynnwys ei ddogfennaeth ei hun (yn docs/), ond bydd yr enghreifftiau isod yn dangos i chi sut i ddechrau.

Cael Eich Allwedd API

  • Cofrestrwch am gyfrif prawf.

  • Ffurfweddwch ar gyfer API pan fyddwch yn cael hysbysiad, a anfonwch e-bost at y Gwasanaeth Cefnogi i gael Allwedd API. Mae angen i chi ddangos lefel o ddealltwriaeth am ddefnyddio API REST, cynnwys yn eich e-bost: enw a chyfeiriad eich cwmni, eich enw a'ch rôl, disgrifiwch eich achos defnydd, a rhoi crynodeb byr o'ch profiad rhaglennu/REST.

  • Unwaith y rhoddir, bydd eich allwedd API ar gael yn y cais gwe. Fe welwch eich bod yn y sandbox - ychwanegwch unrhyw e-byst lle byddwch yn anfon eich dogfennau prawf.

Mae eich allwedd api yn mynd yn y pennawd "Authorization", ac mae'n cymryd y ffurf: Apikey username:secret. Bydd eich enw defnyddiwr a'ch cyfrinair yn cael eu nodi'n glir yn y cais gwe.

Cael y SDK a Phrosiectau Enghraifft

Gyda'ch offer git o'ch dewis cloniwch y storfa SDK C#.

git clone https://github.com/legalesign/LegalesignCsharpSDK.git legalesignSDK

Ffurfweddu'r prosiect Enghraifft:

Agorwch LegalesignCsharpSDK.sln a adeiladwch y prosiect. Dylech weld tri phrosiect wedi'u cynnwys yn y datrysiad, byddwn yn canolbwyntio ar LegalesignTest a fydd yn eich helpu i ddechrau gwneud galwadau i'r API REST.

I arbed amser efallai yr hoffech ychwanegu eich enw defnyddiwr, cyfrinair, enw'r grŵp, e-bost targed, enw cyntaf a chyfenw fel y priodoleddau Text ar gyfer txtUsername, txtSecretKey ac ati yn Form1. Os nad ydych, bydd angen i chi eu darparu pan fyddwch yn rhedeg y prosiect Winform (sicrhewch fod hwn wedi'i farcio fel y prosiect cychwyn). Os byddwch yn codio nhw'n uniongyrchol cofiwch dynnu'r wybodaeth honno unwaith y byddwch wedi gorffen gyda'r prosiect.

Gadewch i ni edrych ar y bloc cod cyntaf yn Form1.cs:

private Configuration makeConfig() {
Configuration c = new Configuration();
c.AddApiKey("Authorization", $"ApiKey {txtUsername.Text}:{txtSecretKey.Text}");

return c;
}

Gallwch weld sut mae hyn yn defnyddio'r enw defnyddiwr a'r cyfrinair a ddarparwch a'u pasio i'r ffurfwedd ar gyfer pob galwad byddwn yn ei wneud yn ddiweddarach. Dyna sut mae galwadau API yn cael eu hawdurdoli.

Profi cais GET:

Gadewch i ni sicrhau y gallwch wneud cais GET syml, i wirio bod eich awdurdodiad wedi'i ffurfweddu'n iawn.

Mae'r cod canlynol yn rhedeg pan fyddwch yn pwyso'r botwm Get Groups. Cymerwch amser i sylwi ble mae'r wybodaeth Ffurfwedd yn cael ei basio i mewn gan ddefnyddio makeConfig(). Rhedegwch y prosiect, nodwch eich enw defnyddiwr a'ch allwedd yn y blychau os nad ydych wedi'u codio yn y priodoledd Text a chliciwch y botwm Get Groups.

private void btnCall_Click(object sender, EventArgs e)
{
GroupApi group = new GroupApi(makeConfig());
GroupListResponse groupList = group.GetGroups();

richTextBox1.Text = groupList.ToJson();
}

Os yw'n llwyddiannus, fe gewch restr JSON o'ch grwpiau.

Os nid, gwiriwch ddwywaith a oes gennych y gwerth Authorization yn gywir.

Mae'r cod hwn yn cael unrhyw ddogfennau sy'n aros i'w llofnodi, achos defnydd cyffredin. Prawfwch hyn drwy archwilio ac yna rhedeg y botwm Get Documents.

private void button2_Click(object sender, EventArgs e)
{
DocumentApi docs = new DocumentApi(makeConfig());
DocumentListResponse documentList = docs.GetDocuments();

richTextBox1.Text = documentList.ToJson();
}
cyngor

Mae'r galwadau 'get_statuses()' a 'get_status()' yn ffyrdd cyflymach o chwilio am wybodaeth sylfaenol am ddogfennau.

Dylech fod yn dechrau deall sut mae'r SDK yn gweithio. Ewch yn ôl at y ffeil Readme pecyn, a gwelwch yr holl wrthrychau API i'w trio, a'u holl ddulliau.

Profi cais POST

Yna byddwn yn anfon rhywfaint o HTML custwm i'w llofnodi mewn un galwad API, ac wedyn byddwn yn uwchlwytho PDF a'i anfon.

Anfon dogfen HTML i'w llofnodi:

Dyma ychydig o HTML at ddibenion demo, yn cynnwys un elfen llofnod. Disodli'r gwerthoedd grŵp, enw ac e-bost.

private void btnPost_Click(object sender, EventArgs e)
{
DocumentApi docs = new DocumentApi(makeConfig());

List<DocumentSignerPost> signers = new List<DocumentSignerPost>();
signers.Add(new DocumentSignerPost(email: txtEmail.Text, firstname: txtFirstname.Text, lastname: txtLastname.Text));

//You must provide group id as lowercase
DocumentPost dp = new DocumentPost(
group: $"/api/v1/group/{txtGroupName.Text.ToLower()}/",
name: "dotnetdocument",
text: rtbBodyHTML.Text,
signers: signers,
doEmail: true,
footerHeight:30,
footer: "Legalesign ID: {{doc_id}}");

try
{
InlineResponse201 resp = docs.PostDocument(dp);
richTextBox1.Text = resp.ToJson();
}
catch (Exception ex) {
throw ex;
}
}

Sut rydym yn gwybod iddo fynd drwyddi? Mae OpenAPI yn taflu eithriad ar gyfer ymatebion nad ydynt yn 2XX. Byddwch am roi eich holl geisiadau mewn bloc try/catch.

Bob tro rydych yn POSTio, byddwch fel arfer eisiau ID yr wrthrych newydd. Mae yn y pennawd Location yr ymateb. Yn ein hachos nesaf, gwelwn sut i uwchlwytho PDF i'w anfon at llofnodwyr, a chael yr ID yn ôl ar gyfer y templed newydd hwnnw.

Uwchlwytho a anfon PDF

Byddwch yn debygol o ddefnyddio tagiau testun mewn eich PDFau, i ddiffinio ble fydd pobl yn llofnodi neu yn llenwi unrhyw ffurflenni. Mae defnyddio'r paramedr processTags=true yn gadael i'r system wybod i edrych drwy eich dogfen a gwneud meysydd ar gyfer gwybodaeth a llofnodion i'r derbynnydd eu llofnodi. Mae enghraifft sylfaenol o PDF gyda tagiau wedi'i chynnwys yn rhad ac am ddim yn wreiddiol y prosiect SDK.

Gadewch i ni uwchlwytho PDF gan ddefnyddio fersiwn 'with_http_info' o'r cais POST i gael y ID

private void btnUploadPdf_Click(object sender, EventArgs e)
{
DialogResult result = openFileDialog1.ShowDialog();

if (result == System.Windows.Forms.DialogResult.OK)
{
TemplatepdfApi pdf = new TemplatepdfApi(makeConfig());

// Get the file and convert the contents to a base64 byte array.
Byte[] bytes = File.ReadAllBytes(openFileDialog1.FileName);
String contents = Convert.ToBase64String(bytes);
Byte[] encodedBytes = Convert.FromBase64String(contents);

try
{
// Upload the pdf for our group to use with a title and a tag
ApiResponse &lt;object&gt; response = pdf.PostPdfTemplateWithHttpInfo(new TemplatePdfFieldPost(group: $"/api/v1/group/{txtGroupName.Text.ToLower()}/",
pdfFile: encodedBytes, processTags: true, title: "test tagged document"));

// Just to demonstrate how to read response headers we'll put the returned
// header in the output rich text box. The 'Location' header contains the new
// Template ID.
richTextBox1.Text = JsonConvert.SerializeObject(response.Headers);

// We'll save this so we can use it when calling Send with Template
txtPDFLocation.Text = response.Headers["Location"];
}
catch (Exception ex)
{
throw ex;
}
}
}

Gan ein bod wedi gosod process_tags i wir, mae pob tag wedi cael ei brosesu felly mae eich PDF yn barod i'w anfon. Fel o'r blaen, mae angen yr ID arnom ar gyfer y PDF i allu ei anfon. Yn ffodus cadwyd hwnnw yn y blwch testun txtPdfLocation.

Mae'r darn cod olaf o Send with Template yn dangos sut rydym yn defnyddio lleoliad PDF hwnnw i anfon dogfen sydd eisoes wedi'i llwytho i'w llofnodi.

private void btnSendTemplate_Click(object sender, EventArgs e)
{
DocumentApi docs = new DocumentApi(makeConfig());

List<DocumentSignerPost> signers = new List<DocumentSignerPost>();
signers.Add(new DocumentSignerPost(email: txtEmail.Text, firstname: txtFirstname.Text, lastname: txtLastname.Text));

//You must provide group id as lowercase
DocumentPost dp = new DocumentPost(
group: $"/api/v1/group/{txtGroupName.Text.ToLower()}/",
name: "dotnetdocument",
template: txtPDFLocation.Text,
signers: signers,
doEmail: true,
footerHeight: 30,
footer: "Legalesign ID: {{doc_id}}");

try
{
InlineResponse201 resp = docs.PostDocument(dp);
richTextBox1.Text = resp.ToJson();
}
catch (Exception ex)
{
throw ex;
}
}

Dechrau codio

Sicrhewch eich bod yn gwirio'r ddogfennaeth a gynhyrchir gan OpenAPI ar gyfer gwahanol fathau o alwadau a dewisiadau.

Mae rhai problemau cyffredin yn cynnwys:

Mae'n rhaid i enw'r grŵp gyd-fynd yn union â un sydd gennych eisoes yn eich sefydliad.

Bydd eich cais yn cael ei wrthod os yw'ch cymwysterau'n anghywir, wedi dod allan o gyfnod dilysrwydd neu wedi'u cloi.

Daw 401 yn ôl os ydych mewn sandbox ac yn ceisio anfon dogfen at rywun nad yw yn eich rhestr e-bost sandbox.

Codio hapus!