У меня следующий код. Я использую шаблон с одним PDF-файлом и хочу добавить значения к определенным c местам в PDF-документе перед его подписанием. Я хочу встроить это в мое собственное приложение VueJS. У меня есть пара пользовательских полей с именами сумма, customerName и т. Д. c. Когда я открываю код для вставки в iframe, я не вижу пользовательских полей. Вы видите что-то не так с моим кодом? Заранее спасибо.
const docusign = require('docusign-esign');
export const makeEnvelope = async (data) => {
let payload = {
signerEmail: 'a@b.com',
signerName: 'a b',
agentName: 'a c',
agentEmail: 'a@c.com',
templateId: 'xxx'
}
let env = new docusign.EnvelopeDefinition();
env.templateId = payload.templateId;
let info = {
"amount": "143",
"customerName": "ccc",
"tax": "13"
}
let textFields = [];
Object.keys(info).forEach(i => {
let text = docusign.Text.constructFromObject({
tabLabel: i, value: info[i]
});
textFields.push(text);
})
let tabs = docusign.Tabs.constructFromObject({
textTabs: textFields,
});
let customer = docusign.TemplateRole.constructFromObject({
name: 'sq',
email: 's@q.com',
Name: 'sq',
signerName: 'sq',
roleName: 'customer',
tabs: tabs
});
let agent = docusign.TemplateRole.constructFromObject({
name: 'sa',
email: 's@a.com',
Name: 'sa',
signerName: 'sa',
roleName: 'agent',
tabs: tabs
});
env.templateRoles = [agent, customer];
env.status = "sent";
return env;
}
export const docuApi = async (event) => {
let payload = {
basePath: 'https://demo.docusign.net/restapi',
accessToken: 'ccc',
accountId: 'xxx',
};
let dsApiClient = new docusign.ApiClient();
await dsApiClient.setBasePath(payload.basePath);
await dsApiClient.addDefaultHeader('Authorization', 'Bearer ' + payload.accessToken);
let envelopesApi = new docusign.EnvelopesApi(dsApiClient);
let envelope = await makeEnvelope(payload.envelopepayload);
let envelopeId;
let results = await envelopesApi.createEnvelope(payload.accountId, {envelopeDefinition: envelope})
.then(res => {
envelopeId = res.envelopeId;
})
.catch(err => {
});
console.log('envelopeId', envelopeId);
let viewRequest = await makeRecipientViewRequest({
"dsReturnUrl": '',
"signerEmail": 's@q.com',
"signerName": 'sa',
// "signerClientId": '',
"dsPingUrl": 'https://example.com'
})
let createView = await envelopesApi.createRecipientView(
payload.accountId, envelopeId,{recipientViewRequest: viewRequest})
.then(res => {
console.log('createView res', res)
})
.catch(err => {
console.log(err.response.error);
});
return results;
}
const makeRecipientViewRequest = async (args) => {
let viewRequest = new docusign.RecipientViewRequest();
viewRequest.returnUrl = args.dsReturnUrl + "?state=123";
viewRequest.authenticationMethod = 'none';
viewRequest.email = args.signerEmail;
viewRequest.userName = args.signerName;
viewRequest.clientUserId = args.signerClientId;
viewRequest.pingFrequency = 600; // seconds
viewRequest.pingUrl = args.dsPingUrl; // optional setting
return viewRequest
}