org_seals.py 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403
  1. import requests
  2. import esigntool
  3. from esigntool import esign_run_print_outer
  4. # 印章服务API
  5. config = esigntool.config() # 初始化配置类
  6. @esign_run_print_outer
  7. def create_templateseals():
  8. """
  9. 创建机构模板印章
  10. :return:
  11. """
  12. # 构建请求body体
  13. body = {
  14. "orgId": "0c5bd492**8bfbf",
  15. "sealName": "xx企业公章",
  16. "sealTemplateStyle": "PUBLIC_ROUND_STAR",
  17. "sealOpacity": "100",
  18. "sealColor": "RED",
  19. "sealOldStyle": "OLD_12",
  20. "sealSize": "40_40"
  21. }
  22. api_path = "/v3/seals/org-seals/create-by-template" # 拼接请求路径
  23. method = esigntool.httpMethodEnum.POST # 声明请求方法
  24. json_headers = esigntool.buildSignJsonHeader(config.appId, config.scert,
  25. method, api_path, body) # 签名并构造签名鉴权json请求头
  26. resp = requests.request(method, config.host + api_path, json=body, headers=json_headers) # 发送请求
  27. print(resp.text)
  28. return resp
  29. @esign_run_print_outer
  30. def create_orgimage():
  31. """
  32. 创建机构图片印章
  33. :return:
  34. """
  35. # 构建请求body体
  36. body = {
  37. "orgId": "0c5bd492**48bfbf",
  38. "sealImageFileKey": "$c3c7170e-xx-xx-xx-xx",
  39. "sealName": "这是一个自定义的印章名称",
  40. "sealWidth": "20",
  41. "sealHeight": "10",
  42. "sealBizType": "CONTRACT"
  43. }
  44. api_path = "/v3/seals/org-seals/create-by-image" # 拼接请求路径
  45. method = esigntool.httpMethodEnum.POST # 声明请求方法
  46. json_headers = esigntool.buildSignJsonHeader(config.appId, config.scert,
  47. method, api_path, body) # 签名并构造签名鉴权json请求头
  48. resp = requests.request(method, config.host + api_path, json=body, headers=json_headers) # 发送请求
  49. print(resp.text)
  50. return resp
  51. @esign_run_print_outer
  52. def internal_auth():
  53. """
  54. 内部成员授权
  55. :return:
  56. """
  57. # 构建请求body体
  58. body = {
  59. "orgId": "0c5bd49***48bfbf",
  60. "sealId": "02590082-xx-xx-xx-2138db4d7b73",
  61. "effectiveTime": 1636525541000,
  62. "expireTime": 1668061541000,
  63. "transactorPsnId": "c7e0029***10541e7",
  64. "authorizedPsnIds": ["7ffcae***f0a8f6", "00371e8***c21ed09"],
  65. "sealAuthScope": {
  66. "templateIds": ["ALL"]
  67. },
  68. "sealRole": "SEAL_EXAMINER",
  69. "redirectUrl": "https://www.xxx.cn/"
  70. }
  71. api_path = "/v3/seals/org-seals/internal-auth" # 拼接请求路径
  72. method = esigntool.httpMethodEnum.POST # 声明请求方法
  73. json_headers = esigntool.buildSignJsonHeader(config.appId, config.scert,
  74. method, api_path, body) # 签名并构造签名鉴权json请求头
  75. resp = requests.request(method, config.host + api_path, json=body, headers=json_headers) # 发送请求
  76. print(resp.text)
  77. return resp
  78. @esign_run_print_outer
  79. def external_auth():
  80. """
  81. 跨企业授权
  82. :return:
  83. """
  84. # 构建请求body体
  85. body = {
  86. "orgId": "0c5bd49**648bfbf",
  87. "effectiveTime": 1636525541000,
  88. "expireTime": 1668061541000,
  89. "transactorPsnId": "c7e00294**41e7",
  90. "authorizedOrgInfo": {
  91. "orgName": "这是一个受托企业的名称",
  92. "orgIDCardNum": "91330108******1222"
  93. },
  94. "sealId": "02590082-xx-xx-xx-2138db4d7b73",
  95. "redirectUrl": "https://www.xx.cn/"
  96. }
  97. api_path = "/v3/seals/org-seals/internal-auth" # 拼接请求路径
  98. method = esigntool.httpMethodEnum.POST # 声明请求方法
  99. json_headers = esigntool.buildSignJsonHeader(config.appId, config.scert,
  100. method, api_path, body) # 签名并构造签名鉴权json请求头
  101. resp = requests.request(method, config.host + api_path, json=body, headers=json_headers) # 发送请求
  102. print(resp.text)
  103. return resp
  104. @esign_run_print_outer
  105. def auth_delete():
  106. """
  107. 解除印章授权
  108. :return:
  109. """
  110. # 构建请求body体
  111. body = {
  112. "orgId": "0c5bd492**48bfbf",
  113. "deleteType": "sealIds",
  114. "sealIds": ["02590082-xx-xx-xx-2138db4d7b73", "a1ccfad7-xx-xx-xx-84c51bf3a7e4"]
  115. }
  116. api_path = "/v3/seals/org-seals/auth-delete" # 拼接请求路径
  117. method = esigntool.httpMethodEnum.POST # 声明请求方法
  118. json_headers = esigntool.buildSignJsonHeader(config.appId, config.scert,
  119. method, api_path, body) # 签名并构造签名鉴权json请求头
  120. resp = requests.request(method, config.host + api_path, json=body, headers=json_headers) # 发送请求
  121. print(resp.text)
  122. return resp
  123. @esign_run_print_outer
  124. def authorization():
  125. """
  126. 查询授权书签署链接
  127. :return:
  128. """
  129. orgId = "c7e00290541e7"
  130. sealAuthBizId = "1caebb40***31f7f95087de"
  131. api_path = "/v3/seals/org-seals/authorization-sign-url?orgId={}&sealAuthBizId={}".format(orgId,
  132. sealAuthBizId) # 拼接请求路径
  133. method = esigntool.httpMethodEnum.GET # 声明请求方法
  134. json_headers = esigntool.buildSignJsonHeader(config.appId, config.scert, method, api_path) # 签名并构造签名鉴权json请求头
  135. resp = requests.request(method, config.host + api_path, json=None, headers=json_headers) # 发送请求
  136. print(resp.text)
  137. return resp
  138. @esign_run_print_outer
  139. def internal_detail():
  140. """
  141. 查询对内部成员授权详情
  142. :return:
  143. """
  144. orgId = "c7e00290541e7"
  145. pageNum = "11"
  146. pageSize = "22"
  147. sealId = "02590082-**-**-**-2138db4d7b73"
  148. api_path = "/v3/seals/org-seals/internal-auth?orgId={}&pageNum={}&pageSize={}&sealId={}".format(orgId, pageNum,
  149. pageSize,
  150. sealId) # 拼接请求路径
  151. method = esigntool.httpMethodEnum.GET # 声明请求方法
  152. json_headers = esigntool.buildSignJsonHeader(config.appId, config.scert,
  153. method, api_path) # 签名并构造签名鉴权json请求头
  154. resp = requests.request(method, config.host + api_path, json=None, headers=json_headers) # 发送请求
  155. print(resp.text)
  156. return resp
  157. @esign_run_print_outer
  158. def external_detail():
  159. """
  160. 查询对外部企业授权详情
  161. :return:
  162. """
  163. orgId = "c7e00290541e7"
  164. pageNum = "11"
  165. pageSize = "22"
  166. sealId = "02590082-**-**-**-2138db4d7b73"
  167. api_path = "/v3/seals/org-seals/external-auth?orgId={}&pageNum={}&pageSize={}&sealId={}".format(orgId, pageNum,
  168. pageSize,
  169. sealId) # 拼接请求路径
  170. method = esigntool.httpMethodEnum.GET # 声明请求方法
  171. json_headers = esigntool.buildSignJsonHeader(config.appId, config.scert,
  172. method, api_path) # 签名并构造签名鉴权json请求头
  173. resp = requests.request(method, config.host + api_path, json=None, headers=json_headers) # 发送请求
  174. print(resp.text)
  175. return resp
  176. @esign_run_print_outer
  177. def reauthorization():
  178. """
  179. 修改印章授权期限
  180. :return:
  181. """
  182. # 构建请求body体
  183. body = {
  184. "sealAuthBizId": "7eb81942-xx-xx-xx-b59aa2ba479f",
  185. "orgId": "0c5bd4924***5648bfbf",
  186. "transactorPsnId": "c7e002***ea310541e7",
  187. "effectiveTime": "1636525541000",
  188. "expireTime": "1668061541000",
  189. "redirectUrl": "http://www.xxx.cn/"
  190. }
  191. api_path = "/v3/seals/org-seals/reauthorization" # 拼接请求路径
  192. method = esigntool.httpMethodEnum.POST # 声明请求方法
  193. json_headers = esigntool.buildSignJsonHeader(config.appId, config.scert,
  194. method, api_path, body) # 签名并构造签名鉴权json请求头
  195. resp = requests.request(method, config.host + api_path, json=body, headers=json_headers) # 发送请求
  196. print(resp.text)
  197. return resp
  198. @esign_run_print_outer
  199. def own_seal():
  200. """
  201. 查询企业内部印章
  202. :return:
  203. """
  204. orgId = "c7e00290541e7"
  205. pageNum = "11"
  206. pageSize = "22"
  207. sealId = "02590082-**-**-**-2138db4d7b73"
  208. api_path = "/v3/seals/org-own-seal-list?orgId={}&pageNum={}&pageSize={}&sealId={}".format(orgId, pageNum,
  209. pageSize,
  210. sealId) # 拼接请求路径
  211. method = esigntool.httpMethodEnum.GET # 声明请求方法
  212. json_headers = esigntool.buildSignJsonHeader(config.appId, config.scert,
  213. method, api_path) # 签名并构造签名鉴权json请求头
  214. resp = requests.request(method, config.host + api_path, json=None, headers=json_headers) # 发送请求
  215. print(resp.text)
  216. return resp
  217. @esign_run_print_outer
  218. def authorized_seal():
  219. """
  220. 查询被外部企业授权印章
  221. :return:
  222. """
  223. orgId = "c7e00290541e7"
  224. pageNum = "11"
  225. pageSize = "22"
  226. api_path = "/v3/seals/org-authorized-seal-list?orgId={}&pageNum={}&pageSize={}".format(orgId, pageNum,
  227. pageSize) # 拼接请求路径
  228. method = esigntool.httpMethodEnum.GET # 声明请求方法
  229. json_headers = esigntool.buildSignJsonHeader(config.appId, config.scert,
  230. method, api_path) # 签名并构造签名鉴权json请求头
  231. resp = requests.request(method, config.host + api_path, json=None, headers=json_headers) # 发送请求
  232. print(resp.text)
  233. return resp
  234. @esign_run_print_outer
  235. def info_seal():
  236. """
  237. 查询指定印章详情(机构)
  238. :return:
  239. """
  240. orgId = "c7e00290541e7"
  241. sealId = "02590082-**-**-**-2138db4d7b73"
  242. api_path = "/v3/seals/org-seal-info?orgId={}&sealId={}".format(orgId, sealId) # 拼接请求路径
  243. method = esigntool.httpMethodEnum.GET # 声明请求方法
  244. json_headers = esigntool.buildSignJsonHeader(config.appId, config.scert,
  245. method, api_path) # 签名并构造签名鉴权json请求头
  246. resp = requests.request(method, config.host + api_path, json=None, headers=json_headers) # 发送请求
  247. print(resp.text)
  248. return resp
  249. @esign_run_print_outer
  250. def default_seal():
  251. """
  252. 设置机构默认印章
  253. :return:
  254. """
  255. # 构建请求body体
  256. body = {
  257. "orgId": "c7e0029***41e7",
  258. "sealId": "b984059f-xx-xx-xx-7e09a890b929"
  259. }
  260. api_path = "/v3/seals/org-seals/set-default-seal" # 拼接请求路径
  261. method = esigntool.httpMethodEnum.POST # 声明请求方法
  262. json_headers = esigntool.buildSignJsonHeader(config.appId, config.scert,
  263. method, api_path, body) # 签名并构造签名鉴权json请求头
  264. resp = requests.request(method, config.host + api_path, json=body, headers=json_headers) # 发送请求
  265. print(resp.text)
  266. return resp
  267. @esign_run_print_outer
  268. def orgseals_delete():
  269. """
  270. 删除机构印章
  271. :return:DELETE
  272. """
  273. orgId = "c7e00290541e7"
  274. sealId = "1caebb40***31f7f95087de"
  275. api_path = "/v3/seals/org-seal?orgId={}&sealId={}".format(orgId, sealId) # 拼接请求路径
  276. print(api_path)
  277. method = esigntool.httpMethodEnum.DELETE # 声明请求方法
  278. json_headers = esigntool.buildSignJsonHeader(config.appId, config.scert,
  279. method, api_path) # 签名并构造签名鉴权json请求头
  280. resp = requests.request(method, config.host + api_path, json=None, headers=json_headers) # 发送请求
  281. print(resp.text)
  282. return resp
  283. @esign_run_print_outer
  284. def org_sealurl():
  285. """
  286. 获取创建机构印章页面链接
  287. :return:
  288. """
  289. # 构建请求body体
  290. body = {
  291. "orgId": "0c5bd492***48bfbf",
  292. "transactorPsnId": "c7e00294***10541e7",
  293. "customBizNum": "这是一串开发者内部系统自定义的编号",
  294. "sealName": "这是个预定义的企业印章名称",
  295. "sealColor": "RED",
  296. "redirectUrl": "http://www.xxx.cn/",
  297. "uneditableFields": ["sealName", "sealColor"]
  298. }
  299. api_path = "/v3/seals/org-seal-create-url" # 拼接请求路径
  300. method = esigntool.httpMethodEnum.POST # 声明请求方法
  301. json_headers = esigntool.buildSignJsonHeader(config.appId, config.scert,
  302. method, api_path, body) # 签名并构造签名鉴权json请求头
  303. resp = requests.request(method, config.host + api_path, json=body, headers=json_headers) # 发送请求
  304. print(resp.text)
  305. return resp
  306. @esign_run_print_outer
  307. def manage_sealurl():
  308. """
  309. 获取管理机构印章页面链接
  310. :return:
  311. """
  312. # 构建请求body体
  313. body = {
  314. "orgId": "0c5bd492**8bfbf",
  315. "transactorPsnId": "c7e00294729***10541e7"
  316. }
  317. api_path = "/v3/seals/org-seals-manage-url" # 拼接请求路径
  318. method = esigntool.httpMethodEnum.POST # 声明请求方法
  319. json_headers = esigntool.buildSignJsonHeader(config.appId, config.scert,
  320. method, api_path, body) # 签名并构造签名鉴权json请求头
  321. resp = requests.request(method, config.host + api_path, json=body, headers=json_headers) # 发送请求
  322. print(resp.text)
  323. return resp
  324. if __name__ == '__main__':
  325. # create_templateseals() # 创建机构模板印章
  326. # create_orgimage() # 创建企业图片印章
  327. # internal_auth() # 内部成员授权
  328. external_auth() # 跨企业授权
  329. auth_delete() # 解除印章授权
  330. authorization() # 查询授权书签署链接
  331. internal_detail() # 查询对内部成员授权详情
  332. external_detail() # 查询对外部企业授权详情
  333. reauthorization() # 修改印章授权期限
  334. own_seal() # 查询企业内部印章
  335. authorized_seal() # 查询被外部企业授权印章
  336. info_seal() # 查询指定印章详情(机构)
  337. default_seal() # 设置机构默认印章
  338. orgseals_delete() # 设置机构默认印章
  339. org_sealurl() # 获取创建机构印章页面链接
  340. manage_sealurl() # 获取管理机构印章页面链接