Linux や Windows で大量の nanaco ギフトを自動登録して、オトクに税金を支払う

Pocket

突然だが、自動車税や固定資産税などの税金を、どのように払っているだろうか?
支払う額も大きくなりがちなので、なるべくお得に支払いたいのではないだろうか。

そこでオススメなのが nanaco ギフト だ。

クレジットカードで直接納税したり nanaco 残高にチャージする場合、手数料がかかったり、ポイントがたまらなかったりと、あまりお得にならない。
しかし nanaco ギフトであれば、お得に購入する手段が知られている。

  • ベネフィット・ステーション
    • 福利厚生型の会員制割引サービス。
    • 2020年4月現在、 毎月 10万 円分まで 額面の 2% OFF で nanaco ギフトを購入できる。
    • 所属組織による団体加入か、 「ベネフィット・ステーション プライベート」 や 「デイリーPlus」 といった個人向けの有料サービスで利用できる。
  • Kiigo (廃止)
    • 以前はクレジットポイントを貯めながら nanaco ギフトを購入できたのだが、 2019年 に nanaco ギフトの取り扱いがなくなってしまった。

また nanaco 残高と違ってセンターお預かりへのチャージなので、 チャージ残高の上限が非常に高く (50万円以上も可能らしい)、 nanaco 残高のチャージ上限である 5万円を超えるような金額の支払いでも使える大きなメリットがある。

nanaco ギフトでのお得な納税の話は、他のサイトでもっと詳しくわかりやすく書かれているだろうから、これくらいにしておく。

nanaco ギフトの登録がめんどくさい

さて、 ここからが本題だ。

そんな nanaco ギフトにもひとつ 大きな欠点がある。
それは、 1,000 円単位で提供されることが多い ということだ。

例えば 10万円分 チャージしようとすると、 100 回も nanaco ギフトID のコードを入力しなくてはならないのだ。

更に、 nanaco ギフトの登録を行う UI が、大量のギフト登録に とても優しくない
1回 コードを入力する毎に nanaco にログインしたり、 コードを 4文字 ずつテキストボックスに入力しなくてはならなかったりと、 数をこなすのにとにかく手間がかかるのだ。

10万円 の納税で 2,000円 得するために、 2,000円分 相当以上の手間をかけるのでは愚の骨頂だ。
こうなったら、自動入力させるしかない。

VBScript で自動化する方法は既にある

愚生が思いつくようなことなど、 この広い世の中既にやっている人がいるわけでして。
VBScript で IE を操作する手段であれば、以下のページで紹介されている方法が使えるだろう。

ところが、この方法だと 「カード型 の nanaco」 では登録できるものの、 「nanacoモバイル (おサイフケータイ)」 では使うことができない。

更に、 VBScript から COM 経由で IE を制御しているので、 Windows 以外では使うことができない。
(Windows でも 今更 IE なんて… という感じもあるし。)

nanacoモバイル に対応させ、利便性を改善した PowerShell スクリプト

ということで、前述の VBSciript を参考にしつつ、 nanacoモバイル にも対応させたものを、 selenium + PowerShell で書き直してみた。

また、 前述の VBScipt は、使う準備が少々面倒だったので、その部分も少し改善させている。

Windows であれば標準で PowerShell がインストールされているほか、 PowerShell はクロスプラットフォームなので Linux などでも利用できる。
実際に Ubuntu で動作することを確認した。

macOS? 知らん。

使い方

  1. nanacoギフト の URL が記載されているメールを、 テキストファイルに保存する。

    • ベネフィット・ステーション から nanaco ギフトを購入した場合、 以下のような内容のメールが届いているはずだ。

      〇〇 〇〇 様
      
      ≪中略≫
      
      ≪お申込みギフトID≫
      ◆1000円券100枚【有効期限:2021年03月31日】
      ギフトID
       管理番号
       PC用URL付ギフトID
      ------------------------------------------------------------
      XXXXXXXXXXXXXXXX
       [管理番号:NAN0000000000000]
       https://www.nanaco-net.jp/pc/emServlet?gid=XXXXXXXXXXXXXXXX
      
      XXXXXXXXXXXXXXXX
       [管理番号:NAN0000000000000]
       https://www.nanaco-net.jp/pc/emServlet?gid=XXXXXXXXXXXXXXXX
    • テキストファイル保存時の文字コードは、 SJIS か BOM付き UTF-8 にする。
    • 以下、 mail-text.txt という名前で保存したものとして、説明を続ける。
  2. Windows PowerShell (5.1 以下) の場合はスクリプト実行を許可する。 (PowerShell 6 以上なら不要)
    • PowerShell でスクリプト を実行することが初めてなら、 管理者権限で PowerShell を立ち上げ、以下のコードを実行しよう。
      Set-ExecutionPolicy RemoteSigned;
  3. Gist から Register-NanacoGiftAutomatic.ps1 等を含む Zip を Download ZIP リンクから ダウンロードし、適当なフォルダに展開する。
  4. お好みのブラウザの Selenium WebDriver をダウンロードし、 (3) で展開したフォルダに保存する。
    • Google Chrome の場合は、 こちらchromedriver をダウンロード。
    • Mozzila Firefox の場合は、 こちらgeckodriver をダウンロード。
    • 他にも、 Edge や Opera, IE 用の WebDriver がある。
      なお、オススメは Chrome だ。 Firefox でも動作することは確認したが、なんか動作が遅かった。
  5. (3) で保存したフォルダをカレントディレクトリにして PowerShell を立ち上げ、 以下のどちらかコマンドを実行する
    • nanacoカード/一体型カード の場合
      &.\Register-NanacoGiftAutomatic.ps1 .\mail-text.txt -NanacoNumber 'nanaco番号' -CardNumber 'nanacoカード裏面記載の番号(7桁)' -Browser Firefox;
    • nanacoモバイルの場合
      &.\Register-NanacoGiftAutomatic.ps1 .\mail-text.txt -NanacoNumber 'nanaco番号' -Password 'nanacoモバイル パスワード';
    • ブラウザを Chrome 以外にしたい場合は、 -Browser オプションにお好みのブラウザ名を指定する。 -Browser オプションを省略した場合は、 Chrome が利用される。

PowerShell コード内では、 Selenium の .NET アセンブリ (WebDriver.dll) を読み込んでいる。
インターネットからダウンロードした Zip ファイルを解凍した場合、ファイルに ZoneId がついていて実行時にエラーとなってしまう場合があるので、 Zip ファイルの解答前に ZoneId を解除しておくことをオススメする。

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください