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", "FileName": "test.png" } ] return upload_document_files(files, file_type='png') def upload_document_files(files, file_type='png'): _files = files file_ids = [] # 腾讯电子签接口限制 20 张图片 while len(_files) > 0: res = upload_files(_files[:20], file_type=file_type, business_type='DOCUMENT') print(res) file_ids = file_ids + res.FileIds _files = _files[20:] return file_ids def upload_files(files, file_type='png', business_type='DOCUMENT'): # https://qian.tencent.com/developers/companyApis/templatesAndFiles/UploadFiles/ try: # 实例化一个认证对象,入参需要传入腾讯云账户 SecretId 和 SecretKey,此处还需注意密钥对的保密 # 代码泄露可能会导致 SecretId 和 SecretKey 泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考,建议采用更安全的方式来使用密钥,请参见:https://cloud.tencent.com/document/product/1278/85305 # 密钥可前往官网控制台 https://console.cloud.tencent.com/cam/capi 进行获取 cred = credential.Credential(secret_id, secret_key) # 实例化一个http选项,可选的,没有特殊需求可以跳过 httpProfile = HttpProfile() httpProfile.endpoint = file_endpoint # 实例化一个client选项,可选的,没有特殊需求可以跳过 clientProfile = ClientProfile() clientProfile.httpProfile = httpProfile # 实例化要请求产品的client对象,clientProfile是可选的 client = ess_client.EssClient(cred, "", clientProfile) # 实例化一个请求对象,每个接口都会对应一个request对象 req = models.UploadFilesRequest() params = { "FileType": file_type, "Caller": { "OperatorId": operator_id }, "FileInfos": files, "BusinessType": business_type } req.from_json_string(json.dumps(params)) # 返回的resp是一个DescribeFlowTemplatesResponse的实例,与请求对象对应 resp = client.UploadFiles(req) # 输出json格式的字符串回包 # print(resp.to_json_string()) except TencentCloudSDKException as err: print(err) resp = {} return resp def test_create_flow(): class lensman: phone = '18888888888' identity_card_name = '张三' identity_card_number = '460005199605144313' FlowName = lensman.identity_card_name + "的投稿合同" + tc.local_string(format='%Y%m%d') FlowType = '活动投稿授权书' Approvers = [{ "ApproverType": 1, "Required": True, "NotifyType": None, "ApproverMobile": lensman.phone, "ApproverName": lensman.identity_card_name, "ApproverIdCardType": "ID_CARD", "ApproverIdCardNumber": lensman.identity_card_number, }] return create_flow(flow_name=FlowName, flow_type=FlowType, approvers=Approvers) def create_flow(flow_name=None, flow_type=None, approvers=None): # https://qian.tencent.com/developers/companyApis/startFlows/CreateFlow try: # 实例化一个认证对象,入参需要传入腾讯云账户 SecretId 和 SecretKey,此处还需注意密钥对的保密 # 代码泄露可能会导致 SecretId 和 SecretKey 泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考,建议采用更安全的方式来使用密钥,请参见:https://cloud.tencent.com/document/product/1278/85305 # 密钥可前往官网控制台 https://console.cloud.tencent.com/cam/capi 进行获取 cred = credential.Credential(secret_id, secret_key) # 实例化一个http选项,可选的,没有特殊需求可以跳过 httpProfile = HttpProfile() httpProfile.endpoint = endpoint # 实例化一个client选项,可选的,没有特殊需求可以跳过 clientProfile = ClientProfile() clientProfile.httpProfile = httpProfile # 实例化要请求产品的client对象,clientProfile是可选的 client = ess_client.EssClient(cred, "", clientProfile) # 实例化一个请求对象,每个接口都会对应一个request对象 req = models.CreateFlowRequest() params = { "Operator": { "UserId": operator_id }, "FlowName": flow_name, "FlowType": flow_type, "Approvers": approvers, } req.from_json_string(json.dumps(params)) # 返回的resp是一个DescribeFlowTemplatesResponse的实例,与请求对象对应 resp = client.CreateFlow(req) # 输出json格式的字符串回包 # print(resp.to_json_string()) except TencentCloudSDKException as err: print(err) resp = {} return resp def test_create_document(): class lensman: phone = '18888888888' identity_card_name = '张三' identity_card_number = '460005199605144313' flow_id = 'yDCHHUU08ki1zsUY6XuiSQfzpNaT4BXE' file_id = 'yDCHHUU08q2s90UGmXutvE1Vf4nBGGYu' form_fields = [ { "ComponentId": "ComponentId_0", "ComponentValue": lensman.identity_card_name }, { "ComponentId": "ComponentId_1", "ComponentValue": lensman.identity_card_number, }, { "ComponentId": "ComponentId_2", "ComponentValue": "100", }, { "ComponentId": "ComponentId_3", "ComponentValue": "壹佰", }, { "ComponentId": "ComponentId_37", "ComponentValue": file_id, } ] return create_document(flow_id=flow_id, form_fields=form_fields) def create_document(flow_id=None, form_fields=None): # https://qian.tencent.com/developers/companyApis/startFlows/CreateDocument/ try: # 实例化一个认证对象,入参需要传入腾讯云账户 SecretId 和 SecretKey,此处还需注意密钥对的保密 # 代码泄露可能会导致 SecretId 和 SecretKey 泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考,建议采用更安全的方式来使用密钥,请参见:https://cloud.tencent.com/document/product/1278/85305 # 密钥可前往官网控制台 https://console.cloud.tencent.com/cam/capi 进行获取 cred = credential.Credential(secret_id, secret_key) # 实例化一个http选项,可选的,没有特殊需求可以跳过 httpProfile = HttpProfile() httpProfile.endpoint = endpoint # 实例化一个client选项,可选的,没有特殊需求可以跳过 clientProfile = ClientProfile() clientProfile.httpProfile = httpProfile # 实例化要请求产品的client对象,clientProfile是可选的 client = ess_client.EssClient(cred, "", clientProfile) # 实例化一个请求对象,每个接口都会对应一个request对象 req = models.CreateDocumentRequest() params = { "Operator": { "UserId": operator_id }, "TemplateId": template_id, "FlowId": flow_id, "FormFields": form_fields, } req.from_json_string(json.dumps(params)) # 返回的resp是一个DescribeFlowTemplatesResponse的实例,与请求对象对应 resp = client.CreateDocument(req) # 输出json格式的字符串回包 # print(resp.to_json_string()) except TencentCloudSDKException as err: print(err) resp = {} return resp def test_start_flow(): flow_id = 'yDCHHUU08ki1zsUY6XuiSQfzpNaT4BXE' return start_flow(flow_id=flow_id) def start_flow(flow_id=None): # https://qian.tencent.com/developers/companyApis/startFlows/StartFlow/ try: # 实例化一个认证对象,入参需要传入腾讯云账户 SecretId 和 SecretKey,此处还需注意密钥对的保密 # 代码泄露可能会导致 SecretId 和 SecretKey 泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考,建议采用更安全的方式来使用密钥,请参见:https://cloud.tencent.com/document/product/1278/85305 # 密钥可前往官网控制台 https://console.cloud.tencent.com/cam/capi 进行获取 cred = credential.Credential(secret_id, secret_key) # 实例化一个http选项,可选的,没有特殊需求可以跳过 httpProfile = HttpProfile() httpProfile.endpoint = endpoint # 实例化一个client选项,可选的,没有特殊需求可以跳过 clientProfile = ClientProfile() clientProfile.httpProfile = httpProfile # 实例化要请求产品的client对象,clientProfile是可选的 client = ess_client.EssClient(cred, "", clientProfile) # 实例化一个请求对象,每个接口都会对应一个request对象 req = models.StartFlowRequest() params = { "Operator": { "UserId": operator_id }, "FlowId": flow_id, } req.from_json_string(json.dumps(params)) # 返回的resp是一个DescribeFlowTemplatesResponse的实例,与请求对象对应 resp = client.StartFlow(req) # 输出json格式的字符串回包 # print(resp.to_json_string()) except TencentCloudSDKException as err: print(err) resp = {} return resp def test_create_scheme_url(): class lensman: phone = '18888888888' identity_card_name = '张三' identity_card_number = '460005199605144313' flow_id = 'yDCHHUU08ki1zsUY6XuiSQfzpNaT4BXE' return create_scheme_url(flow_id=flow_id, name=lensman.identity_card_name, mobile=lensman.phone, card_type='ID_CARD', card_number=lensman.identity_card_number) def create_scheme_url(flow_id=None, name=None, mobile=None, card_type='ID_CARD', card_number=None): # https://qian.tencent.com/developers/companyApis/startFlows/CreateSchemeUrl try: # 实例化一个认证对象,入参需要传入腾讯云账户 SecretId 和 SecretKey,此处还需注意密钥对的保密 # 代码泄露可能会导致 SecretId 和 SecretKey 泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考,建议采用更安全的方式来使用密钥,请参见:https://cloud.tencent.com/document/product/1278/85305 # 密钥可前往官网控制台 https://console.cloud.tencent.com/cam/capi 进行获取 cred = credential.Credential(secret_id, secret_key) # 实例化一个http选项,可选的,没有特殊需求可以跳过 httpProfile = HttpProfile() httpProfile.endpoint = endpoint # 实例化一个client选项,可选的,没有特殊需求可以跳过 clientProfile = ClientProfile() clientProfile.httpProfile = httpProfile # 实例化要请求产品的client对象,clientProfile是可选的 client = ess_client.EssClient(cred, "", clientProfile) # 实例化一个请求对象,每个接口都会对应一个request对象 req = models.CreateSchemeUrlRequest() params = { "Operator": { "UserId": operator_id }, "FlowId": flow_id, "Name": name, "Mobile": mobile, "IdCardType": card_type, "IdCardNumber": card_number, "EndPoint": "APP", "PathType": 1, # 腾讯电子签小程序流程合同的详情页 "AutoJumpBack": True, # 签署完成会自动跳转回来 } req.from_json_string(json.dumps(params)) # 返回的resp是一个DescribeFlowTemplatesResponse的实例,与请求对象对应 resp = client.CreateSchemeUrl(req) # 输出json格式的字符串回包 # print(resp.to_json_string()) except TencentCloudSDKException as err: print(err) resp = {} return resp def decode_aes256(data, encryption_key): iv = encryption_key[0:16] aes = AES.new(encryption_key, AES.MODE_CBC, iv) d = aes.decrypt(data) unpad = lambda s: s[0:-ord(d[-1:])] return unpad(d) def test_decode(): # https://qian.tencent.com/developers/company/callback_types_v2 data = "62KE4r5Wz0yHzEpMOwVRbM1KV0pPjj+cmJkT+i65MMscgfHAdNP+9K0nV/fFw1xriwi08APc/wM0mHprE43Hc91VPhRDnu2Wn0+bjzgjmy/FgZKZATR9oquy0/BCWu4C77AjkpkoU1/E7gGLr8M9u9t7zbS4AkkGK5xL5TtwI0sS+CMygmyV7bRjxebMycI52U3QJiwDRIPxFO+7yqeXYXV9AQrRskpCDBNFGW72bh+Ixw9dtX00kWcwVQ93V+mayrvdQ8oGSsL32m72kbBfahsIvIxSYSdDAEeTyokqKGfaLWD27vm55QG218IFKEsOJFDGdqCF+IBcM/+rOFeOrewvP5ehIO2KjFBecTDn0RQTlIiokXIQ4zJKvu6njePFRFoFCZjd4oiEIVn/OBw+rjXml3qwgVBQjPRtYdvDJFNENlVjlkVVmLWeS8MIdqsFWhm6Sa7O8X57mwc0cLJ22mGbyVEzNTFqeFJ/mkueW0leLcoZdjv/+IxZusqa1cpfwzkZhwi5rY6kJffNkkrxIc6OeRvpU4ECgBe/b+kxX+ObC0z9u7nzoZAOHx4akYviyIU5B1romjdfHQ/wDr5udm4Rl4NBhU/6V06Rvaadw0Ta9oBkZHGNxFWv32MnL7fVA0zVNOFDP8n+kaQiNGFAXLF4F5oIItYc5+Gp/IxfkltEki7ni7LztViE7b/ZiKSM+gzQn6fLsJ/dlUoZmh141Y0V/GPpsbxBOnWCjBZdNkLTKxdKCMScLCTysJxv7l6Swff8nAEurbzx1tvyhJAvUDnIaLyP8pRPRFq8p0xm3ZVpOo9k7A952XxVHSs40g4sr/Dihkn60aVhGtKK9DueCzn8P3cWG4TYc03M1hNlPfF+UAfnvQ1ZYAMKT/XPLqYtgRFpRkK96YfVecIrfUe9MjWl0/g4hYCAAOJurFoeGwkJiyQ8Q7DCI5EaHa3s/vI621yQyytC6D2u86RiDJxMW0PdvkUfayT7iPwC83EsfEzpQXr0yeSCQCSBgNByEuCNnZl8LAhYl05Y9+bgCzSPt6EUvmaXclYL+/EPrEmi+hzIdXUwBfhXgICT8MteJgMSgmJM2FjjGxy6uZtfHKRIzf1wk6OORPkPJtMgjlMtMs6VFC62EEeo5Xy2v1S95WT/WQ0tnGR8KjbNnmjNSRyD8VtS2mjlLXaK0xRb71YGt57O19YxQQ3R/Hq9zGqOjG+Agdl+pcvh47RlF8o3CnlU7Q==" encryption_key = 'TencentEssEncryptTestKey12345678' return callback_decode(data, encryption_key) def callback_decode(data, encryption_key=None): # 此处传入密文,如果接收到的数据是{"encrypt":"base64后的密文"} # data = 'base64后的密文' data = base64.b64decode(data) encryption_key = encryption_key or callback_secret_key # encryption_key = bytes(encryption_key or callback_secret_key, encoding="utf8") # 此处传入CallbackUrlKey e = decode_aes256(data, encryption_key) # print(type(e)) # print(e) # print(str(e, encoding="utf8")) return json.loads(e) def test_describe_file_urls(): # { # "TotalCount": 1, # "FileUrls": [ # { # "Url": "https://file.ess.tencent.cn/file/FLOW/yDCHQUU0q7lli4UxZZqK9EJQBXolGmKl/0/0.PDF?hkey=2224d95a960e5bc7e6e3686cff314349ca93867dbd0b1eca01ba63991c8bd8e9c479977410d668b7b3d5bf14af059f969ce4644cf43a7cb6395601a042cadd33a56be20d1643070aa660af450d0ee0b6e30758030e2c0cbd2276bd1d4f05c818", # "Option": "[\"595.30,841.90\",\"-1\"]" # } # ], # "RequestId": "e9381020-c673-4ea6-b051-3a64b0e8a821" # } business_id = 'yDCHQUU0q7lli4UxZZqK9EJQBXolGmKl' return describe_file_urls(business_id=business_id) def describe_file_urls(business_type='FLOW', business_id=None, business_ids=None, file_type='PDF', url_ttl=86400): # https://qian.tencent.com/developers/companyApis/templatesAndFiles/DescribeFileUrls/ try: # 实例化一个认证对象,入参需要传入腾讯云账户 SecretId 和 SecretKey,此处还需注意密钥对的保密 # 代码泄露可能会导致 SecretId 和 SecretKey 泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考,建议采用更安全的方式来使用密钥,请参见:https://cloud.tencent.com/document/product/1278/85305 # 密钥可前往官网控制台 https://console.cloud.tencent.com/cam/capi 进行获取 cred = credential.Credential(secret_id, secret_key) # 实例化一个http选项,可选的,没有特殊需求可以跳过 httpProfile = HttpProfile() httpProfile.endpoint = endpoint # 实例化一个client选项,可选的,没有特殊需求可以跳过 clientProfile = ClientProfile() clientProfile.httpProfile = httpProfile # 实例化要请求产品的client对象,clientProfile是可选的 client = ess_client.EssClient(cred, "", clientProfile) # 实例化一个请求对象,每个接口都会对应一个request对象 req = models.DescribeFileUrlsRequest() business_ids = business_ids or [business_id] params = { "Operator": { "UserId": operator_id }, "BusinessType": business_type, "BusinessIds": business_ids, "FileType": file_type, "UrlTtl": url_ttl, } req.from_json_string(json.dumps(params)) # 返回的resp是一个DescribeFlowTemplatesResponse的实例,与请求对象对应 resp = client.DescribeFileUrls(req) # 输出json格式的字符串回包 # print(resp.to_json_string()) except TencentCloudSDKException as err: print(err) resp = {} return resp Pai2/pai2 - Gogs: Go Git Service

1 Commits (10029aecc6f45d9f4225b7d75df9f4c01a9c3072)

Author SHA1 Message Date
  Brightcells aa31a5f59a Add kodo 7 years ago