1. 程式人生 > >cxf 實名認證---全國公民身份資訊系統

cxf 實名認證---全國公民身份資訊系統

    最近做了一個實名認證功能,需要呼叫公安部門介面進行認證,用到webService。期間查閱了很多資料。現小節如下。

1、ws 客戶端程式碼生成:

        客戶端程式碼是根據所給的url?wsdl檔案生成的、該檔案通過網路url或者本地都可以。生成方式有很多種、現稍做總結:

        (1) 使用 jdk 自帶的 wsimport 生成 : 將dos視窗切換至src目錄下執行命令   wsimport -keep 檔案地址(本地/url)。jdk1.6 及以上。

        (2)eclipse web Service Client 工具。 new 一個 web Service Client  需要填入 wsdl 檔案地址和程式碼生成地址(src下面)

    (3)使用 apache-cxf-3.2.1 (其他版本沒試過): 下載安裝 apache-cxf-3.2.1(http://cxf.apache.or/download.html)。配置環境變數 :在環境變數中配置CXF_HOME , 在PATH 中加入 %CXF_HOME%\bin。

一下內容為轉載:

wsdl2java -p com -d src -all  wsdl
-p  指定其wsdl的名稱空間,也就是要生成程式碼的包名
-d  指定要產生程式碼所在目錄
-client 生成客戶端測試web service的程式碼
-server 生成伺服器啟動web  service的程式碼
-impl 生成web service的實現程式碼
-ant  生成build.xml檔案
-all 生成所有開始端點程式碼:types,service proxy,,service interface, server mainline, client mainline, implementation object, and an Ant build.xml file.

例項1.:wsdl2java -p com -client -d d:/src  http://10.10.106.111:8090/webservice_cxf_spring/services/UserService?wsdl
例項2.:wsdl2java -p com -all  -d E:\jiekou  E:\jiekou\NciicServices.wsdl
生成java程式碼後可以直接複製到客戶端中再客戶端中使用

. 2 、測試程式碼如下:

     package com.client;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.lang.reflect.Proxy;
import java.net.MalformedURLException;
import org.apache.commons.httpclient.protocol.Protocol;
import org.apache.commons.httpclient.protocol.ProtocolSocketFactory;
import org.codehaus.xfire.client.Client;
import org.codehaus.xfire.client.XFireProxy;
import org.codehaus.xfire.client.XFireProxyFactory;
import org.codehaus.xfire.service.Service;
import org.codehaus.xfire.service.binding.ObjectServiceFactory;
import org.codehaus.xfire.transport.http.CommonsHttpMessageSender;
import org.codehaus.xfire.transport.http.EasySSLProtocolSocketFactory;
import org.codehaus.xfire.util.dom.DOMOutHandler;

import com.NciicServicesPortType;

public class NciicClient {

    public static final String SERVICE_URL = "https://ws.nciic.org.cn/nciic_ws/services/";

    public NciicClient() {

    }

    /**
     * XFire呼叫方法
     *
     * @param serviceName
     * @param condition
     * @return
     * @throws MalformedURLException
     */
    public String executeClient(String serviceName, String condition, String iNlicense) throws MalformedURLException {

        ProtocolSocketFactory easy = new EasySSLProtocolSocketFactory();
        Protocol protocol = new Protocol("https", easy, 443);
        Protocol.registerProtocol("https", protocol);
        Service serviceModel = new ObjectServiceFactory().create(NciicServicesPortType.class, "NciicServices", null,
                null);
        NciicServicesPortType service = (NciicServicesPortType) new XFireProxyFactory().create(serviceModel,
                SERVICE_URL + serviceName);
        Client client = ((XFireProxy) Proxy.getInvocationHandler(service)).getClient();
        client.addOutHandler(new DOMOutHandler());

        // 壓縮傳輸
        client.setProperty(CommonsHttpMessageSender.GZIP_ENABLED, Boolean.TRUE);
        // 忽略超時
        client.setProperty(CommonsHttpMessageSender.DISABLE_EXPECT_CONTINUE, "1");
        client.setProperty(CommonsHttpMessageSender.HTTP_TIMEOUT, "0");

        BufferedReader in;

        // 呼叫核查方法
        String result = service.nciicCheck(iNlicense, condition);
        System.out.println("結果:" + result);
        return result;
    }

    public static String fileRead() throws Exception {

        File file = new File("授權檔案地址");
        FileReader reader = new FileReader(file);
        BufferedReader bReader = new BufferedReader(reader);
        StringBuilder sb = new StringBuilder();
        String s = "";
        while ((s = bReader.readLine()) != null) {
            sb.append(s + "\n");
        }
        bReader.close();
        String str = sb.toString();
        return str;
    }

    public static void main(String[] args) throws MalformedURLException {

        try {

            String license = fileRead();

            String con = "<?xml version=\"1.0\" encoding=\"UTF-8\" ?>\n"
                    + "<ROWS><INFO><SBM>$$SBM$$</SBM></INFO><ROW><GMSFHM> 公民身份號碼\n"
                    + "</GMSFHM><XM> 姓名</XM></ROW><ROW FSD=\" $$FSD$$ \" YWLX=\" $$YWLX$$  \" >\n"
                    + "<GMSFHM>$$idno$$</GMSFHM><XM>$$username$$</XM></ROW></ROWS>";

            con = con.replace("$$idno$$", "******").replace("$$username$$", "******");
            new NciicClient().executeClient("NciicServices", con, license);

        } catch (Exception e) {
            e.printStackTrace();
        }
    }

}

注意:相關jar包本站可以下載。

相關推薦

cxf 認證---全國公民身份資訊系統

    最近做了一個實名認證功能,需要呼叫公安部門介面進行認證,用到webService。期間查閱了很多資料。現小節如下。 1、ws 客戶端程式碼生成:         客戶端程式碼是根據所給的url?wsdl檔案生成的、該檔案通過網路url或者本地都可以。生成方式有很多種

中國人民銀行和公安部的"聯網核查公民身份資訊系統"存在bug

要不是今天親身經歷,我還真不敢相信。照理銀行的系統應該是邏輯上非常嚴密的才對,但是搞笑的事還是能發生。跟12306當初老是各種問題類似。 去銀行辦業務,我的身份證刷了一下,從銀行的身份認證系統裡面讀出來的是一個留著八字鬍、一臉懵逼的、進城務工人員形象的陌生人。

原來中國人民銀行和公安部的"聯網核查公民身份資訊系統"存在bug的原因可能是身份證資訊被基層派出所複製

才明白, 中國人民銀行和公安部的”聯網核查公民身份資訊系統”存在bug 的原因, 可能是基層派出所內部的不法分子違規或者違法複製了我的身份證資訊, 供其他人使用導致的。 很可能我的身份證被用來在某

【筆記】WebService CXF與SSM整合,模擬認證功能

之前寫的一個校友網專案中的實名認證功能,需要呼叫學校的學籍系統介面,實現自動實名稽核功能。 一、介面開發 【web.xml】 <servlet> <servlet-name>CXFServlet</servle

阿里身份認證例項

購買成功後會出現這個介面 程式碼: //身份證驗證 $authen=Authentication(名字,身份證號); if ($authen['error_code'] != 0){ //失敗返回 $this->error($authen['reason

企業認證接口

service key pan 模式 code resp 企業 註冊 bsp 企業實名認證接口,通過營業執照全稱,營業執照註冊號,對公賬戶名,對公賬號,清算聯行號來驗證信息一致不一致 支持格式: JSON/XML 請求方式: GET/POST 明文方式請求參數:

銀行卡四元素認證

hce params www show list eas yam res ref 詳情鏈接:http://www.haoservice.com/docs/83 銀行卡實名認證,通過HTTP請求,發送持卡人姓名、銀行卡號、身份證號碼、銀行預留手機號碼參數,返回信息是否一致

銀行卡三元素認證

不一致 身份證號碼 fix account 是否一致 ring 匹配 info 請求參數 詳情鏈接:http://www.haoservice.com/docs/82 銀行卡實名認證,通過HTTP請求,發送持卡人姓名、銀行卡號、身份證號碼參數,返回信息是否一致,以及銀行

銀行卡二元認證

lis hapi bsp 姓名 tle wid aos clear 鏈接 詳情鏈接:http://www.haoservice.com/docs/79 銀行卡實名認證,判斷銀行卡和姓名一致不一致 支持格式: JSON/XML 請求方式: GET/P

國際域名需認證 草根站長將何去何從

近日,國內各大域名註冊商發布公告,通知.com、.net等國際域名所有人在5月31日前完成實名認證,否則將被註冊局暫停解析。根據《中國互聯網絡域名管理辦法》的規定,目前註冊的.com/.net /.top/.xyz/.vip /.club/.shop/.wang/.ren等域名需要在規定的時間內

域名註冊必須認證 《互聯網域名管理辦法》11月1日實施

行業 域名服務 保護 核驗 認證 解釋 提升 管理 cnnic 中國工業和信息化部1日對外發布了修訂後的《互聯網域名管理辦法》,要求註冊域名應向服務商提供域名持有者真實、準確、完整的身份信息等域名註冊信息。該規定將於11月1日開始實施。 工信部相關負責人解釋說,修訂內容

使用阿裏雲接口進行銀行卡四要素認證

exe 一致性 man 上傳 stringbu 具體實現 推薦 tls throws   如今隨著互聯網產業的多元化發展,尤其是互聯網金融,O2O,共享經濟等新興商業形式的興起,企業對實名認證業務的數據形式和數據質量有了更高的需求。如今也衍生出銀行卡實名認證業務,通過接口將

免費領取一臺礦機,認證通過支付寶的芝麻分

coin通寶匯,註冊後免費領取一臺礦機,實名認證通過支付寶的芝麻分實名,純免費贈送價值200元礦機,數量有限,先到先得,遲了沒有!通寶幣區塊鏈貨幣,商城O2O手機支付,手機話費沖值,加油卡沖值,生活交費手機支付,絕對是“下一個比特幣”詳細查看通寶幣白皮書,下載通寶幣錢包且有開放錢包源碼,這個不錯。https:

三網手機號認證查詢

dap else amp spa aliyun 實名認證 重置 bmi appcode 接口說明文檔: https://market.aliyun.com/products/57000002/cmapi028323.html?spm=5176.2020520132.101.

域名註冊、域名認證、域名解析流程詳解

結算 郵件收發 域名解析 ans 小夥伴 ttl .com 添加 運營商 1、域名註冊流程詳解首先登陸阿裏雲網站 www.aliyun.com 點擊產品,選擇域名註冊(左下角藍色字體) 然後來到此頁面 在輸入框中填入你想要註冊的域名產看是否已經被註冊 如:shiyan

python-django 實現商職學院官網認證demo

mage 所有 shel django all tor window 動態 () python-django 實現商職學院官網實名認證demo   版權聲明:未經授權嚴禁轉載!   ESchool 大學生校園交易平臺 實名認證測試代碼: # """ 實名認證 """

微信賬號認證詳情查看百度快照

分享 round 青春 賬號 com itl image www. .com 青春,就是在無知的奔跑中受傷,卻又顛沛流離的期許太陽。微信賬號實名認證如果照鏡子要上稅,恐怕有些女人會破產。微信賬號實名更改有時,懂得如何避開問題的人,勝過知道怎樣解決問題的人。微信賬號怎麽實名認

微信認證賬號出售詳情查看百度快照

.com dia tro 文字 itl 認證 詳情 靈魂深處 一個 當你真正愛一樣東西的時候你就會發現語言多麽的脆弱和無力。文字與感覺永遠有隔閡。微信實名認證賬號出售靈魂深處的美麗和寂寞,總是需要一個人來讀懂。微信號1元一個出售平臺我們像是表面上的針,不停的轉動,一面轉,一

用友雲認證,了解一下

.com 支付 應用 的人 如何 通訊 人人 公開 需求 導讀:實名認證是確認對產品進行操作的用戶的真實身份的一種功能。本文對實名認證進行概述,介紹實名認證的方式、用友雲實名認證方式和如何選擇實名認證方式。  實名認證功能目前廣泛應用於互聯網金融、交易平臺、遊戲等行業,但隨

Fabric鏈碼實戰(二)公民身份資訊

title: Fabric鏈碼實戰(二)公民身份資訊 tags: Hyperledger, fabric ,區塊鏈,chaincode 功能簡述 使用鏈碼可以新增和查詢公民資訊 功能實現 1.匯入包 package main import ( "git