Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
e-Gov金融機関サイト表示APIでの苦労
Search
ymrl
August 01, 2019
0
3.4k
e-Gov金融機関サイト表示APIでの苦労
e-Gov 連携サービス開発者の集い
https://peatix.com/event/737034
ymrl
August 01, 2019
Tweet
Share
More Decks by ymrl
See All by ymrl
freeeのアクセシビリティの現在地 / freee's Current Position on Accessibility
ymrl
4
990
全社でアクセシビリティに取り組む / Company-wide Accessibility Initiatives
ymrl
1
450
デザイナーがTSKaigiでWAI-ARIAの話をしてみて / Speaking as a Designer: WAI-ARIA at TSKaigi
ymrl
0
310
TypeScriptとReactで、WAI-ARIAの属性を正しく利用する / Fixing WAI-ARIA Typing in React with TypeScript
ymrl
1
490
がんばらないアクセシビリティ / Accessibility Without the Struggle
ymrl
0
470
Webサイトのアクセシビリティにどう向き合う? / How Should We Approach Web Accessibility?
ymrl
0
130
いま求められるソフトウェアのアクセシビリティ / Essential Accessibility in Software Today
ymrl
1
1.4k
アクセシビリティを意識したプロダクトづくり / Creating Products with Accessibility in Mind
ymrl
0
23k
「Webアプリケーションアクセシビリティ」著者の会社 (freee, サイボウズ, SmartHR) での取り組みは実際どんな感じ?
ymrl
3
24k
Featured
See All Featured
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
1.8k
Rails Girls Zürich Keynote
gr2m
95
14k
Bash Introduction
62gerente
615
210k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
54k
Typedesign – Prime Four
hannesfritz
42
2.9k
Designing Experiences People Love
moore
143
24k
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Building a Scalable Design System with Sketch
lauravandoore
463
34k
BBQ
matthewcrist
89
9.9k
Reflections from 52 weeks, 52 projects
jeffersonlam
355
21k
Six Lessons from altMBA
skipperchong
29
4.1k
The Straight Up "How To Draw Better" Workshop
denniskardys
239
140k
Transcript
freee 株式会社 2019.08.01 @ymrl 金融機関サイト表示APIでの苦労
慶應SFC修士課程修了後、ソーシャルゲーム系ベンチャーを 経て2014年よりfreeeに参画。 2015年より人事労務freee(当初は給与計算freee)の開発に携 わる。 人事労務freeeでe-Govを使った労働保険年度更新の機能開 発に関わったほか、次期e-Govの仕様について会議するCode for e-Govにも参加しています。 現在はUIデザインを専門に取り組むチームに所属しているの で、業務的にはe-Govにはほぼ関わりがありません。
2 @ymrl freee株式会社 UIエンジニア
エクスキューズ • きょうお話するのは、4年前、2015年頃の話です • 当時とはe-Gov自体やe-Govを取りまく環境が異っている可能性があります • 発表者は長らくe-Gov APIを使った開発からは離れています
freeeについて
5 創業からIPOまで、中小企業活性化のためのサービスを一気通貫で提供 freee会社概要 ❂ 納税する ↗ 育てる ↻ 運営する
✩ はじめる 会社設立 freee 開業 freee クラウド会計ソフト freee 人事労務 freee (マイナンバー管理 freee 含む) クラウド申告 freee 161億603万円 (資本準備金等含む ) 従業員数 事業内容 クラウド型バックオフィスサービスの開発・販売 資本金 設立年月日 2012年7月 505名(2019年1月末時点) 「働きがいのある会社」 2017年 ランキング3位 2018年 ランキング8位 2019年 ランキング4位
人事労務freeeのご紹介 マイナンバー管理 マイナンバー 勤怠管理 勤怠管理、有給・残業管理など 給与計算 給与計算ソフト 保険・行政手続 入退社手続、給与支払報告書、算定基礎届 明細発行
給与明細、源泉徴収票など 従業員名簿管理 従業員情報、従業員振込口座情報など 給与計算・労務管理に関するさまざまな機能をご提供
SmartHRとも連携 https://smarthr.jp/release/13950
人事労務freeeとe-Gov API 2015年5月にe-Gov APIを利用した 労働保険の年度更新 の機能をリリース https://corp.freee.co.jp/news/e-gov-api-4047.html
年度更新とは?
労働保険 = 雇用保険 + 労災保険(+ 一般拠出金) 雇用保険料は従業員と使用者が負担、労災保険料は使用者が負担
労働保険の年度更新とは • 労働保険料は年度ごとに概算値を前もって納付してある • 毎年7月ごろに前年度分の確定保険料と今年度分の概算保険料を計算して、前 年度分の精算分と今年度分を申告して納付する • 保険料の計算を人事労務freeeで行い、e-Govで保険料を申告し、さらにe-Govで 保険料の納付まで行うことができる
最後に使うのが 金融機関サイト表示API
金融機関表示APIについて
仕様を見てみよう https://www.e-gov.go.jp/shinsei/interface_api/download.html
None
None
None
金融機関サイト表示APIのここがすごい • XMLじゃなくてHTMLが返ってくる(API……?) • エラーもHTMLに書いてある(API……?) • Google Chromeで開くとフリーズする(2015年当時) ◦ 当時のChromeのバグで、現在は
(Chromeが) 改善されています
金融機関サイト表示APIのHTML(抜粋) <script language="JavaScript" type="text/javascript"> function link() { document.Form.submit(); var agent
= navigator.userAgent; // Submit処理完了前の後続処理動作を抑止 (Safari) var count = 0; var timer = setInterval( function() { count++; if(count == 1) { clearInterval(timer); // closeできるブラウザ(IE,Safari)の場合、画面を閉じる ※FireFoxは設定に依存 window.open('about:blank','_self').close(); // closeできないブラウザ(FireFox,Chrome))の場合、空白Pageに遷移(replaceにて[戻る]を抑止) location.replace('about:blank'); } }, 500); } </script> <body onLoad="link()"> <form name="Form" method="post" action = "http://www.********/mpnib/PL_0001.aspx" target="_blank"> <INPUT TYPE="hidden" NAME="skno" value = "*****"> <INPUT TYPE="hidden" NAME="bptn" value = "*"> <INPUT TYPE="hidden" NAME="bill" value = "*******"> </form> </body>
当時のChromeで動作しなかった ポップアップブロックを食らった上でCPU使用率が100%
金融機関サイト表示APIのHTML(抜粋) <script language="JavaScript" type="text/javascript"> function link() { document.Form.submit(); var agent
= navigator.userAgent; // Submit処理完了前の後続処理動作を抑止 (Safari) var count = 0; var timer = setInterval( function() { count++; if(count == 1) { clearInterval(timer); // closeできるブラウザ(IE,Safari)の場合、画面を閉じる ※FireFoxは設定に依存 window.open('about:blank','_self').close(); // closeできないブラウザ(FireFox,Chrome))の場合、空白Pageに遷移(replaceにて[戻る]を抑止) location.replace('about:blank'); } }, 500); } </script> <body onLoad="link()"> <form name="Form" method="post" action = "http://www.********/mpnib/PL_0001.aspx" target="_blank"> <INPUT TYPE="hidden" NAME="skno" value = "*****"> <INPUT TYPE="hidden" NAME="bptn" value = "*"> <INPUT TYPE="hidden" NAME="bill" value = "*******"> </form> </body>
このJavaScriptがやっていること • 新しいウィンドウを開き、 • Pay-easyっぽいWebサーバーに何かをPOSTしたうえで、 • 自身のウィンドウは閉じる←ここでフリーズする
僕はこう思ったッス(2015) • フリーズしてしまうのはたぶんChromeが悪い • でもなんでウィンドウ開いたり閉じたりするん? • (Pay-easyとの繋ぎ方に何か事情があるのかな……) • (というか、そもそもいい感じにXMLでください……) •
仕方ないのでJavaScriptを回避してPOSTする実装をした
ウワサの次期e-Govでは…… いい感じのJSONが貰えると最高なんですけどね
スモールビジネスを、 世界の主役に。