用于与docusign集成的python docassemble包

docassemble-docusign的Python项目详细描述


docassemble docusign

用于与docusign集成的python docassemble包。更具体地说,它提供了一种简单的方法来创建和发送带有锚文本标准的信封,而锚文本必须放在文档中。

如何使用

该模块围绕一个神奇的方法create_envelope构建在一个神奇的类EnvelopeCreator上。该函数接受更多通常可以接受的参数,但是,它需要传递三个不同的docusign凭据,这些凭据可以存储(jason help here)并调用为(jason please)。

在此之前,您必须创建一个集成键。这可以在docusign管理部分找到,在这里您还可以找到您的用户id,稍后我们将需要它。

第一步是征得你要模仿的用户的同意,这通常是礼貌的。您最多需要打开一个网页浏览器:

https://account-d.docusign.com/oauth/auth?
response_type=token
&scope=signature%20impersonation
&client_id=YOUR_INTEGRATION_KEY
&redirect_uri=YOUR_REDIRECT_URI

这应该是一行,就像一个普通的url,它的格式是这样的,以显示不同的部分是什么。重定向uri并不一定重要,但它必须与集成密钥一起指定,否则docusign将崩溃。哦,如果你是在生产,那就是https://account.docusign.com

下面是一些示例代码,我们将在后面一部分一部分地讨论它。

importdocassemble-docusignasdocasignenvelope_creator=docasign.EnvelopeCreator(integrator_key='INTEGRATOR KEY HERE',user_id='USER ID HERE',private_key='PRIVATE KEY HERE')envelope_creator.create_envelope(recipients=[{'name':'Doug Rattman','email':'doug.rattman@aperturescience.com','group':'signers','routingOrder':1,'tabs':[{'type':'signHere','anchorString':docasign.generate_anchor('signHere','doug.rattman@aperturescience.com')},{'type':'date','anchorString':docasign.generate_anchor('date','doug.rattman@aperturescience.com')}]},{'name':'Cave Johnson','email':'ceo@aperturescience.com','group':'certifiedDeliveries','routingOrder':2}],documents=[{'name':"Bring Your Daughter To Work Day",'fileExtension':'docx','documentBase64':docasign.make_document_base64('bydtwd.docx')},{'name':"Lemon Grenade Acquisition",'fileExtension':'docx','documentBase64':docasign.make_document_base64('lemongrenadeacquisition.docx')}],send_immediately=True,email_subject="Very Important Documents To Sign",production=True,assign_recipient_ids=True,assign_doc_ids=True)

好吧,一次一个。

首先,我们将docassemble-docusign导入为docasign(这是一个portmanteau),并创建一个EnvelopeCreator

importdocassemble-docusignasdocasignenvelope_creator=docasign.EnvelopeCreator(integrator_key='INTEGRATOR KEY HERE',user_id='USER ID HERE',private_key='PRIVATE KEY HERE')

现在我们运行这个方法。让我们从recipients开始,逐个查看这些参数。实际上,您将传递一个字典列表,每个字典代表一个收件人。需要注意的是,这只列出了最小值;在DocuSign REST API中的任何附加键值对都可以包含在您传递的任何字典中,而不会有任何麻烦(或者至少不应该有……听着,这是一个巨大的api,好吧!)

KeyValue
^{}Name of recipient
^{}Email address of recipient
^{}Type of recipient, must be part of: ^{}, ^{}, ^{}, ^{}, ^{}, ^{}, ^{}, ^{}. For more details, read this.
^{}Order in which recipients receive the envelope. All of routing order 1 must complete their task (usually sign) before routing order 2, who must complete before 3, and so on.
^{}See below...

我们将在最后讨论制表符,因为它们需要额外的工作放入您将在docassemble中创建的文档中。相反,现在让我们看看documents参数。就像recipients,您将传递一个字典列表,每个字典代表一个文档。每个文档需要三个键值对:

KeyValue
^{}Name of document
^{}File extension of the document (such as ^{} or ^{})
^{}A base64 encoding of your document; can be generated with the ^{} function, as seen above

最后,还有一些可选参数…

ArgumentEffect
^{}If ^{}, sends envelope immediately, otherwise saves envelope as draft. Defaults to ^{}.
^{}Subject of email sent to recipients. Defaults to ^{}.
^{}If ^{}, uses production server, otherwise uses the sandbox. Defaults to ^{}.
^{}Normally the API requires every recipient to have their own arbritrary id. If set to ^{}, this is done for you. Defaults to ^{}.
^{}Same deal as ^{}. Seriously, unless you have something fancy in mind, leave this on. Defaults to ^{}.

标签

如果不想让签名者在文档上的任何位置涂鸦(称为“自由格式签名”),则需要定义一些选项卡。制表符是为了签署文档而单击或键入的位,例如签名框或文本字段,以及一些具有锁定值的制表符,例如显示签署日期的制表符。有很多标签类型,但是你可以通过在docusign沙盒上玩来探索它们。

每个签名者都有自己的标签列表。为了让docusign知道标签的放置位置,我们必须将它们定位到文档中的某个文本。这是我们创建标准化锚的重要功能所在。使用generate_anchor函数,向其传递一个选项卡类型和一封电子邮件,您可以生成一个锚,该锚必须同时放置在文档中要放置选项卡的位置,并设置为选项卡的'anchorString'。建议您使用接近11点的文本,以便很好地适应选项卡(签名需要两行!),并将文本设置为白色,以便用户看不到它。

标准锚定的格式如下:

[FIRST TEN CHARACTERS OF THE SHA1 HASH OF THE EMAIL]-[UP TO FIVE CHARACTER LONG ABBREVIATION OF THE TAG TYPE]

由于sha1散列的原因,这对于每一个收件人使用的每种类型的选项卡都是唯一的,所以一切都应该正常工作。实际上,你可以使用任何你喜欢的系统作为锚,我们只是做了这个系统,因为它非常简单和容易!但我不会告诉你该怎么做,也许你的自动骰子弹出锚生成器只是你的系统。

与收件人和文档一样,附加到rec的选项卡ipient是一个字典列表,每个字典都有最小的键值对:

KeyValue
^{}Type of tab. There are LOTS of these, here's a list.
^{}String in document to anchor tab to

制表符还有很多功能,例如可以锁定通常可编辑的制表符,并偏移定位点。Read all about that here if you're interested!它都可以添加到词典中。

依赖关系

您需要pip才能安装:

  • 请求(用于发送http请求)
  • PYJWT(用于身份验证)

希望这对你的工作有帮助!现在如果你有钥匙让我离开这个文件地牢…

如果你正在阅读这篇文章,这意味着我需要为redis设置日志记录,但这也意味着jason需要帮助,所以就像,hi jason!还有助于文档传递,比如,文档在docassemble中是如何表示的?如果它只是一个文件的路径,那么这很酷,但我假设它要复杂一些

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何将cassandra中的行数据转换为与列相关的嵌套json   java如何使用jcr XPath在jcr:content/@jcr:data中搜索?   java在使用openCV进行安卓开发时如何利用手机的广角镜头   java解析扩展了接口,结束了一个潜在的无限循环   位置服务的@Override方法中存在java Android应用程序错误   java本地线程的用途和需求是什么   具有左右子访问的java节点树遍历   java验证JsonWebToken签名   JUL日志处理程序中的java日志记录   嵌入式Java读取给定时间段的串行数据。   java有没有办法从多个URL获取多个图像?   java线程通过等待intent阻止自己发送intent   java Spring MVC解析多部分内容请求   java JPA/Hibernate静态元模型属性未填充NullPointerException   java格式错误的字符(需要引号,得到I)~正在处理   java为什么PrintWriter对象抛出FileNotFoundException?   java Neo4j未正确保存标签   java IE不加载图像