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

devtools/2025/1/18 4:36:58/

 

目录

应用场景

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

开发运行环境

类设计

类属性

类方法

实现代码

创建 Company 类

调用举例 

小结


应用场景

在企业会员后台注册系统中,为验证企业名称是否输入完整且是有效存在的,则可以通过云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 (企业类) 设计见下表:

类属性

序号属性名类型说明
1ErrorMessagestring发生任何异常返回的错误信息
2ResultJsonstring请求返回结果Json完整数据
3creditCodestring社会统一信用代码
4faRenstring法人
5addressstring注册地址
6bussinessDesstring经营范围
7regTypestring公司类型
8regMoneystring注册资金
9bussinessstring营业期限

类方法

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

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

本方法返回 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){//Zm1qSqdjl2296ixnA6ODXpglwQKYxkSDString 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中的链接。

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


http://www.ppmy.cn/devtools/26417.html

相关文章

手机运营商二要素验证接口:确保业务操作安全可靠

手机运营商二要素验证接口是一种通过与电信运营商合作的方式&#xff0c;检验手机用户的手机号码与姓名是否一致的服务。这个接口可以广泛应用于各种需要用户实名认证的场景&#xff0c;例如电商、游戏、直播以及金融等行业。 这个接口的作用非常重要&#xff0c;它可以帮助企…

ospf路由过滤及策略实验

目录 一、实验拓扑 二、实验要求 三、实验思路 四、实验步骤 1、配置IP 2、配置RIP协议和OSPF协议 3、在R2上做双向路由引入 &#xff08;1&#xff09;进入到rip协议的1进程中引入ospf &#xff08;2&#xff09;进入到ospf协议的1进程中引入rip 4、在R2上使用acl和…

回溯Backtracking Algorithm

目录 1) 入门例子 2) 全排列-Leetcode 46 3) 全排列II-Leetcode 47 4) 组合-Leetcode 77 5) 组合总和-Leetcode 39 6) 组合总和 II-Leetcode 40 7) 组合总和 III-Leetcode 216 8) N 皇后 Leetcode 51 9) 解数独-Leetcode37 10) 黄金矿工-Leetcode1219 其它题目 1) 入…

使用docker创建rocketMQ主从结构,使用

1、 创建目录 mkdir -p /docker/rocketmq/logs/nameserver-a mkdir -p /docker/rocketmq/logs/nameserver-b mkdir -p /docker/rocketmq/logs/broker-a mkdir -p /docker/rocketmq/logs/broker-b mkdir -p /docker/rocketmq/store/broker-a mkdir -p /docker/rocketmq/store/b…

PostgreSQL的扩展(extensions)-常用的扩展之pg_repack

PostgreSQL的扩展&#xff08;extensions&#xff09;-常用的扩展之pg_repack pg_repack 是一款非常有用的 PostgreSQL 扩展工具&#xff0c;它能够重新打包&#xff08;repack&#xff09;表和索引以回收空间并减少碎片&#xff0c;而且在这个过程中不会锁定表&#xff0c;允…

qt对话框功能介绍

1、颜色对话框 //方式一QColor color QColorDialog::getColor(Qt::red, this, QString::fromLocal8Bit("颜色对话框"),QColorDialog::ShowAlphaChannel);qDebug() <<"color:" <<color;//方式二QColorDialog dialog(Qt::red, this); // 创建对…

OpenResty 操作 Redis 和 MySQL

OpenResty 是一个基于 Nginx 的 Web 开发平台&#xff0c;它通过内置的方式集成了 LuaJIT&#xff0c;并内置了很多常用的第三方 Nginx 模块&#xff0c;使得开发人员可以使用 Lua 脚本来扩展 Nginx 的功能&#xff0c;这样就使得 OpenResty 可以非常方便地操作 Redis 和 MySQL…

leetcode_41.缺失的第一个正数

41. 缺失的第一个正数 题目描述&#xff1a;给你一个未排序的整数数组 nums &#xff0c;请你找出其中没有出现的最小的正整数。 请你实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案。 示例 1&#xff1a; 输入&#xff1a;nums [1,2,0] 输出&#xff1a;3 解释…