Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
e-Gov金融機関サイト表示APIでの苦労
Search
ymrl
August 01, 2019
0
3.1k
e-Gov金融機関サイト表示APIでの苦労
e-Gov 連携サービス開発者の集い
https://peatix.com/event/737034
ymrl
August 01, 2019
Tweet
Share
More Decks by ymrl
See All by ymrl
Webサイトのアクセシビリティにどう向き合う? / How Should We Approach Web Accessibility?
ymrl
0
40
いま求められるソフトウェアのアクセシビリティ / Essential Accessibility in Software Today
ymrl
1
910
アクセシビリティを意識したプロダクトづくり / Creating Products with Accessibility in Mind
ymrl
0
21k
「Webアプリケーションアクセシビリティ」著者の会社 (freee, サイボウズ, SmartHR) での取り組みは実際どんな感じ?
ymrl
3
21k
やっぱりやりたいのはUIデザインだった
ymrl
0
26k
freeeのアクセシビリティの取り組みの紹介
ymrl
0
22k
開発チームみんなで取り組むアクセシビリティ
ymrl
0
22k
アクセシビリティ アプリを企画する時点で考えること
ymrl
1
22k
Web技術基礎 for インターン
ymrl
1
7.4k
Featured
See All Featured
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
49
2.3k
The Cost Of JavaScript in 2023
addyosmani
47
7.3k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5.2k
RailsConf 2023
tenderlove
29
1k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
7k
Rails Girls Zürich Keynote
gr2m
94
13k
Navigating Team Friction
lara
183
15k
Adopting Sorbet at Scale
ufuk
74
9.2k
Code Review Best Practice
trishagee
67
18k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.7k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.1k
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が貰えると最高なんですけどね
スモールビジネスを、 世界の主役に。