iOS-------18位社會(huì)信用代碼驗(yàn)證

干貨干貨了叽唱,之前網(wǎng)上搜社會(huì)信用代碼驗(yàn)證規(guī)則屈呕,一搜一堆java的,iOS版的特少棺亭,想想自己就寫了一個(gè)虎眨,不好大家見諒啊O庹K宰!

先介紹一下驗(yàn)證規(guī)則:
從2015年10月1日后凄敢,中國企業(yè)營業(yè)執(zhí)照上會(huì)印有“統(tǒng)一社會(huì)信用代碼”碌冶。這新版本的營業(yè)執(zhí)照將取代以前發(fā)的營業(yè)執(zhí)照、組織機(jī)構(gòu)代碼證涝缝、稅務(wù)登記證扑庞。統(tǒng)稱“三證合一“。這也意味著申請辦理新企業(yè)時(shí)拒逮,只需取得營業(yè)執(zhí)照即可罐氨。另外,提供企業(yè)證明時(shí)消恍,只需提交營業(yè)執(zhí)照即可岂昭,無須再提交組織機(jī)構(gòu)代碼證和稅務(wù)登記證。
而“統(tǒng)一社會(huì)信用代碼”實(shí)際上編碼規(guī)則采用GB 32100-2015 《法人和其他組織統(tǒng)一社會(huì)信用代碼編碼規(guī)則》而來狠怨,此規(guī)則從2015年10月1日起,正式實(shí)施邑遏。
  下面是《法人和其他組織統(tǒng)一社會(huì)信用代碼編碼規(guī)則》的說明佣赖。
  1 范圍
  本標(biāo)準(zhǔn)規(guī)定了法人和其他組織統(tǒng)一社會(huì)信用代碼(以下簡稱統(tǒng)一代碼)的術(shù)語和定義、構(gòu)成记盒。本標(biāo)準(zhǔn)適用于對統(tǒng)一代碼的編碼憎蛤、信息處理和信息共享交換。
  2 規(guī)范性引用文件
  下列文件對于本文件的應(yīng)用是必不可少的。凡是注日期的引用文件俩檬,僅注日期的版本適用于本文件萎胰。凡是不注日期的引用文件,其最新版本(包括所有的修改單)適用于本文件棚辽。
  GB/T 2260 中華人民共和國行政區(qū)劃代碼GB 11714 全國組織機(jī)構(gòu)代碼編制規(guī)則GB/T 17710 信息技術(shù) 安全技術(shù) 校驗(yàn)字符系統(tǒng)
  3 術(shù)語和定義
  下列術(shù)語和定義適用于本文件技竟。
  3.1 組織機(jī)構(gòu) organization
  企業(yè)、事業(yè)單位屈藐、機(jī)關(guān)榔组、社會(huì)團(tuán)體及其他依法成立的單位的通稱。[GB/T 20091-2006, 定義2.2]
  3.2 法人 legal entities
  具有民事權(quán)利能力和民事行為能力联逻,依法獨(dú)立享有民事權(quán)利和承擔(dān)民事義務(wù)的組織搓扯。
  3.3 其他組織 other organizations
  合法成立、有一定的組織機(jī)構(gòu)和財(cái)產(chǎn)包归,不具備法人資格的組織锨推。
  3.4 組織機(jī)構(gòu)代碼 organization code
  主體標(biāo)識碼 subject identification code按照GB 11714編制,賦予每一個(gè)組織機(jī)構(gòu)在全國范圍內(nèi)唯一的公壤,始終不變的識別標(biāo)識碼换可。
  3.5 統(tǒng)一社會(huì)信用代碼 unified social credit identifier
  每一個(gè)法人和其他組織在全國范圍內(nèi)唯一的,終身不變的法定身份識別碼境钟。
  4 統(tǒng)一代碼的構(gòu)成
  4.1 結(jié)構(gòu)
  統(tǒng)一代碼由十八位的阿拉伯?dāng)?shù)字或大寫英文字母(不使用I锦担、O、Z慨削、S洞渔、V)組成。
  第1位:登記管理部門代碼(共一位字符)第2位:機(jī)構(gòu)類別代碼(共一位字符)第3位第8位:登記管理機(jī)關(guān)行政區(qū)劃碼(共六位阿拉伯?dāng)?shù)字)第9位第17位:主體標(biāo)識碼(組織機(jī)構(gòu)代碼)(共九位字符)第18位:校驗(yàn)碼(共一位字符)
  4.2 代碼及說明
  登記管理部門代碼:使用阿拉伯?dāng)?shù)字或大寫英文字母表示缚态。
  機(jī)構(gòu)編制:1 磁椒、民政:5、工商:9玫芦、其他:Y
  機(jī)構(gòu)類別代碼:使用阿拉伯?dāng)?shù)字或大寫英文字母表示浆熔。
  機(jī)構(gòu)編制機(jī)關(guān):11打頭機(jī)構(gòu)編制事業(yè)單位,12打頭機(jī)構(gòu)編制中央編辦直接管理機(jī)構(gòu)編制的群眾團(tuán)體桥帆,13打頭機(jī)構(gòu)編制其他医增,19打頭民政社會(huì)團(tuán)體,51打頭民政民辦非企業(yè)單位老虫,52打頭民政基金會(huì)叶骨,53打頭民政其他,59打頭工商企業(yè)祈匙,91打頭工商個(gè)體工商戶忽刽,92打頭工商農(nóng)民專業(yè)合作社天揖,93打頭其他,Y1打頭
  登記管理機(jī)關(guān)行政區(qū)劃碼:只能使用阿拉伯?dāng)?shù)字表示跪帝。按照GB/T 2260編碼今膊。
  主體標(biāo)識碼(組織機(jī)構(gòu)代碼):使用阿拉伯?dāng)?shù)字或英文大寫字母表示。按照GB 11714編碼伞剑。
  在實(shí)行統(tǒng)一社會(huì)信用代碼之前斑唬,以前的組織機(jī)構(gòu)代碼證上的組織機(jī)構(gòu)代碼由九位字符組成。格式為XXXXXXXX-Y纸泄。前面八位被稱為“本體代碼”赖钞;最后一位被稱為“校驗(yàn)碼”。校驗(yàn)碼和本體代碼由一個(gè)連字號(-)連接起來聘裁。以便讓人很容易的看出校驗(yàn)碼雪营。但是三證合一后,組織機(jī)構(gòu)的九位字符全部被納入統(tǒng)一社會(huì)信用代碼的第9位至第17位衡便,其原有組織機(jī)構(gòu)代碼上的連字號不帶入統(tǒng)一社會(huì)信用代碼献起。
  原有組織機(jī)構(gòu)代碼上的“校驗(yàn)碼”的計(jì)算規(guī)則是:
  例如:某公司的組織機(jī)構(gòu)代碼是:59467239-9。那其最后一位的組織機(jī)構(gòu)代碼校驗(yàn)碼9是如何計(jì)算出來的呢镣陕?
  第一步:取組織機(jī)構(gòu)代碼的前八位本體代碼為基數(shù)谴餐。5 9 4 6 7 2 3 9提示:如果本體代碼中含有英文大寫字母。則A的基數(shù)是10呆抑,B的基數(shù)是11岂嗓,C的基數(shù)是12,依此類推鹊碍,直到Z的基數(shù)是35厌殉。
  第二步:取加權(quán)因子數(shù)值。因?yàn)榻M織機(jī)構(gòu)代碼的本體代碼一共是八位字符侈咕。則這八位的加權(quán)因子數(shù)值從左到右分別是:3公罕、7、9耀销、10楼眷、5、8熊尉、4罐柳、2。
第三步:本體代碼基數(shù)與對應(yīng)位數(shù)的因子數(shù)值相乘狰住。5×3=15硝清,9×7=63,4×9=36转晰,6×10=60,7×5=35,2×8=16查邢,3×4=12蔗崎,9×2=18第四步:將乘積求和相加。15+63+36+60+35+16+12+18=255第五步:將和數(shù)除以11扰藕,求余數(shù)缓苛。255÷11=33,余數(shù)是2邓深。第六步:用阿拉伯?dāng)?shù)字11減去余數(shù)未桥,得求校驗(yàn)碼的數(shù)值。當(dāng)校驗(yàn)碼的數(shù)值為10時(shí)芥备,校驗(yàn)碼用英文大寫字母X來表示冬耿;當(dāng)校驗(yàn)碼的數(shù)值為11時(shí),校驗(yàn)碼用0來表示萌壳;其余求出的校驗(yàn)碼數(shù)值就用其本身的阿拉伯?dāng)?shù)字來表示亦镶。11-2=9,因此此公司完整的組織機(jī)構(gòu)代碼為 59467239-9袱瓮。
新社會(huì)統(tǒng)一信用代碼的“校驗(yàn)位”計(jì)算規(guī)則是:
  校驗(yàn)碼:使用阿拉伯?dāng)?shù)字或大寫英文字母來表示缤骨。校驗(yàn)碼的計(jì)算方法參照 GB/T 17710。

上代碼:
//判斷是否為社會(huì)信用代碼

+ (BOOL)isSocialCredit18Number:(NSString *)socialCreditNum
{
    if(socialCreditNum.length != 18){
        return NO;
    }
    
    NSString *scN = @"^([0-9ABCDEFGHJKLMNPQRTUWXY]{2})([0-9]{6})([0-9ABCDEFGHJKLMNPQRTUWXY]{9})([0-9Y])$";
    NSPredicate *regextestSCNum = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", scN];
    if (![regextestSCNum evaluateWithObject:socialCreditNum]) {
        return NO;
    }
    
    NSArray *ws = @[@1,@3,@9,@27,@19,@26,@16,@17,@20,@29,@25,@13,@8,@24,@10,@30,@28];
    NSDictionary *zmDic = @{@"A":@10,@"B":@11,@"C":@12,@"D":@13,@"E":@14,@"F":@15,@"G":@16,@"H":@17,@"J":@18,@"K":@19,@"L":@20,@"M":@21,@"N":@22,@"P":@23,@"Q":@24,@"R":@25,@"T":@26,@"U":@27,@"W":@28,@"X":@29,@"Y":@30};
    NSMutableArray *codeArr = [NSMutableArray array];
    NSMutableArray *codeArr2 = [NSMutableArray array];
    
    codeArr[0] = [socialCreditNum substringWithRange:NSMakeRange(0,socialCreditNum.length-1)];
    codeArr[1] = [socialCreditNum substringWithRange:NSMakeRange(socialCreditNum.length-1,1)];
    
    int sum = 0;
    
    for (int i = 0; i < [codeArr[0] length]; i++) {
        
        [codeArr2 addObject:[codeArr[0] substringWithRange:NSMakeRange(i, 1)]];
    }
    
    NSScanner* scan;
    int val;
    for (int j = 0; j < codeArr2.count; j++) {
        scan = [NSScanner scannerWithString:codeArr2[j]];
        if (![scan scanInt:&val] && ![scan isAtEnd]) {
            codeArr2[j] = zmDic[codeArr2[j]];
        }
    }
    
    
    for (int x = 0; x < codeArr2.count; x++) {
        sum += [ws[x] intValue]*[codeArr2[x] intValue];
    }
    
    
    int c18 = 31 - (sum % 31);
    
    for (NSString *key in zmDic.allKeys) {
        
        if (zmDic[key]==[NSNumber numberWithInt:c18]) {
            if (![codeArr[1] isEqualToString:key]) {
                return NO;
            }
        }
    }
    
    return YES;
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末尺借,一起剝皮案震驚了整個(gè)濱河市绊起,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌燎斩,老刑警劉巖虱歪,帶你破解...
    沈念sama閱讀 216,744評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異瘫里,居然都是意外死亡实蔽,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,505評論 3 392
  • 文/潘曉璐 我一進(jìn)店門谨读,熙熙樓的掌柜王于貴愁眉苦臉地迎上來局装,“玉大人,你說我怎么就攤上這事劳殖☆砩校” “怎么了?”我有些...
    開封第一講書人閱讀 163,105評論 0 353
  • 文/不壞的土叔 我叫張陵哆姻,是天一觀的道長宣增。 經(jīng)常有香客問我,道長矛缨,這世上最難降的妖魔是什么爹脾? 我笑而不...
    開封第一講書人閱讀 58,242評論 1 292
  • 正文 為了忘掉前任帖旨,我火速辦了婚禮,結(jié)果婚禮上灵妨,老公的妹妹穿的比我還像新娘解阅。我一直安慰自己,他們只是感情好泌霍,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,269評論 6 389
  • 文/花漫 我一把揭開白布货抄。 她就那樣靜靜地躺著,像睡著了一般朱转。 火紅的嫁衣襯著肌膚如雪蟹地。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,215評論 1 299
  • 那天藤为,我揣著相機(jī)與錄音怪与,去河邊找鬼。 笑死凉蜂,一個(gè)胖子當(dāng)著我的面吹牛琼梆,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播窿吩,決...
    沈念sama閱讀 40,096評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼茎杂,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了纫雁?” 一聲冷哼從身側(cè)響起煌往,我...
    開封第一講書人閱讀 38,939評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎轧邪,沒想到半個(gè)月后刽脖,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,354評論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡忌愚,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,573評論 2 333
  • 正文 我和宋清朗相戀三年曲管,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片硕糊。...
    茶點(diǎn)故事閱讀 39,745評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡院水,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出简十,到底是詐尸還是另有隱情檬某,我是刑警寧澤,帶...
    沈念sama閱讀 35,448評論 5 344
  • 正文 年R本政府宣布螟蝙,位于F島的核電站恢恼,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏胰默。R本人自食惡果不足惜场斑,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,048評論 3 327
  • 文/蒙蒙 一漓踢、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧和簸,春花似錦彭雾、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,683評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽半沽。三九已至爽柒,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間者填,已是汗流浹背浩村。 一陣腳步聲響...
    開封第一講書人閱讀 32,838評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留占哟,地道東北人心墅。 一個(gè)月前我還...
    沈念sama閱讀 47,776評論 2 369
  • 正文 我出身青樓,卻偏偏與公主長得像榨乎,于是被迫代替她去往敵國和親怎燥。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,652評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 原文地址:http://www.showcj.com/show-2-60.html 文字描述 市面上現(xiàn)在有2中企業(yè)...
    sunxiaochuan閱讀 13,063評論 4 4
  • 前言 以下的驗(yàn)證規(guī)則是在公司項(xiàng)目中總結(jié)出來的蜜暑,有的規(guī)則可能不適合您需要自行修改規(guī)則铐姚。有的規(guī)則是很久以前寫的了可能不...
    前端_逗叔閱讀 4,090評論 0 0
  • 我們一生要碰到很多人,要說很多話肛捍,總想從別人那里找到共鳴隐绵,總認(rèn)為會(huì)被很多人懂得,然而拙毫,每個(gè)人有每個(gè)人的生活依许,經(jīng)歷造...
    晚風(fēng)輕送閱讀 701評論 0 0
  • 創(chuàng)建倉庫 切換一個(gè)空目錄文件夾作為倉庫 命名為learngit 創(chuàng)建倉庫 git init 添加文件到倉庫lear...
    Matcha00閱讀 242評論 0 0
  • 那是一對夫婦 銀絲侵蝕著頭皮 蛛絲覆蓋著容顏 牙齒早已是蠟黃 突起的背 如山般 重重的壓在了他們的身上 上天與他們...
    大萍很乖閱讀 378評論 2 3