net8获取泛微token以及访问api示例
using System.Security.Cryptography;
using System.Text.Json;
using Flurl.Http; //请按照官方内容做好初始化工作 https://e-cloudstore.com/doc.html?appId=af09c25938714c26b9736f535ca20fc9
//后端接口清单 https://e-cloudstore.com/ec/api/applist/index.html#/ // 可以改写为扩展函数方便使用
var RSAEncrypt = (string spk, string payload) =>
{
using var rsa = RSA.Create();
rsa.ImportSubjectPublicKeyInfo(Convert.FromBase64String(spk), out _);
var PlainTextBArray = System.Text.Encoding.UTF8.GetBytes(payload);
var CypherTextBArray = rsa.Encrypt(PlainTextBArray, RSAEncryptionPadding.Pkcs1);
var Result = Convert.ToBase64String(CypherTextBArray);
return Result;
}; var appid = "42520974-83D6-41F6-8773-0780A6EAB3D6"; // 1、注册仅需要进行一次
using var LocalRSA = RSA.Create();
var publicPem = LocalRSA.ExportRSAPublicKeyPem();
var privatePem = LocalRSA.ExportRSAPrivateKeyPem();
var registerDto = await "http://127.0.0.1/api/ec/dev/auth/regist"
.WithHeader("appid", appid)
.WithHeader("cpk", publicPem)
.PostAsync()
.ReceiveJson<JsonDocument>();
System.Console.WriteLine(registerDto.RootElement.GetRawText());
System.Console.WriteLine(); // 2、获取secrit,spk,执行第1步后保存在ECOLOGY_BIZ_EC表中,分别对应字段SECRIT,server_public_key
var secrit = registerDto.RootElement.GetProperty("secrit").GetString();
var spk = registerDto.RootElement.GetProperty("spk").GetString();
System.Console.WriteLine(secrit);
System.Console.WriteLine(spk);
System.Console.WriteLine(); // 3、获取access_token
var encryptSecret = RSAEncrypt(spk, secrit);
var applytokenDto = await "http://127.0.0.1/api/ec/dev/auth/applytoken"
.WithHeader("appid", appid)
.WithHeader("secret", encryptSecret)
.PostAsync()
.ReceiveJson<JsonDocument>(); var token = applytokenDto.RootElement.GetProperty("token").GetString();
System.Console.WriteLine(token);
System.Console.WriteLine(); // 4、获取流程
var userId = "1";
var encryptUserId = RSAEncrypt(spk, userId);
var getAllWorkflowRequestListDto = await "http://127.0.0.1/api/workflow/paService/getAllWorkflowRequestList"
.WithHeader("appid", appid)
.WithHeader("token", token)
.WithHeader("userId", encryptUserId)
.PostAsync()
.ReceiveJson<JsonDocument>();
System.Console.WriteLine(getAllWorkflowRequestListDto.RootElement.GetRawText());
System.Console.WriteLine();
net8获取泛微token以及访问api示例的更多相关文章
- 泛微e-cology和Oracle无法启动的解决方案
最近公司的泛微OA无法访问,Oracle数据库也无法正常启动,尝试了好多方法,终于解决了,先说说基本情况,希望能给碰到同样问题的朋友带来一点帮助. 服务器操作系统:Window s Server 20 ...
- spring cloud+dotnet core搭建微服务架构:Api授权认证(六)
前言 这篇文章拖太久了,因为最近实在太忙了,加上这篇文章也非常长,所以花了不少时间,给大家说句抱歉.好,进入正题.目前的项目基本都是前后端分离了,前端分Web,Ios,Android...,后端也基本 ...
- 泛微云桥e-birdge之金蝶云之家集成配置手册
最近在配置金蝶云之家与泛微ecology的打通,没有看官方文档,直接配置,一直配置不通,看了官方文档后知道了少配置参数了,转载一下,省得四处去找了. 泛微云桥e-birdge之金蝶云之家集成配置手册 ...
- 泛微云桥e-Bridge安装手册
有时候不看官方文档进行配置,可能会出现奇奇怪怪的问题,SO转载一下官方文档,顺带学习. 想超长体验此软件,请搜索本博客内容,有破解方法,仅用来学习使用,顺带进行二次开发,请勿使用在商业用途,谢谢. 泛 ...
- spring cloud+.net core搭建微服务架构:Api授权认证(六)
前言 这篇文章拖太久了,因为最近实在太忙了,加上这篇文章也非常长,所以花了不少时间,给大家说句抱歉.好,进入正题.目前的项目基本都是前后端分离了,前端分Web,Ios,Android...,后端也基本 ...
- 微服务如何聚合 API 文档?这波秀~
今天这篇文章介绍一下微服务如何聚合Swagger实现接口文档管理. 文章目录如下: 为什么需要聚合? 微服务模块众多,如果不聚合文档,则访问每个服务的API文档都需要单独访问一个Swagger UI界 ...
- 使用Flask设计带认证token的RESTful API接口[翻译]
上一篇文章, 使用python的Flask实现一个RESTful API服务器端 简单地演示了Flask实的现的api服务器,里面提到了因为无状态的原则,没有session cookies,如果访问 ...
- [转载] 构建微服务:使用API Gateway
原文: http://mp.weixin.qq.com/s?__biz=MzA5OTAyNzQ2OA==&mid=206889381&idx=1&sn=478ccb35294c ...
- spring cloud+dotnet core搭建微服务架构:Api网关(三)
前言 国庆假期,一直没有时间更新. 根据群里面的同学的提问,强烈推荐大家先熟悉下spring cloud.文章下面有纯洁大神的spring cloud系列. 上一章最后说了,因为服务是不对外暴露的,所 ...
- Chris Richardson微服务翻译:构建微服务之使用API网关
Chris Richardson 微服务系列翻译全7篇链接: 微服务介绍 构建微服务之使用API网关(本文) 构建微服务之微服务架构的进程通讯 微服务架构中的服务发现 微服务之事件驱动的数据管理 微服 ...
随机推荐
- 用了这么久SpringBoot却还不知道的一个小技巧
前言 你可能调第三方接口喜欢启动application,修改,再启动,再修改,顺便还有个不喜欢写JUnitTest的习惯. 你可能有一天想要在SpringBoot启动后,立马想要干一些事情,现在没有可 ...
- 利用接口测试框架实现web状态的监控
之前,我们已经说明了如何实现一个我们的接口测试框架RATF,当然这个框架不止可以用于管理我们的接口测试代码,我们还可以用他来对我们的web进行简单粗暴的监控. 原理: 1. 通过使用配置文件,对要监控 ...
- js调起android安卓与ios苹果方法 vue3.0 + ts
let shareSelect = (ev :any) => { const u :any= navigator.userAgent; const win :any = window const ...
- Htttpclien循环自动生成图片,同时发送参数和文件,模拟http的post请求
package org.jeecg.modules.bussiness.PostTests; import com.sun.tools.internal.xjc.reader.xmlschema.bi ...
- Mysql高级11-后台进程
一.前言 MySQL的服务实现通过后台多个线程.内存池.文件交互来实现对外服务的,不同线程实现不同的资源操作,各个线程相互协助,共同来完成数据库的服务.MySQL常用的后台线程概括如下,分为Maste ...
- Solution -「THUPC 2021」区间矩阵乘法
Description Link. 给定长度为 \(n\) 的序列 \(a_1, a_2, \dots, a_n\):共 \(m\) 组询问,每次询问给出 \(d,p_1,p_2\),求 \[\sum ...
- Centos7使用s3fs-fuse挂载minio对象存储实践
Centos7使用s3fs-fuse挂载minio对象存储实践 事前准备 主机可以访问到对象存储API.例如minio默认的9000端口 主机安装好s3fs软件 已在minio上创建存储桶 安装s3f ...
- 12 款最棒 Vue 开源 UI 库
文章目录 Element Plus - 经典中的经典,全面支持 Vue 3 TDesign Vue - 鹅厂优质 UI 组件,配套工具完满,设计工整,文档清晰 ArcoDesign Vue- 字节优质 ...
- Django框架——Web应用、基于SOCKET写一个web应用、 手撸简单web框架、http协议、Web框架(手撸自己的Web框架)、django简介以及简单使用
文章目录 1 Web应用 一 Web应用程序是什么 1.1 Web应用程序的优点 1.2 Web应用程序的缺点 1.3 B/S架构优点 二 基于SOCKET写一个web应用 2.1 main.py 2 ...
- 43道Python经典案例题(有答案)
1.有四个数字:1.2.3.4,能组成多少个互不相同且无重复数字的三位数?各是多少? for x in range(0,5): for y in range(0,5): for z in range( ...