Labs

<< 最初 < 前ページ 次ページ > 最後 >>
icon UFJ API(開発用)を利用してみる (2019/05/15)
UFJ が API を虎視眈々と開発していた。
カブドットコムのAPIも使えたりと結構楽しそう、というか近々実用化されそうな予感がします。
カブドットコムのAPI(kabu.com API)は本番環境で利用できるとのことだが、法人契約が必要なのと当然ながら審査が必要。

開発用API登録

UFJ API

API種別

2019/05/15現在、個人口座、法人口座、振込申請、総合振込申請、給与賞与振込申請、特別徴収地方税のAPIが用意されている。
UFJ API

API Client Secretの発行

当然ながらAPIを利用するには、Client Secret の発行が必要となる。
UFJ API

APIリファレンス

各サービス毎にリファレンスは用意されている。
cURL,Ruby,Python,PHP,Java,Node,Go,Swift のサンプルが記載されており、結構本気度が伺えられる。
また、レスポンスは基本 json のようだ。
UFJ API
ただ本番利用の場合は、金融業界なので審査が厳しいと予想される。

ライブラリ(PHP)

使いやすいように、ざっとクラスライブラリを作成してみた。
(2019/05/15現在アカウント情報取得のみ)
GitHub: yoo16/ufj_api
また、検証用データが用意されていて、Account ID一覧は以下の通り
001001110001
002001110002
325001110003
135011110005
118011110008
329011110009
002021110013
002022220003
325022220004
909022220013
002022220014
002023330003
325023330004
480023330005
777023330008
118023330009
427383330012
909383330013
002383330014
002283330016

実行結果

$ php get_account.php 002023330003
{"branchNo":"002","branchName":"丸の内","accountTypeCode":"02","accountTypeDetailCode":"00099","accountTypeName":"定期","accountNo":"3330003","accountName":null,"accountNameKana":null,"balance":100000,"withdrawableAmount":null,"currencyCode":"JPY","foreignCurrencyBalance":null,"yenEquivalent":null,"exchangeRate":null,"totalMarketValue":null,"totalUnrealizedProfitAndLoss":null,"mutualFundAccountType":null,"fundBaseDate":null}
icon PHP7.3 で compser install できない (2019/04/29)
PHP7.3 で break と continue の取り扱いが変更になった影響で、composer install がエラーになる場合、
  • PHP7.2にさげる
  • composer のバージョンをあげる
    $ composer global require "laravel/installer"
    Changed current directory to /home/yoo/.config/composer
    Using version ^2.0 for laravel/installer
    ./composer.json has been created
    Loading composer repositories with package information
    Updating dependencies (including require-dev)

    Installation failed, deleting ./composer.json.

    [ErrorException]
    "continue" targeting switch is equivalent to "break". Did you mean to use "continue 2"?

    require [--dev] [--prefer-source] [--prefer-dist] [--no-progress] [--no-update] [--no-scripts] [--update-no-dev] [--update-with-dependencies] [--ignore-platform-reqs] [--prefer-stable] [--prefer-lowest] [--sort-packages] [-o|--optimize-autoloader] [-a|--classmap-authoritative] [--] []...
    特に初期設定で composer のバージョンが低い場合は注意が必要
    (composer self-udpate がないなど)
    composer installができなくなった時の解決法(PHP7.3)

    PHP7.2 に変更

    $ sudo update-alternatives --config php
    選択肢 パス 優先度 状態
    ------------------------------------------------------------
    *0 /usr/bin/php7.3 73 自動モード
    1 /usr/bin/php5 50 手動モード
    2 /usr/bin/php7.0 70 手動モード
    3 /usr/bin/php7.2 72 手動モード
    4 /usr/bin/php7.3 73 手動モード

    composerの再インストール(self-udpateなど利用できない場合)

    composer-setup.php をダウンロード・実行する
    $ curl -sS https://getcomposer.org/installer | php
    $ HASH=544e09ee996cdf60ece3804abc52599c22b1f40f4323403c44d44fdfdd586475ca9813a858088ffbc1f233e9b180f061
    $ sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer
    $ composer -V
    Composer version 1.8.5 2019-04-09 17:46:47
icon 配列結合 array_merge() と 演算子の違い (2019/04/25)
PHPの配列は他の言語と比べて若干癖がある。
インデックスが 型が整数か文字列とか連番でなくてもよいとかゆるいので、ある意味柔軟なデータを生成する事もできる。
(ここら辺は言語思想)

PHP配列の結合は「array_merge() 」が一般的かも知れないが、演算子でも計算できる。
ただし、インデックスによって結果が異なるので注意が必要。
  • インデックスが同じ、異なる
  • 値が同じ、異なる
の組み合わせで考察してみる。

事前に結合するサンプルデータを作成しておく(例では10個ずつ)。
    function generateValues($count, $prefix = 'test', $from_index = 1)
    {
        for ($i = $from_index; $i <= $count + $from_index; $i++) $values[$i] = "{$prefix}{$i}";
        return $values;
    }
$values1 = 
array (
  0 => 'test0',
  1 => 'test1',
  2 => 'test2',
  3 => 'test3',
  4 => 'test4',
  5 => 'test5',
  6 => 'test6',
  7 => 'test7',
  8 => 'test8',
  9 => 'test9',
)
$values2 = 
array (
  0 => 'test0',
  1 => 'test1',
  2 => 'test2',
  3 => 'test3',
  4 => 'test4',
  5 => 'test5',
  6 => 'test6',
  7 => 'test7',
  8 => 'test8',
  9 => 'test9',
)

$values1 + $values2 の結合(インデックス同じ、値同じ)

$values1 + $values2 を演算子「+」で結合してみる。
//values1 + values2
$values1 = $array_merge->generateValues(10);
$values2 = $array_merge->generateValues(10);
$values = $values1 + $values2;
$values1 + $values2 = 
array (
  0 => 'test0',
  1 => 'test1',
  2 => 'test2',
  3 => 'test3',
  4 => 'test4',
  5 => 'test5',
  6 => 'test6',
  7 => 'test7',
  8 => 'test8',
  9 => 'test9',
)
インデックスが同じだと結合できない。
またどちらの配列が採用されているかわからないので、値の違う配列を作成して調べる。

$values1 + $values2 の結合(インデックス同じ、値異なる)

//values1 + values2
$values1 = $array_merge->generateValues(10, 'red');
$values2 = $array_merge->generateValues(10, 'blue');
$values = $values1 + $values2;
$values1 = 
array (
  0 => 'red0',
  1 => 'red1',
  2 => 'red2',
  3 => 'red3',
  4 => 'red4',
  5 => 'red5',
  6 => 'red6',
  7 => 'red7',
  8 => 'red8',
  9 => 'red9',
)
$values2 = 
array (
  0 => 'blue0',
  1 => 'blue1',
  2 => 'blue2',
  3 => 'blue3',
  4 => 'blue4',
  5 => 'blue5',
  6 => 'blue6',
  7 => 'blue7',
  8 => 'blue8',
  9 => 'blue9',
)
$values1 + $values2 = 
array (
  0 => 'red0',
  1 => 'red1',
  2 => 'red2',
  3 => 'red3',
  4 => 'red4',
  5 => 'red5',
  6 => 'red6',
  7 => 'red7',
  8 => 'red8',
  9 => 'red9',
)
上書きされずに最初の配列が採用されていることがわかる。

array_merge($values1, $values2)での結合(インデックス同じ、値同じ)

同じ内容の配列を array_merge() するとインデックスが振り直された配列を返す。
$values = array_merge($values1, $values2);
array (
  0 => 'test0',
  1 => 'test1',
  2 => 'test2',
  3 => 'test3',
  4 => 'test4',
  5 => 'test5',
  6 => 'test6',
  7 => 'test7',
  8 => 'test8',
  9 => 'test9',
  10 => 'test0',
  11 => 'test1',
  12 => 'test2',
  13 => 'test3',
  14 => 'test4',
  15 => 'test5',
  16 => 'test6',
  17 => 'test7',
  18 => 'test8',
  19 => 'test9',
)

今度は、インデックスの異なる配列で試してみる。
配列の作成は以下で作成
    function generateValuesWithIndex($count, $prefix = 'test')
    {
        for ($i = 0; $i < $count; $i++) {
            $values[$this->index++] = "{$prefix}{$i}";
        }
        return $values;
    }
$values1 = 
array (
  0 => 'test0',
  1 => 'test1',
  2 => 'test2',
  3 => 'test3',
  4 => 'test4',
  5 => 'test5',
  6 => 'test6',
  7 => 'test7',
  8 => 'test8',
  9 => 'test9',
)
$values2 = 
array (
  20 => 'test0',
  21 => 'test1',
  22 => 'test2',
  23 => 'test3',
  24 => 'test4',
  25 => 'test5',
  26 => 'test6',
  27 => 'test7',
  28 => 'test8',
  29 => 'test9',
)

$values1 + $values2 の結合(インデックス異なる、値同じ)

$values = $values1 + $values2;
$values1 + $values2 = 
array (
  0 => 'test0',
  1 => 'test1',
  2 => 'test2',
  3 => 'test3',
  4 => 'test4',
  5 => 'test5',
  6 => 'test6',
  7 => 'test7',
  8 => 'test8',
  9 => 'test9',
  20 => 'test0',
  21 => 'test1',
  22 => 'test2',
  23 => 'test3',
  24 => 'test4',
  25 => 'test5',
  26 => 'test6',
  27 => 'test7',
  28 => 'test8',
  29 => 'test9',
)
インデックスを保持したまま結合できる。

array_merge($values1, $values2)での結合(インデックス異なる、値同じ)

$values = array_merge($values1, $values2);
array (
  0 => 'test0',
  1 => 'test1',
  2 => 'test2',
  3 => 'test3',
  4 => 'test4',
  5 => 'test5',
  6 => 'test6',
  7 => 'test7',
  8 => 'test8',
  9 => 'test9',
  10 => 'test0',
  11 => 'test1',
  12 => 'test2',
  13 => 'test3',
  14 => 'test4',
  15 => 'test5',
  16 => 'test6',
  17 => 'test7',
  18 => 'test8',
  19 => 'test9',
)
インデックスが振り直されて結合される。
<< 最初 < 前ページ 次ページ > 最後 >>

このサイトについて

HTML5 & CSS3化しつつあるので、現在IEには対応してません。
できれば、Google Chromeやら Apple SafariのWebKit系をお勧めします。

DBからプログラムまで一応全て自作なので、バグってたらすいません。
実験でFlash版(Flex版)を先に作りましたが、ちょっと停止してます。

プロフィール

新宿近辺でSE & プログラマーしてます。
Webアプリの開発・設計とか、最近はiPhoneとか奮闘してます。
デザインはさっぱりです。

音楽は、昔からCubase打ち込み人間で、そっちの方が経歴は長いですが、最近はやる暇がないです。。。

今は、Gon's Privates ってバンドのキーボードやってます。
単発的に、なんちゃってジャズ系のライブもやってます。

名古屋生まれなのでドラゴンズ好きです。

Info && SNS

Gmail

 yohei.yoshikawa@gmail.com

Twitter

 http://twitter.com/yoo_yoo_yoo

あんまつぶやきませんが、一応技術系メインで使ってます。情報交換はこちらへ

FaceBook

 http://www.facebook.com/#!/profile.php?id=1439130626

海外の知り合いがいないので閑散としてます。

mixi

 http://mixi.jp/show_profile.pl?id=230072

音楽仲間とかはこっちメインでやってます。興味があればこちらへ