Save 37% off PRO during our Black Friday Sale! »

e-Gov金融機関サイト表示APIでの苦労

41104bf685ee28d9c760ef29db690e5b?s=47 ymrl
August 01, 2019
2.4k

 e-Gov金融機関サイト表示APIでの苦労

e-Gov 連携サービス開発者の集い
https://peatix.com/event/737034

41104bf685ee28d9c760ef29db690e5b?s=128

ymrl

August 01, 2019
Tweet

Transcript

  1. freee 株式会社
 2019.08.01 @ymrl 金融機関サイト表示APIでの苦労


  2. 慶應SFC修士課程修了後、ソーシャルゲーム系ベンチャーを 経て2014年よりfreeeに参画。
 2015年より人事労務freee(当初は給与計算freee)の開発に携 わる。
 人事労務freeeでe-Govを使った労働保険年度更新の機能開 発に関わったほか、次期e-Govの仕様について会議するCode for e-Govにも参加しています。
 現在はUIデザインを専門に取り組むチームに所属しているの で、業務的にはe-Govにはほぼ関わりがありません。


    
 2 @ymrl
 freee株式会社 UIエンジニア

  3. エクスキューズ
 • きょうお話するのは、4年前、2015年頃の話です
 • 当時とはe-Gov自体やe-Govを取りまく環境が異っている可能性があります
 • 発表者は長らくe-Gov APIを使った開発からは離れています


  4. freeeについて


  5. 5 創業からIPOまで、中小企業活性化のためのサービスを一気通貫で提供 
 freee会社概要
 ❂ 納税する
 ↗ 育てる
 ↻ 運営する

    
 ✩ はじめる
 会社設立 freee 
 開業 freee
 クラウド会計ソフト freee 
 人事労務 freee 
 (マイナンバー管理 freee 含む) 
 クラウド申告 freee 
 161億603万円 (資本準備金等含む ) 従業員数 事業内容 クラウド型バックオフィスサービスの開発・販売 資本金 設立年月日 2012年7月 505名(2019年1月末時点) 「働きがいのある会社」 2017年 ランキング3位 2018年 ランキング8位 2019年 ランキング4位
  6. 人事労務freeeのご紹介
 マイナンバー管理 マイナンバー 勤怠管理 勤怠管理、有給・残業管理など 給与計算 給与計算ソフト 保険・行政手続 入退社手続、給与支払報告書、算定基礎届 明細発行

    給与明細、源泉徴収票など 従業員名簿管理 従業員情報、従業員振込口座情報など 給与計算・労務管理に関するさまざまな機能をご提供
 

  7. SmartHRとも連携
 https://smarthr.jp/release/13950

  8. 人事労務freeeとe-Gov API
 2015年5月にe-Gov APIを利用した 労働保険の年度更新 の機能をリリース
 https://corp.freee.co.jp/news/e-gov-api-4047.html

  9. 年度更新とは?


  10. 労働保険 = 雇用保険 + 労災保険(+ 一般拠出金)
 雇用保険料は従業員と使用者が負担、労災保険料は使用者が負担 


  11. 労働保険の年度更新とは
 • 労働保険料は年度ごとに概算値を前もって納付してある
 • 毎年7月ごろに前年度分の確定保険料と今年度分の概算保険料を計算して、前 年度分の精算分と今年度分を申告して納付する
 • 保険料の計算を人事労務freeeで行い、e-Govで保険料を申告し、さらにe-Govで 保険料の納付まで行うことができる


  12. 最後に使うのが
 金融機関サイト表示API


  13. 金融機関表示APIについて


  14. 仕様を見てみよう
 https://www.e-gov.go.jp/shinsei/interface_api/download.html

  15. None
  16. None
  17. None
  18. 金融機関サイト表示APIのここがすごい
 • XMLじゃなくてHTMLが返ってくる(API……?)
 • エラーもHTMLに書いてある(API……?)
 • Google Chromeで開くとフリーズする(2015年当時)
 ◦ 当時のChromeのバグで、現在は

    (Chromeが) 改善されています

  19. 金融機関サイト表示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> 

  20. 当時のChromeで動作しなかった
 ポップアップブロックを食らった上でCPU使用率が100% 


  21. 金融機関サイト表示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> 

  22. このJavaScriptがやっていること
 • 新しいウィンドウを開き、
 • Pay-easyっぽいWebサーバーに何かをPOSTしたうえで、
 • 自身のウィンドウは閉じる←ここでフリーズする


  23. 僕はこう思ったッス(2015)
 • フリーズしてしまうのはたぶんChromeが悪い
 • でもなんでウィンドウ開いたり閉じたりするん?
 • (Pay-easyとの繋ぎ方に何か事情があるのかな……)
 • (というか、そもそもいい感じにXMLでください……)
 •

    仕方ないのでJavaScriptを回避してPOSTする実装をした

  24. ウワサの次期e-Govでは……
 いい感じのJSONが貰えると最高なんですけどね 


  25. スモールビジネスを、
 世界の主役に。