1、前往插件中心,在第三方连接,新增连接(代码),配置连接编码和url

2、前往表单,调用InvokeApi
H3.BizBus.BizStructureSchema contextSchema = new H3.BizBus.BizStructureSchema();
contextSchema.Add(new H3.BizBus.ItemSchema("time", "时间", H3.Data.BizDataType.TimeSpan, null));
contextSchema.Add(new H3.BizBus.ItemSchema("desc", "说明", H3.Data.BizDataType.String, null));
H3.BizBus.BizStructureSchema msgSchema = new H3.BizBus.BizStructureSchema();
msgSchema.Add(new H3.BizBus.ItemSchema("context", "内容数组", H3.Data.BizDataType.BizStructureArray, contextSchema));
msgSchema.Add(new H3.BizBus.ItemSchema("state", "状态", H3.Data.BizDataType.String, null));
msgSchema.Add(new H3.BizBus.ItemSchema("com", "公司", H3.Data.BizDataType.String, null));
msgSchema.Add(new H3.BizBus.ItemSchema("status", "状态", H3.Data.BizDataType.String, null));
msgSchema.Add(new H3.BizBus.ItemSchema("_support_from", "支持方式", H3.Data.BizDataType.String, null));
H3.BizBus.BizStructureSchema structureSchema = new H3.BizBus.BizStructureSchema();
structureSchema.Add(new H3.BizBus.ItemSchema("status", "返回码", H3.Data.BizDataType.Int, null));
structureSchema.Add(new H3.BizBus.ItemSchema("msg", "返回内容", H3.Data.BizDataType.BizStructure, msgSchema));
Dictionary<string, string> headers=new Dictionary<string, string>();
Dictionary<string, object> bodys=new Dictionary<string, object>();
Dictionary<string, string> querys=new Dictionary<string, string>();
querys.Add("com", "zhongtong");
querys.Add("src", "543504132797");
headers.Add("Authorization", "APPCODE fc5fa66a3ad8459a9692d7e11d8ec1a7");
//调用Invoke接口,系统底层访问第三方WebService接口的Invoke方法
H3.BizBus.InvokeResult InResult = this.Engine.BizBus.InvokeApi(H3.Organization.User.SystemUserId, H3.BizBus.AccessPointType.ThirdConnection, "chenbing20210224", "POST", "application/x-www-form-urlencoded;charset=UTF-8",headers, querys, bodys,structureSchema);
if(InResult != null)
{
int Code = InResult.Code; //调用是否成功
if(Code == 0)
{
//获取返回数据
H3.BizBus.BizStructure Obj = InResult.Data;
H3.BizBus.BizStructure msgObj =Obj["msg"] as H3.BizBus.BizStructure;
H3.BizBus.BizStructure[] contextObj =msgObj["context"] as H3.BizBus.BizStructure[];
string codee=contextObj[0]["desc"] as string;
this.Request.BizObject["F0000002"]=codee;
}
else
{
//获取错误信息
string ErrorMessage = InResult.Message;
}
}第三方需要验证连接者身份,确定连接者是否有权限访问什么资源,再决定是否把用户请求的资源返给他,鉴权是这么一种安全机制。账户用于存储鉴权信息,也就是身份验证信息。建议不要直接将敏感信息展示在代码中,用账户存储,再前往表单用代码调用账户信息。
百度AI开放平台:支持调用access_token,调用时判断有效期,过期更新
阿里云API市场:支持调用AppCode
百度云API市场:支持调用AppCode
第三方平台企业内部应用:支持调用access_token,调用时判断有效期,过期更新
用友U8:支持代码调用token,调用时判断有效期,过期自动更新
Basic Authentication:支持调用所有自定义参数,例如阿里云API市场
1、前往插件中心->第三方连接->账户,新建账户,选择第三方,填写账户编码,以及第三方所需信息。
2、前往表单,调用账户
H3.BizBus.BizStructureSchema structureSchema = new H3.BizBus.BizStructureSchema();
structureSchema.Add(new H3.BizBus.ItemSchema("token", "授权令牌", H3.Data.BizDataType.String, null));
//调用Invoke接口,系统底层访问第三方WebService接口的Invoke方法
H3.BizBus.InvokeResult InResult = this.Engine.BizBus.InvokeApi(H3.Organization.User.SystemUserId, H3.BizBus.AccessPointType.ThirdAuthToken, "ZHUMW", null, null, null, null, null, structureSchema);
if(InResult != null)
{
int Code = InResult.Code; //调用是否成功
if(Code == 0)
{
//获取返回数据
H3.BizBus.BizStructure Obj = InResult.Data;
string token = Obj["token"] as string;
this.Request.BizObject["F0000001"] = token;
}
else
{
//获取错误信息
string ErrorMessage = InResult.Message;
this.Request.BizObject["F0000002"] = ErrorMessage;
}
}通过第三方连接调用淘宝、京东商家、抖店、快手电商等开放平台接口,为了防止API在调用过程中被恶意者拦截随意篡改,第三方要求调用API时需要携带签名参数,第三方服务端会根据请求参数对签名进行验证,签名不合法的请求将会被拒绝。
加密算法:MD5、SHA1、HMAC (HMACSHA1、HMACSHA256、HMACSHA384、HMACSHA512)
加密算法类:对数据进行加密,返回base64编码结果
H3.Security.Cryptography.MD5
H3.Security.Cryptography.SHA1
H3.Security.Cryptography.HMAC
示例1
将 abc123 进行MD5加密,编码格式为UTF8,返回结果为6ZoYxCjLONXyYIU2eJIuAw==
var result = H3.Security.Cryptography.MD5.MD5Encrypt("abc123",System.Text.Encoding.UTF8);示例2
将 abc123 进行HmacSHA256加密,编码格式为UTF8,返回结果为NBaoyFtWd7xebliBvxq/Pfmw070Ju/ETPJxfnu1S0g8=
var result = H3.Security.Cryptography.HMAC.HMACSHA256Encrypt("abc123",System.Text.Encoding.UTF8);