Integrasi DocuSign ing SAP UI5, Node.js lan SAP ABAP

Pambuka – Iki kiriman minangka bagéan saka Program Integrasi UI5 seri.

Pambuka

DocuSign minangka piranti lunak berbasis awan (SaaS) kanggo menehi tandha elektronik (eSign) perjanjian lan dokumen sampeyan. Iku diakses liwat browser akses adhedhasar utawa liwat sawijining Android lan iOS aplikasi. Iku nyedhiyakake API lan SDK kanggo nggabungake lan nampilake layanan menyang Aplikasi lan situs web sampeyan. Ing artikel iki, kita bakal

Prasyarat

Sadurunge kita miwiti karo integrasi, iku prentah kanggo duwe a Akun DocuSign, SAP Cloud Platform (mung kanggo Open Connector lan Integrasi adhedhasar Cloud), Akses Konektor Bukak SAP (mung kanggo Integrasi konektor mbukak).

Sawise sampeyan nggawe akun DocuSign kanthi sukses, entuk rincian ing ngisor iki saka akun pangembang (Langkah-langkah sing bakal dibahas mengko - Persiyapan Panyedhiya API DocuSign):

  • iku: Iki minangka kunci integrasi utawa ID Klien
  • sub: Iki pangguna ID
  • aud: account-d.docusign.com (kanggo lingkungan demo) lan account.docusign.com (kanggo lingkungan produksi)
  • lingkup: Iki bakal dadi teken (kanggo Grant Kode Otorisasi lan Grant Implisit) utawa peniruan teken (kanggo JWT)
  • iku: Iki wektu unix saka nalika oAuth bakal bener
  • exp: Iki wektu unix nganti kapan oAuth sampeyan bakal valid
  • Kunci Umum, Kunci Pribadi: Iki minangka kunci sing digawe ing platform
  • Jinis Respon: Iki bisa dadi response_type=code (kanggo Grant Code Authorization lan JWT Grant) utawa response_type=token (kanggo Grant Implicit)
  • Tipe Grant: Iki bisa dadi grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer (kanggo JWT Grant) utawa grant_type=authorization_code (kanggo Authorization Code Grant). Ora dibutuhake kanggo Grant Implisit
  • API_URI: Iki bisa dadi https://demo.docusign.net (kanggo Akun Pengembang Demo), https://account-d.docusign.com (kanggo Akun Developer) utawa https://account.docusign.com (kanggo akun produksi)
  • Rahasia: Iki kunci rahasia
  • Pangalihan URI: Iki minangka URI, ing ngendi pangguna sampeyan bakal dikirim sawise ngrampungake eSigning. Iki kudu dijaga ing Akun DocuSign sampeyan
  • Link kanggo njaluk idin kanggo pisanan:
    https://account-d.docusign.com/oauth/auth?
    response_type=kode
    &scope=YOUR_REQUESTED_SCOPES
    &client_id=YOUR_INTEGRATION_KEY
    &redirect_uri=YOUR_REDIRECT_URI
  • Akun_ID: Iki ID Akun API

Kita bakal nyimpen kabeh rincian ing ndhuwur ing file lokal supaya bakal gampang kanggo kita kanggo nyedhiyani kapan lan ing ngendi wae dibutuhake ing langkah mengko.

Jinis Integrasi DocuSign

Ana ewonan skenario ing ngendi sampeyan bisa ngrancang supaya dokumen/perjanjian ditandatangani dening pangguna. Kanggo ditandatangani, sampeyan kudu ngirim dokumen kasebut menyang pangguna kasebut liwat email utawa njaluk pangguna kasebut ing platform sampeyan supaya dokumen kasebut ditandatangani ing kana. Mangkono, kita bakal ngrembug loro skenario kasebut kanthi ringkes:

· Kanggo ngirim email saka UI kanggo mlebu dokumen

Ing skenario iki, sampeyan bisa uga

  1. Dolan maring platform DocuSign, upload dokumen lan kirim menyang ID email tartamtu
  2. Gabungke DocuSign menyang UI supaya sampeyan bisa ngirim dokumen, subyek email lan isi surat kanthi ID email pangguna sing dibutuhake liwat API. API iki mulane bakal micu mail. Banjur sampeyan bisa njupuk status tandha dokumen lan nganyari padha ing UI.

· Kanggo njaluk dokumen mlebu saka UI

Ing skenario iki, sampeyan bisa uga

  1. Dolan maring platform DocuSign, upload dokumen lan entuk link kanggo integrasi. Sampeyan bisa nggunakake link iki langsung ing UI (liwat iframe) banjur pangguna bisa klik lan mlebu nggunakake link. Skenario iki mung sah ing kasus panggunaan ing ngendi dokumen sing padha ditandatangani dening saben pangguna yaiku dokumen tetep padha kanggo kabeh pangguna. contone Dokumen sing ana hubungane karo keamanan kantor sing bisa ditandatangani saben pengunjung.
  2. Gabungke DocuSign menyang UI supaya sampeyan bisa ngirim dokumen, subyek email lan isi surat kanthi ID email pangguna sing dibutuhake liwat API. API iki mulane bakal micu email uga ngasilake URL tandha. Banjur sampeyan bisa nggabungake URL iki lan pangguna bisa mlebu dokumen liwat UI. Sawisé iku, njupuk status tandha document lan nganyari padha ing UI.

DocuSign API Provider Setup

Langkah 01: Mlebu menyang Akun Pangembang DocuSign: Dolan maring kene lan login nganggo kredensial sampeyan.

Langkah 02: Pindhah menyang Setelan banjur klik "Aplikasi lan Tombol"

Setelan DocuSign

Aplikasi lan Tombol DocuSign

Langkah 03: Simpen ing ngisor iki

DocuSign Kredensial
Saiki kita duwe aud, Account_ID lan API_URI.

Langkah 04: Tambah Aplikasi lan Kunci Integrasi

DocuSign Tambah Kunci Integrasi lan Aplikasi
Iki bakal takon jeneng App, kene kita bakal menehi "Test". Bakal navigasi menyang kaca sabanjure.

DocuSign entuk Kunci Integrasi

Lan sampeyan bisa entuk Kunci Integrasi (utawa iss).

Langkah 05: Gawe Kunci Rahasia
Saiki gawe lan simpen kunci sampeyan:

DocuSign entuk Kunci Rahasia

Ing kene kita wis nggawe Rahasia.

Langkah 06: Nggawe RSA
Saiki gawe RSA:

DocuSign ngasilake RSA

Iki bakal ngasilake Kunci Umum lan Pribadi:

DocuSign entuk Kunci Umum lan Pribadi

Simpen tombol iki. Elingi wiwitan (—–BEGIN PUBLIC KEY—–) lan pungkasan (—–END PUBLIC KEY—–) saka loro tombol iku penting lan kudu tansah disalin lan digunakake karo tombol. Tanpa bagean kasebut, tombol ora sah.

Langkah 07: Tambah URI Pangalihan
Saiki tambahake URI pangalihan:

URI Pangalihan DocuSign

Iki bisa dadi tautan apa wae sing pengin dideleng pangguna yen wis rampung mlebu.

Langkah 08: Simpen owah-owahan
Saiki kita wis ngumpulake kabeh informasi sing dibutuhake kanggo integrasi, sampeyan kudu nyimpen kabeh kaya iki:

{
iss: 9a5a2a7a-5f25-4526-bc62-82dc62fae2b1
sub: 0211f444-eab3-4b75-ce7c-8b95adf890
aud: account-d.docusign.com
Public Key, Private Key: These are the keys generated on the platform
API_URI: https://demo.docusign.net
Secret: f2e1c847-bdc3-48da-a444-603f228988de
Redirect URI: https://www.docusign.com/
Account_ID: 92222dc4-6430-44c6-81c9-0742c14f82f5
}

Beda Jinis Integrasi DocuSign

1. Integrasi langsung nggunakake iframe: PowerForms

Iki minangka pilihan integrasi sing paling gampang. Iki mung ditrapake kanggo kasus panggunaan ing ngendi dokumen tetep padha kanggo kabeh pangguna.
1. Pindhah menyang Panjenengan akun
2. Gawe Cithakan: Unggah dokumen sampeyan lan tambahake papan sing sampeyan pengin teken.

DocuSign Nggawe Cithakan

3. Aktifake opsi PowerForm ing cithakan kasebut:

DocuSign Aktifake Powerforms

Kaya sing sampeyan deleng ing ndhuwur, URL digawe. URL iki bisa digabungake ing situs web sampeyan nggunakake konsep iframe utawa dikirim langsung menyang pangguna liwat email lan sms. Fitur iki ora kasedhiya kanggo akun Demo.
Status teken bakal kasedhiya mung ing platform DocuSign.

2. Postman Testing saka DocuSign

Akeh pangembang pengin nyoba DocuSign liwat Postman sadurunge mlumpat menyang pangembangan lan integrasi sing nyata. Sampeyan bisa nemokake persiyapan tukang pos kanggo DocuSign kene lan uga ngundhuh koleksi tukang pos. Kajaba iku, sampeyan bisa langsung ngakses versi awan saka tukang pos kanthi koleksi sing wis dimuat kene.
Ing loro skenario, atur lingkungan:
DocuSign Postman Open Environment

Lan tambahake kabeh rincian sing wis digawe ing ndhuwur [Kita durung nambah, amarga kita langsung ngganti nilai ing URL, sampeyan uga bisa nglirwakake iki]

DocuSign Postman nyetel Lingkungan

Saiki langkah sabanjure kanggo kita yaiku ngasilake kunci Otorisasi supaya bisa digunakake kanggo nindakake kabeh operasi liyane. Ing kene kita bakal ngasilake kunci token adhedhasar metode Otorisasi JWT amarga cara sing padha bakal digunakake kanggo Integrasi nggunakake Rest API ing UI5, Node.js uga ABAP.
Kanggo token JWT, telpon tukang pos katon kaya iki:

DocuSign Postman nyetel JWT

Kaya sing sampeyan ngerteni, kita kudu ngliwati pitunjuk nilai kene.

Kanggo nggawe pratelan, kita kudu nggawe token JWT. Bisa digawe kene. Ganti jinis algoritma minangka RS256, ing tandha tandha ketik tombol Umum lan Pribadi sing wis digawe sadurunge, lan ing Payload ketik obyek kaya iki:

{"iku":" ", "sub": "" ", "aud": "account-d.docusign.com", "iat": , "exp": , "scope": "penyamaran teken" }

 

Kanggo entuk wektu unix, bukak kene.

Entuk cap wektu Unix

Nggunakake rincian ing ndhuwur uga ngganti kunci Umum & Pribadi ing ngisor iki, banjur bakal ngasilake token:

Nggawe JWT

Saiki salin lan tempel ing pratelan ing tukang pos.
Banjur, ing tab Headers kita kudu nambah token pembawa:

DocuSign Postman nyetel Pembawa Wewenang

Sampeyan mung bisa ngowahi integratiokey: rahasia minangka basis 64 utawa generate kene

Generate Encoded Bearer

Sawise langkah sing luwih penting iki ditinggalake, yen ora, sampeyan bakal kesalahan "consent_required". Kita kudu njupuk idin nggunakake link ing ngisor iki:
https://account-d.docusign.com/oauth/auth?
response_type=kode
&scope=YOUR_REQUESTED_SCOPES
&client_id=YOUR_INTEGRATION_KEY
&redirect_uri=YOUR_REDIRECT_URI

Kanggo kasus panggunaan kita, bakal dadi: https://account-d.docusign.com/oauth/auth?response_type=code&scope=signature impersonation&client_id=9a5a2a7a-5f25-4526-bc62-82dc62fae2b1&redirect_uri=https://www.docusign.com/

Sampeyan bakal njaluk sampeyan menehi idin (sawise mlebu):

DocuSign njaluk Idin

cathetan: Kanggo versi Prod, tindakake ing ngisor iki [Grant change to Implicit] lan wenehi akses maneh liwat link sing digawe sadurunge, ing kasus kita: https://account-d.docusign.com/oauth/auth?response_type=code&scope=signature impersonation&client_id=9a5a2a7a-5f25-4526-bc62-82dc62fae2b1&redirect_uri=https://www.docusign.com/

Bukak akun DocuSign sampeyan lan ganti hibah sampeyan dadi implisit [Aja ngganti tes Postman]:

DocuSign ngganti Grant

Lan saiki kita wis siap nampa token Authentication saka DocuSign.

DocuSign Postman ngasilake token

Sawise sampeyan entuk Otorisasi, sampeyan bisa nggunakake sing padha kanggo nindakake kabeh operasi liyane. Saiki kita bakal nindakake operasi ing ngisor iki ing tukang pos:

  1. Gawe Amplop nganggo dokumen pdf lan kirim menyang pangguna

Kanggo entuk Amplop kanthi dokumen pdf, kita kudu ngunggah pdf kasebut lan menehi rincian pangguna (ID email lan jeneng). Iki bakal nggawe amplop ing DocuSign lan micu email menyang pangguna. Yen ngono, sampeyan mung pengin ngirim email menyang pangguna banjur sampeyan bisa ngliwati langkah sabanjure.
Sadurunge nyoba ing tukang pos, coba mlebu DocuSign Swagger API minangka ditampilake ing ngisor iki:
POST /v2.1/accounts/{accountId}/amplop

Gawe Amplop nganggo dokumen pdf lan kirim menyang pangguna

Ing kene kita wis nyedhiyakake data tes ing ngisor iki miturut paramèter:

{ "dokumen": [ { "documentBase64": " ", "documentId": "64", "name": "test" } ], "emailSubject": "test", "recipients": { "signers": [{ "clientUserId": "test", "email" : "test@test.com", "name": "test", "RecipientId": "1" } ] }, "status": "dikirim" }

 

Data ing ndhuwur nggawe amplop kaya ing ngisor iki:

Nggawe Envelope samesthine output

Saiki ing tukang pos, pisanan entuk token akses kaya sing ditindakake sadurunge banjur bukak "Gawe Amplop" API ing koleksi kaya sing ditampilake ing ngisor iki ing URI lan muatan ndhuwur: POST https://demo.docusign.net/restapi/v2.1/accounts/<Your_Account_ID>/envelopes

Tukang pos nggawe Amplop nganggo dokumen pdf lan dikirim menyang pangguna

Saiki, uga bakal ngasilake amplop kaya sing ditindakake API swagger.

  1. Entuk URL adhedhasar amplop ing ndhuwur

Yen ngono, sampeyan pengin pangguna mlebu dokumen liwat browser, sampeyan kudu nggawe url tandha. URL iki banjur bisa digabungake ing iFrame. Kanggo tujuan kasebut, sampeyan kudu nyimpen envelopeId sing digawe ing ndhuwur yaiku “4098ec03-461f-4081-b0d8-ac59618bfc1a”.

Saiki, kita bakal nyoba ngasilaken pisanan liwat DocuSign Swagger API:

POST /v2.1/accounts/{accountId}/envelopes/{envelopeId}/views/recipient

Nggawe Pangirim

Entuk URL adhedhasar amplop ing ndhuwur

JSON kanggo ndhuwur:

{
  "clientUserId": "tes",
  "email": "gocodingorg@gmail.com",
  "Jeneng panganggo": "test",
  "returnUrl": "https://www.docusign.com/",
  "AuthenticationMethod": "ora ana"
}

Kaya sing dituduhake ing ndhuwur, kita ngeklik createRecipient, ngetik accoundId, envelopId, url bali (ing ngendi pangguna bakal dialihake sawise mlebu). Iki bakal ngasilake link kaya ing ngisor iki:

Entuk URL adhedhasar Output sing Dikarepake Amplop ing ndhuwur

Link iki bisa ditempelake ing ngendi wae miturut syarat.

Pratinjau DocuSign ing Situs web

Ing tukang pos, pisanan entuk token akses kaya sing ditindakake sadurunge lan nggawe panjaluk anyar kaya sing ditampilake ing ngisor iki:

Tukang pos njaluk URL adhedhasar amplop ing ndhuwur

Iki uga bakal ngasilake link kaya ing ndhuwur sing bisa dipasang ing ngendi wae.

  1. Entuk status amplop kanggo mriksa manawa pangguna wis mlebu dokumen kasebut utawa ora

Saiki, kita ana ing tahap pungkasan nalika pangguna wis mlebu dokumen lan pengin ngerti status kasebut. Menyang DocuSign Swagger API, lan klik njaluk ing Amplop, wenehi accountId lan envelopeId kanggo entuk status kaya ing ngisor iki:

GET /v2.1/accounts/{accountId}/envelopes/{envelopeId}/recipients

Entuk status amplop kanggo mriksa manawa pangguna wis mlebu dokumen kasebut utawa ora

Status sadurunge mlebu dokumen:

Output saka status amplop

Status sawise mlebu dokumen:

Status sawise mlebu dokumen

Padha bisa disebut liwat Postman minangka kapacak ing ngisor iki:

Tukang pos kanggo mlebu dokumen ing DocuSign

Telung langkah ing ndhuwur sing padha bakal digunakake ing kabeh jinis integrasi sabanjure.

3. Integrasi nggunakake Open Connector

Kasus panggunaan iki dibahas ing kene: https://blogs.sap.com/2019/07/22/digital-signatures-in-sapui5-using-docusign-and-openconnectors/

Ing kasus panggunaan khusus iki, elinga yen kita kudu otentikasi lan kasebut ing kene: https://blogs.sap.com/2019/03/13/cloud-integration-how-to-create-a-sample-integration-scenario-using-open-connectors-adapter/

Yen para pamaca pengin kasus panggunaan iki lan ora bisa ngetrapake, banjur kabari ing bagean komentar, kita bakal nyoba nutupi kasebut ing artikel sing kapisah.

4. Integrasi nggunakake DocuSign Rest API ing UI5

Kita bisa langsung nggunakake Rest API sing diwenehake dening DocuSign kanggo nggabungake ing Aplikasi UI5 kita. Kita wis digunakake kanggo nyoba ing langkah 02. Ing kene, aku bakal nyebutake maneh karo telpon AJAX. Bagian Wewenang lan pratelan diterangake ing bagean wiwitan artikel kasebut.

Langkah 01: Entuk token Authentication JWT

var settings = {

  "url": "https://account-d.docusign.com/oauth/token",

  "method": "POST",

  "timeout": 0,

  "headers": {

    "Authorization": "Basic OWE1YTJhN2EtNWYyNS00NTI2LWJjNjItODJkYzYyZmFlMmIxOjI0NDllNTdhLThiNjYtNDZlOC1hOTRjLTdlMjZlYzUyN2E5Yw==",

    "Content-Type": "application/x-www-form-urlencoded"

  },

  "data": {

    "assertion": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiI5YTVhMmE3YS01ZjI1LTQ1MjYtYmM2Mi04MmRjNjJmYWUyYjEiLCJzdWIiOiIwMjExZjQzMy1lYWEzLTRkNzMtYmU3Yi04Yjk1YWRmYzRlMDgiLCJhdWQiOiJhY2NvdW50LWQuZG9jdXNpZ24uY29tIiwiaWF0IjoxNjIzNTE3MTA5LCJleHAiOjE2MjM1MjA3MjQsInNjb3BlIjoic2lnbmF0dXJlIGltcGVyc29uYXRpb24ifQ.EqpyIrpytjyMX6xZqRsfgxMyRq2gkhotmAM8kUbtgJ83FK0dbolZ-gEtixckUIeAQvbb-gk5KV6_kwsWs0CgO-waxWtV3XV8k8jXPW42UxQXT1zBVwCm8TjzYpSvIdOGJKGGaPzMj9qJN8a2SSVB2FwkqoMgprEvnWESY3RjT-hzAYbqh5KdiLoFj_EO6KbVS8IUsusXtUYm10YFFduhJ0xN90m50wku0ChijQxKZNyDPai5v-C4NBuhlQA58RqB8OKq4B9WDSnyYHP87R8TaAoqAv8fsLZe8TtOM4J8ZAVG_CJQiKGJOabtFsW1zgNCTr8KCZvL5t6gEJg2t_vx4g",

    "grant_type": "urn:ietf:params:oauth:grant-type:jwt-bearer"

  }

};

$.ajax(settings).done(function (response) {
  console.log(response);
});

 

Gunakake respon ing langkah 01, lan entuk token sing bakal diterusake ing langkah 02, langkah 03 lan langkah 04.

Langkah 02: Gawe Amplop nganggo dokumen pdf lan kirim menyang pangguna

setelan var = { "url": "https://demo.docusign.net/restapi/v2.1/accounts/ / amplop "," Cara ":" Kirim "," Wektu "," "Headers": "" Ngatur ":", "konten" ":" Contone-jinis ": "text/plain" }, "data": "{\n \"dokumen\": [\n {\n \"documentBase0\": \" \",\n \"documentId\": \"1\",\n \"name\": \"test\"\n }\n ],\n \"emailSubject\": \"Test\" ,\n \"penerima\": {\n \"signers\": [\n {\n \"clientUserId\": \"2\",\n \"email\": \"rudanboss@gmail. com\",\n \"name\": \"Rudra\",\n \"RecipientId\": \"00\"\n }\n ]\n },\n \"status\": \ "dikirim\"\n}", }; $.ajax(setelan).rampung(fungsi (respon) {console.log(respon);});

 

ID amplop bakal ditampa minangka respon lan bakal digunakake ing langkah 03 lan langkah 04.

Langkah 03: Entuk URL adhedhasar Amplop ing ndhuwur

setelan var = { "url": "https://demo.docusign.net/restapi/v2.1/accounts/ /amplop/ / views / panampa "," Cara ":" Kirim "," Wektu ":" "Ngirim": "Ngatur", "wewenang": "," konten " ": "text/plain" }, "data": "{\r\n \"AuthenticationMethod\": \"Ora ana\",\r\n \"clientUserId\": \"test\",\r\ n \"email\": \"test@test.com\",\r\n \"recipientId\": \"0\",\r\n \"returnUrl\": \"https://www .docusign.com/\",\r\n \"Name\": \"test\"\r\n} ", }; $.ajax(setelan).rampung(fungsi (respon) {console.log( wangsulan);});

 

Ing respon, kita bakal entuk URL, URL iki bisa diselehake ing iframe utawa liwat tab anyar ing browser.

Langkah 04: Entuk status amplop kanggo mriksa manawa pangguna wis mlebu dokumen kasebut utawa ora

setelan var = { "url": "https://demo.docusign.net/restapi/v2.1/accounts/ /amplop/ / Panampa "," Cara ":" Entuk "," Wektu "," "Headers": {"wewenang": "};}; (setelan) .done {console.log(respon);});

 

Ing respon, kita bakal entuk status amplop. Ing kasus iku rampung, banjur pangguna wis ngrampungake tandha dokumen.

5. Integrasi nggunakake paket Node.js

Kanggo tujuan keamanan, luwih becik ngleksanakake kabeh panggilan ing backend liwat Node.Js supaya UI mung entuk URL final sing bisa diselehake liwat iframe lan ditandatangani dening pangguna. Ing kene kita bakal nuduhake sampeyan carane njaluk token otentikasi DocuSign liwat Node.Js, uga kita wis nggunakake konsep tujuan ing kene, sing sejatine minangka papan ing SAP Cloud Foundry kanggo njaga API supaya bisa nelpon kanthi aman. Bagian kasebut bisa diabaikan lan langsung fungsi kapindho simpul bisa digunakake kanthi nilai kode hard yen sampeyan ora nggunakake lingkungan SAP.

Kanggo tujuan iki, kita butuh paket simpul ing ngisor iki:

"moment": "^2.24.0", "jsonwebtoken": "^8.5.1"

 

Fungsi Node.Js kanggo njaluk token Authentication kanggo DocuSign:

               const moment = mbutuhake('wayahe'), jwt = mbutuhake('jsonwebtoken'); /** ** Entuk rincian Akses saka Destination banjur lebokake menyang fungsi sabanjure docusignAccessToken ** @in: GET telpon ** @out: Response Sukses - Auth_Token */ getDocusignAuthDetails() {bali anyar Janji(async (rampungake, nolak) => { coba { let destUri, tokenUrl, clientId, clientSecret; clientId = ; "ID Klien Tujuan ing SAP Cloud Foundry clientSecret = ; "Rahasia Tujuan Klien ing SAP Cloud Foundry tokenUrl = ` `; "URL kanggo njaluk token, iki disimpen ing Destination ing SAP Cloud Foundry destUri = ; "URL Tujuan ing SAP Cloud Foundry sing ngemot URL nyata DocuSign, kanggo tujuan keamanan supaya opsi = { uri: tokenUrl, metode: 'GET', header: { 'content-type': 'application/json', "Authorization ": "Dasar" + Buffer.from(clientId + ":" + clientSecret).toString("base64"), }}; ayo tokenResp = ngenteni httpHandler.execPOSREq(opsi); tokenResp = JSON.parse(tokenResp); / / Kene kita nelpon SAP Cloud Foundry Destination kanggo njaluk access_token, iki bisa diganti dening panggilan HTTP prasaja uga opsi = { uri: destUri + '/destination-configuration/v1/destinations/docusign_get_token', cara: 'GET', header: { 'content-type': 'application/json', Wewenang: 'bearer' + tokenResp.access_token }};ayo destConfig = ngenteni httpHandler.execPOSREq(opsi); destConfig = JSON.parse(destConfig). (destConfig); } catch (err) {console.log(err); reject(err)}})}, /** ** Entuk Token Akses kanggo docusign ** @in: POST call ** @out: Response Suc cess - Auth_Token */ async docusignAccessToken(req, res) {coba {var authCreds = ngenteni self.getDocusignAuthDetails(); ayo privateKEY = Buffer.from(authCreds.RSA_pvt_key, 'base64'); // Langkah 1. 

 

6. Integrasi nggunakake ABAP

Sampeyan bisa tindakake langkah diwenehi ing Langkah 02 lan Ngonversi ing panggilan API ABAP.

Conto kanggo nggawe token ditampilake ing ngisor iki, ganti nganggo kunci lan nilai sing bener:

  METODE get_token.
     DATA: lo_http_client JENIS REF TO if_http_client.
     DATA: respon TYPE string, lv_url TYPE string.
     CONSTANTS: lv_initial_url JENIS string NILAI ' ', lv_auth TYPE string VALUE ' '.
     "Nggawe klien HTTP kanthi url METODE CALL cl_http_client => create_by_url EXPORTING url = lv_initial_url IMPORTING client = lo_http_client EXCEPTIONS argument_not_found = 1 plugin_not_active = 2 internal_error = 3 LAIN = 4.
     "Titik Akhir API sing kasedhiya yen sy-subrc <> 0.
       "kesalahan nangani ENDIF.
     "metode panyuwunan setelan lo_http_client->request->set_method('GET').
     "nambahake header lo_http_client->request->set_header_field(jeneng = nilai 'Wewenang' = lv_auth).
     "Skema Keamanan sing kasedhiya kanggo Titik Akhir API sing produktif" METODE TELPON OAuth 2.0 lo_http_client->ngirim EXCEPTIONS http_communication_failure = 1 http_invalid_state = 2 http_processing_failed = 3 http_invalid_timeout = 4 LAINNYA = 5.
     IF sy-subrc = 0.
       METODE TELPON lo_http_client->nampa PENGECUALIAN http_communication_failure = 1 http_invalid_state = 2 http_processing_failed = 3 LAINNYA = 5.
     ENDIF.
     IF sy-subrc <> 0.
       "kesalahan nangani ENDIF.
     respon = lo_http_client->respons->get_cdata().
    GV_TOKEN = respon.
   METODE END.
 Nggunakake GV_TOKEN ing ndhuwur, kita bakal entuk kunci lan kunci iki bisa diterusake ing telpon GET / POST liyane sing dibutuhake.
 Conto telpon GET/POST ing ABAP kapacak ing ngisor iki: METHOD get_proof_history.
     DATA: lo_http_client JENIS REF TO if_http_client.
     DATA: string TYPE respon, string TYPE lv_url, string TYPE lv_auth, string TYPE lv_auth2.
     CONSTANTS : lv_initial_url JENIS string NILAI ' '.
     YEN iv_object_id dudu AWAL.
 *** Njaluk JENIS Token: BEGIN OF t_entry, access_token TYPE string, token_type TYPE string, expires_in TYPE n LENGTH 8, scope TYPE string, jti TYPE string, END OF t_entry .
       JENIS: t_entry_map TYPE SORTED TABLE OF t_entry WITH UNIQUE KEY access_token.
       DATA: m_entri JENIS t_entri.
       DATA: lr_instance TYPE REF TO /ui5/cl_json_parser.
       Nggawe OBJEK lr_instance.
       TELPON METODE kula->get_token.
       Yen gv_token dudu AWAL.
 * data: itab JENIS TABEL string.
 * data: access_tok tipe string.
 * SPLIT gv_token ing '"' INTO TABLE itab.
 *nyoba.
 * lv_auth2 = itab[ 4 ].
 * nyekel cx_sy_itab_line_not_found.
 * ENDTRY.
         /ui2/cl_json=>deserialize(EXPORTING json = gv_token pretty_name = /ui2/cl_json=>pretty_mode-camel_case CHANGING data = m_entries).
         lv_auth2 = m_entri-akses_token.
         gv_token = gv_token+17.
         CONCATENATE 'Bearer' lv_auth2 INTO lv_auth Dipisahake dening spasi.
       ENDIF.
       DATA lv_object_id TYPE string.
       lv_objek_id = iv_objek_id.
       TRANSLATE lv_object_id menyang huruf cilik.
       GAMBUNG lv_initial_url lv_object_id IN TO lv_url.  "Nambah URL Ndandani lan ID Obyek kanggo njaluk URL Panjaluk" nggawe klien HTTP kanthi url METODE CALL cl_http_client=>create_by_url EXPORTING url = lv_url IMPORTING client = lo_http_client EXCEPTIONS argument_not_found = 1 plugin_not_active = 2 internal_error = 3 OTHERS.
       "Titik Akhir API sing kasedhiya" https://blockchain-service.cfapps.sap.hana.ondemand.com/blockchain/proofOfHistory/api/v1 "https://blockchain-service.cfapps.eu10.hana.ondemand.com/blockchain /proofOfHistory/api/v1 "https://blockchain-service.cfapps.us10.hana.ondemand.com/blockchain/proofOfHistory/api/v1 IF sy-subrc <> 0.
         "kesalahan nangani ENDIF.
       "Setelan metode request, kene sampeyan bisa nindakake POST utawa GET telpon lo_http_client->request->set_method('GET').
       "creatung Auth value * lv_auth2 = 'Dasar '.
       "nambahake header * lo_http_client->request->set_header_field(name = 'Content-Type' value = 'application/x-www-form-urlencoded').
       lo_http_client->request->set_header_field(jeneng = 'Nampa' nilai = 'aplikasi/json').
       lo_http_client->request->set_header_field(jeneng = nilai 'Wewenang' = lv_auth).
 * lo_http_client->request->set_header_field(jeneng = nilai 'APIKey' = 'zBoCpDtkaT9jexRjtMk0J98Rs8izmQi1').
       "Skema Keamanan sing kasedhiya kanggo Titik Akhir API sing produktif" METODE TELPON OAuth 2.0 lo_http_client->ngirim EXCEPTIONS http_communication_failure = 1 http_invalid_state = 2 http_processing_failed = 3 http_invalid_timeout = 4 LAINNYA = 5.
       IF sy-subrc = 0.
         METODE TELPON lo_http_client->nampa PENGECUALIAN http_communication_failure = 1 http_invalid_state = 2 http_processing_failed = 3 LAINNYA = 5.
       ENDIF.
       IF sy-subrc = 1.
         "error handling ev_response = 'http_communication_failure'.
       ELSEIF sy-subrc = 2.
         ev_response = 'http_invalid_state'.
       ELSEIF sy-subrc = 3.
         ev_response = 'http_processing_failed'.
       ELSEIF sy-subrc = 0.
         respon = lo_http_client->respons->get_cdata().
 *NULIS: 'respon:', respon.
         ev_respon = tanggapan.
       LAIN.
         ev_response = 'Kasalahan sing ora dingerteni'.
       ENDIF.
     ENDIF.

 

7. Pilihan Integrasi liyane

Saliyane integrasi sing wis dibahas ing ndhuwur, ana uga jinis integrasi liyane sing didhukung dening DocuSign. Iki (karo pranala GitHub/referensi):

Ngatasi masalah kesalahan

Nalika nindakake operasi ing ndhuwur, sampeyan bisa ngadhepi masalah ing ngisor iki:

Kesalahan Alesan solusi
Panjaluk otentikasi ora sah Ing kene sampeyan bakal entuk luwih akeh alasan kesalahan iki.

 

Yen kesalahan "Tipe respon ora didhukung"

banjur

nilai response_type kudu disetel minangka kode

Token jinis mismatch Iki tegese jinis token sing diwenehake salah · Gunakake jinis token sing bener kanthi muatan sing bener:

1.       Jinis Respon: Iki bisa dadi response_type=code (kanggo Grant Code Authorization lan JWT Grant) utawa response_type=token (kanggo Grant Implicit)

2.       Tipe Grant: Iki bisa dadi grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer (kanggo JWT Grant) utawa grant_type=authorization_code (kanggo Authorization Code Grant). Ora dibutuhake kanggo Grant Implisit

Kadaluwarsa token Klien Iku tegese sampeyan ngakses token wis kadaluwarsa · Refresh utawa ngasilake token akses anyar
ID klien dipatèni Iki tegese app sampeyan ing akun pangembang DocuSign dipateni · Aktifake Aplikasi sampeyan ing portal pangembang DocuSign
ID situs pangguna ora valid Tegese URL sing digunakake kanggo ngasilake token akses lan nindakake operasi DocuSign ora padha · Gunakake URI sing padha kanggo kabeh operasi
Penerbit ora ditemokake Iki tegese pangguna ora sah · Priksa manawa pangguna nduweni akses menyang akun pangembang DocuSign sing digunakake kanggo nindakake operasi
Pangguna ora ditemokake Iki tegese pangguna ora sah · Priksa manawa pangguna nduweni akses menyang akun pangembang DocuSign sing digunakake kanggo nindakake operasi
Refresh token ora cocog Iku tegese token wis kadaluwarsa utawa salah · Regenerate akses utawa refresh token
Panjaluk sing ala Iki kedadeyan utamane amarga URI otentikasi sing salah · Kanggo lingkungan demo pangembang, sampeyan kudu nggunakake URI saka domain https://account-d.docusign.com/oauth.

· Kanggo platform produksi, sampeyan kudu nggunakake URI saka domain https://account.docusign.com/oauth.

 

Panyuwunan otentikasi ora bener: Jinis respon ora didhukung. Iku tegese panjalukan kode wewenang ora disetel kanggo kode. · Setel response_type minangka kode
Grant ora sah Salah siji kode wewenang ora lengkap utawa kadaluwarsa. · Sampeyan bisa nggawe maneh Kode Wewenang

· Sampeyan bisa mriksa yen kode wewenang sing diwenehake bener lan ora ana spasi putih ekstra sing ditambahake

RedirectUri ora sah Tegese URI pangalihan sing dikelola ing kunci Integrasi DocuSign dudu sing dikirim liwat muatan. · Gunakake URI pangalihan sing padha sing sampeyan jaga ing Kunci Integrasi DocuSign
Persetujuan_dibutuhake Kanggo pisanan, sampeyan kudu menehi idin kanthi manual, yen ora, sampeyan bakal entuk kesalahan iki ·         Link kanggo njaluk idin kanggo pisanan:
https://account-d.docusign.com/oauth/auth?
response_type=kode
&scope=YOUR_REQUESTED_SCOPES
&client_id=YOUR_INTEGRATION_KEY
&redirect_uri=YOUR_REDIRECT_URI
Kaca ora bisa ditampilake sawise njaluk kode Tegese URI pangalihan dudu kaca web sing bener · Njaga URI sing bener minangka URI pangalihan ing Kunci Integrasi ing DocuSign
invalid_grant: no_valid_keys_or_signatures Iki tegese ana sing salah ing pernyataan JWT. Bisa uga ana ing kunci pribadi, exp sing ilang, aud ora valid, · Waca bagean Prasyarat artikel iki lan wenehake nilai sing bener kaya sing kasebut ing kana
Gagal Otentikasi Partner / Kunci integrasi dipateni Iki tegese app sampeyan ing akun pangembang DocuSign dipateni · Aktifake Aplikasi sampeyan ing portal pangembang DocuSign
CORS: Cross Origin Sampeyan bisa uga nggunakake API langsung ing telpon AJAX sampeyan. Sampeyan kudu nggabungake liwat backend utawa liwat tujuan.
ONESIGNALLSIGN_NOT_PUAS Teken freeform ora diidini kanggo akun sampeyan amarga konflik karo setelan liyane, mangga pasang tab tandha kanggo saben tandha. Pindhah menyang setelan Admin ing DocuSign, ing setelan pangirim, mateni gulung mudhun kanggo "Visibilitas Dokumen"

Link Rujukan

Sampeyan bisa njelajah luwih akeh ing kene:

Pengarang


komentar

Siji tanggapan kanggo "Integrasi DocuSign ing SAP UI5, Node.js lan SAP ABAP"

  1. Hi,

    Apa sampeyan bisa nggawe Video ing Aplikasi Fiori ing platform BTP kepiye sampeyan bisa entuk.

Ninggalake a Reply

Panjenengan alamat email ora bisa diterbitake. Perangkat kothak ditandhani *

Situs iki nggunakake Akismet kanggo ngurangi spam. Sinau babagan proses data sampeyan.