C# 通过阿里云 API 实现企业工商数据查询

简介: C# 通过阿里云 API 实现企业工商数据查询

应用场景

在企业会员后台注册系统中,为验证企业名称是否输入完整且是有效存在的,则可以通过云API服务的方式进行验证及提取相关的基本信息,自动化提取的企业工商其它信息如法人、企业性质、经营地址等也可以提高录入效率和准确率。

本文将以阿里云提供的 API 服务,实现通过企业名称查询工商数据的功能。

关于阿里云企业工商数据查询API

官方介绍其每天更新全国企业、个体工商户的数据。

更多信息内容请参照:https://market.aliyun.com/products/57000002/cmapi029998.html?spm=5176.21213303.J_qCOwPWspKEuWcmp8qiZNQ.32.3ec42f3dzQ6CjW&scm=20140722.S_market@@%E6%95%B0%E6%8D%AE%E4%B8%8EAPI@@cmapi029998._.ID_market@@%E6%95%B0%E6%8D%AE%E4%B8%8EAPI@@cmapi029998-RL_%E4%BC%81%E4%B8%9A%E5%B7%A5%E5%95%86%E6%95%B0%E6%8D%AEapi%E6%8E%A5%E5%8F%A3-LOC_llm-OR_ser-V_3-RE_new2-P0_0#sku=yuncode2399800001开发前请准备如下操作:

1. 注册阿里云账号。

2. 获取开发者 AppCode,后继开发会用到。

开发运行环境

操作系统: Windows Server 2019 DataCenter

.net版本: .netFramework4.0 或以上

开发工具:VS2019  C#

类设计

类 Company (企业类) 设计见下表:

类属性

序号 属性名 类型 说明
1 ErrorMessage string 发生任何异常返回的错误信息
2 ResultJson string 请求返回结果Json完整数据
3 creditCode string 社会统一信用代码
4 faRen string 法人
5 address string 注册地址
6 bussinessDes string 经营范围
7 regType string 公司类型
8 regMoney string 注册资金
9 bussiness string 营业期限

类方法

queryName 和 queryName2 方法均可以查询(调用地址和方式不同,参数一致),调用均返回对应的类属性数据,参数见如下表格:

序号 参数名 类型 说明
1 CompanyName string 传递完整的企业名称

本方法返回 string 类型的对应属性值(如果成功的话)。

实现代码

创建 Company 类

public class Company
{
            public string ResultJson="";
            public string ErrorMessage = "";
            public string creditCode = "";
            public string faRen = "";
            public string address = "";
            public string bussinessDes = "";
            public string regType = "";
            public string regMoney = "";
            public string bussiness = "";
 
            public void queryName(string CompanyName)
            {
                
                String host = "http://qianzhan1.market.alicloudapi.com";
                String path = "/CommerceAccurate";
                String method = "GET";
                String appcode = "您的AppCode";
                String querys = "comName=" + System.Web.HttpUtility.UrlEncode(CompanyName);
                String bodys = "";
                String url = host + path;
                HttpWebRequest httpRequest = null;
                HttpWebResponse httpResponse = null;
 
                if (0 < querys.Length)
                {
                    url = url + "?" + querys;
                }
 
                if (host.Contains("https://"))
                {
                    ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult);
                    httpRequest = (HttpWebRequest)WebRequest.CreateDefault(new Uri(url));
                }
                else
                {
                    httpRequest = (HttpWebRequest)WebRequest.Create(url);
                }
                httpRequest.Method = method;
                httpRequest.Headers.Add("Authorization", "APPCODE " + appcode);
                if (0 < bodys.Length)
                {
                    byte[] data = Encoding.UTF8.GetBytes(bodys);
                    using (Stream stream = httpRequest.GetRequestStream())
                    {
                        stream.Write(data, 0, data.Length);
                    }
                }
                try
                {
                    httpResponse = (HttpWebResponse)httpRequest.GetResponse();
                }
                catch (WebException ex)
                {
                    ErrorMessage = ex.Message;
                    httpResponse = (HttpWebResponse)ex.Response;
                    return;
                }
                Stream st = httpResponse.GetResponseStream();
                StreamReader reader = new StreamReader(st, Encoding.GetEncoding("utf-8"));
                ResultJson=(reader.ReadToEnd());
 
                if (ResultJson.IndexOf("查询成功") == -1)
                {
                    return;
                }
                Newtonsoft.Json.Linq.JObject jsonObj = Newtonsoft.Json.Linq.JObject.Parse(ResultJson);
                creditCode = jsonObj["result"]["creditCode"].ToString();
                faRen = jsonObj["result"]["faRen"].ToString();
                address = jsonObj["result"]["address"].ToString();
                bussinessDes = jsonObj["result"]["bussinessDes"].ToString();
                regType = jsonObj["result"]["regType"].ToString();
                regMoney = jsonObj["result"]["regMoney"].ToString();
                bussiness = jsonObj["result"]["bussiness"].ToString();
 
 
            }
            public void queryName2(string CompanyName)
            {
                //Zm1qSqdjl2296ixnA6ODXpglwQKYxkSD
                String host = "https://cardnotwo.market.alicloudapi.com";
                String path = "/company";
                String method = "POST";
                String appcode = ""您的AppCode";";
                String querys = "com=" + System.Web.HttpUtility.UrlEncode(CompanyName);
                String bodys = "";
                String url = host + path;
                HttpWebRequest httpRequest = null;
                HttpWebResponse httpResponse = null;
 
                if (0 < querys.Length)
                {
                    url = url + "?" + querys;
                }
 
                if (host.Contains("https://"))
                {
                    ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CheckValidationResult);
                    httpRequest = (HttpWebRequest)WebRequest.CreateDefault(new Uri(url));
                }
                else
                {
                    httpRequest = (HttpWebRequest)WebRequest.Create(url);
                }
                httpRequest.Method = method;
                httpRequest.Headers.Add("Authorization", "APPCODE " + appcode);
                if (0 < bodys.Length)
                {
                    byte[] data = Encoding.UTF8.GetBytes(bodys);
                    using (Stream stream = httpRequest.GetRequestStream())
                    {
                        stream.Write(data, 0, data.Length);
                    }
                }
                try
                {
                    httpResponse = (HttpWebResponse)httpRequest.GetResponse();
                }
                catch (WebException ex)
                {
                    ErrorMessage = ex.Message;
                    httpResponse = (HttpWebResponse)ex.Response;
                    return;
                }
                Stream st = httpResponse.GetResponseStream();
                StreamReader reader = new StreamReader(st, Encoding.GetEncoding("utf-8"));
                ResultJson = (reader.ReadToEnd());
 
                if (ResultJson.IndexOf("查询成功") == -1)
                {
                    return;
                }
                Newtonsoft.Json.Linq.JObject jsonObj = Newtonsoft.Json.Linq.JObject.Parse(ResultJson);
                creditCode = jsonObj["result"]["creditCode"].ToString();
                faRen = jsonObj["result"]["faRen"].ToString();
                address = jsonObj["result"]["address"].ToString();
                bussinessDes = jsonObj["result"]["bussinessDes"].ToString();
                regType = jsonObj["result"]["regType"].ToString();
                regMoney = jsonObj["result"]["regMoney"].ToString();
                bussiness = jsonObj["result"]["bussiness"].ToString();
 
 
            }
}

调用举例

调用判断是否返回社会统一信用代码,示例代码如下:

Company cp = new Company();
cp.queryName2("天津XXXX数码有限公司");
if (cp.creditCode != "")
{
    Response.Write("社会统一信用代码:" + cp.creditCode + "<br>");
    Response.Write("法人:" + cp.faRen + "<br>");
    Response.Write("注册地址:" + cp.address + "<br>");
    Response.Write("营业范围:" + cp.bussinessDes + "<br>");
    Response.Write("企业性质:" + cp.regType + "<br>");
    Response.Write("注册资金:" + cp.regMoney + "<br>");
    Response.Write("营业期限:" + cp.bussiness + "<br>");
}
else
{
    Response.Write("错误信息:" + cp.ErrorMessage + "<br>");
    Response.Write("JSON返回信息:" + cp.ResultJson + "<br>");
}

小结

调用云接口服务需要费用,我们需要根据实际应用进行成本考虑,官方说明如果查询失败则不扣除费用,具体内容可参考本文第二小节关于阿里云企业工商数据查询API中的链接。

感谢您的阅读,希望本文能够对您有所帮助。

相关文章
|
1天前
|
IDE API 开发工具
沉浸式集成阿里云 OpenAPI|Alibaba Cloud API Toolkit for VS Code
Alibaba Cloud API Toolkit for VSCode 是集成了 OpenAPI 开发者门户多项功能的 VSCode 插件,开发者可以通过这个插件方便地查找API文档、进行API调试、插入SDK代码,并配置基础环境设置。我们的目标是缩短开发者在门户和IDE之间的频繁切换,实现API信息和开发流程的无缝结合,让开发者的工作变得更加高效和紧密。
沉浸式集成阿里云 OpenAPI|Alibaba Cloud API Toolkit for VS Code
|
2天前
|
开发框架 .NET API
RESTful API 设计与实现:C# 开发者的一分钟入门
【10月更文挑战第5天】本文从零开始,介绍了如何使用 C# 和 ASP.NET Core 设计并实现一个简单的 RESTful API。首先解释了 RESTful API 的概念及其核心原则,然后详细说明了设计 RESTful API 的关键步骤,包括资源识别、URI 设计、HTTP 方法选择、状态码使用和错误处理。最后,通过一个用户管理 API 的示例,演示了如何创建项目、定义模型、实现控制器及运行测试,帮助读者掌握 RESTful API 的开发技巧。
20 7
|
23小时前
|
运维 Cloud Native 应用服务中间件
阿里云微服务引擎 MSE 及 云原生 API 网关 2024 年 09 月产品动态
阿里云微服务引擎 MSE 面向业界主流开源微服务项目, 提供注册配置中心和分布式协调(原生支持 Nacos/ZooKeeper/Eureka )、云原生网关(原生支持Higress/Nginx/Envoy,遵循Ingress标准)、微服务治理(原生支持 Spring Cloud/Dubbo/Sentinel,遵循 OpenSergo 服务治理规范)能力。API 网关 (API Gateway),提供 APl 托管服务,覆盖设计、开发、测试、发布、售卖、运维监测、安全管控、下线等 API 生命周期阶段。帮助您快速构建以 API 为核心的系统架构.满足新技术引入、系统集成、业务中台等诸多场景需要
|
28天前
|
人工智能 安全 API
API应用安全风险倍增,F5助企业赢得关键安全挑战
API应用安全风险倍增,F5助企业赢得关键安全挑战
44 11
|
1月前
|
Cloud Native 关系型数据库 Serverless
基于阿里云函数计算(FC)x 云原生 API 网关构建生产级别 LLM Chat 应用方案最佳实践
本文带大家了解一下如何使用阿里云Serverless计算产品函数计算构建生产级别的LLM Chat应用。该最佳实践会指导大家基于开源WebChat组件LobeChat和阿里云函数计算(FC)构建企业生产级别LLM Chat应用。实现同一个WebChat中既可以支持自定义的Agent,也支持基于Ollama部署的开源模型场景。
231 12
|
8天前
|
API C#
异步轮询 Web API 的实现与 C# 示例
异步轮询 Web API 的实现与 C# 示例
33 0
|
9天前
|
API
使用`System.Net.WebClient`类发送HTTP请求来调用阿里云短信API
使用`System.Net.WebClient`类发送HTTP请求来调用阿里云短信API
12 0
|
1月前
|
运维 Cloud Native 应用服务中间件
阿里云微服务引擎 MSE 及 云原生 API 网关 2024 年 08 月产品动态
阿里云微服务引擎 MSE 面向业界主流开源微服务项目, 提供注册配置中心和分布式协调(原生支持 Nacos/ZooKeeper/Eureka )、云原生网关(原生支持Higress/Nginx/Envoy,遵循Ingress标准)、微服务治理(原生支持 Spring Cloud/Dubbo/Sentinel,遵循 OpenSergo 服务治理规范)能力。API 网关 (API Gateway),提供 APl 托管服务,覆盖设计、开发、测试、发布、售卖、运维监测、安全管控、下线等 API 生命周期阶段。帮助您快速构建以 API 为核心的系统架构.满足新技术引入、系统集成、业务中台等诸多场景需要
|
5月前
|
开发框架 前端开发 .NET
C#编程与Web开发
【4月更文挑战第21天】本文探讨了C#在Web开发中的应用,包括使用ASP.NET框架、MVC模式、Web API和Entity Framework。C#作为.NET框架的主要语言,结合这些工具,能创建动态、高效的Web应用。实际案例涉及企业级应用、电子商务和社交媒体平台。尽管面临竞争和挑战,但C#在Web开发领域的前景将持续拓展。
174 3
|
5月前
|
SQL 开发框架 安全
C#编程与多线程处理
【4月更文挑战第21天】探索C#多线程处理,提升程序性能与响应性。了解C#中的Thread、Task类及Async/Await关键字,掌握线程同步与安全,实践并发计算、网络服务及UI优化。跟随未来发展趋势,利用C#打造高效应用。
187 3