# -*- coding: UTF-8 -*- import esigntool import requests from esigntool import esign_run_print_outer # 合同文件签署服务API - 签署区 - 变更类 config = esigntool.config() # 初始化配置类 @esign_run_print_outer def addSignFields(): """ 追加签署区 :return: """ body = { "signers": [ { "noticeConfig": { "noticeTypes": "1" }, "psnSignerInfo": { "psnAccount": "153****0000" }, "signConfig": { "forcedReadingTime": 10, "signOrder": 2 }, "signFields": [ { "customBizNum": "202201010001", "fileId": "0e99de7c***09db2cd69", "remarkSignFieldConfig": { "aiCheck": 0, "freeMode": True, "movableSignField": True, "remarkContent": "我已阅读并知悉", "remarkFontSize": 20, "signFieldHeight": 100, "signFieldPosition": { "acrossPageMode": "", "positionPage": "1", "positionX": 100, "positionY": 100 }, "signFieldWidth": 100 }, "signFieldType": 1 } ], "signerType": 0 } ] } # 构建请求body体 sign_flowId = "df********grgter" # 声明变量入参 api_path = "/v3/sign-flow/{}/signers/sign-fields".format(sign_flowId) # 拼接请求路径 method = esigntool.httpMethodEnum.POST # 声明请求方法 json_headers = esigntool.buildSignJsonHeader(config.appId, config.scert, method, api_path, body) # 签名并构造签名鉴权json请求头 resp = requests.request(method, config.host + api_path, json=body, headers=json_headers) # 发送请求 print(resp.text) return resp @esign_run_print_outer def deleteSignFields(): """ 删除签署区 :return: """ sign_flowId = "df********grgter" # 声明变量入参 sign_FieldIds = "xxx1,xxx2" # 声明变量入参 api_path = "/v3/sign-flow/{}/signers/sign-fields?signFieldIds={}".format(sign_flowId, sign_FieldIds) # 拼接请求路径 method = esigntool.httpMethodEnum.DELETE # 声明请求方法 json_headers = esigntool.buildSignJsonHeader(config.appId, config.scert, method, api_path) # 签名并构造签名鉴权json请求头 resp = requests.request(method, config.host + api_path, json=None, headers=json_headers) # 发送请求 print(resp.text) return resp if __name__ == '__main__': addSignFields() # 追加签署区 deleteSignFields() # 删除签署区