heteml上のEC-CUBEにJ-Paymentのクレジット決済を追加する

EC-CUBEにクレジット決済を追加してみました
いろいろありますが、今回はJ-Paymentを使いました

J-Paymentの導入方法はいくつかあります
EC-CUBEなのでEC-CUBEモジュールを使いました

ちなみに他には
HTMLリンク方式
HTMLにリンクを埋め込むだけ
リンクをクリックするとJ-Paymentが用意しているページへ飛んでクレジット情報を入力する流れです

Gateway方式
クレジット情報をいれるフォームを自作、自由なデザインでできる

があります

J-Paymentに申し込む

まずはJ-Paymentの審査を通らないと行けないので申し込みます
10日以上かかるみたいです
申し込みの流れ http://www.j-payment.co.jp/service/payment/flow.html
審査が通れば、J-Paymentの店舗IDが付与されアカウントがもらえます

hetemlでSSLを購入

サーバーにSSLを導入します
手頃な証明書を買ってきて..と思いましたがhetemlでは他社の証明書は利用できません
hetemlで申し込みました
http://heteml.jp/support/manual/d-ssl/
DNSへ反映されるのに最大72時間だそうです
2日くらい待つと、httpsでもアクセスできるようになってました

EC-CUBEのSSLのアドレスを変更

SSLアドレスをhttpsにしてなければ設定します
hetemlにSSHでログイン、phpファイルを修正します
SSHのログインは、hetemlの管理者ページでSSHアカウントを作成して行います

$ vi web/data/config/config.php
define(‘HTTPS_URL’, ‘https://sample.co.jp/eccube/’);
というふうに、アドレスをhttpsにします

J-Paymentの設定

アカウントがもらえるとJ-Paymentのコントロールパネルへアクセスできるようになります
設定>決済システムの設定、決済ゲートウェイ&CTI決済設定、決済データ送信元IPにhetemlのサーバーのIPアドレスを設定します
このページのシステムモードがテストモードであれば、決済は発生しません

hetemlのサーバーのIPアドレスは、hetemlの管理ページ、アカウント情報に記載されています

EC-CUBEのJ-Paymentモジュールを購入

EC-CUBEオーナーズストアより導入するサイトに紐づいたアカウントでEC-CUBEバージョンにあったものを購入します
でしたが、今はEC-CUBEオーナーズストアになくなり、J-Payment側から直接もらうようになったようです(なぜでしょう?)

EC-CUBEをメンテナンス状態にする

クレジット機能導入時に不備が起きたりするとまずいので、自分以外は操作できないようにします
WEBサーバーで.htaccessを使って、制限しようと思いましたがhetemlでできなかったのでhetemlのアクセス制限を利用しました
Basic認証をかけるようですが、なんだか日本語が文字化けするので英語で設定しました

EC-CUBEのプラグイン導入

EC-CUBEの管理者ページへログイン
オーナーズストア>モジュール管理
モジュール取得、をクリック、J-Payment決済モジュールをダウンロードします
インストールできたら、設定リンクをクリック
J-Paymentから付与された店舗IDを入力、使うものにチェックを入れていきます
eccube-module

EC-CUBEの設定変更

支払方法設定

基本情報設定>支払方法設定、でクレジットカード決済の表示名など設定します
eccube-payment-config-detail

配送方法設定

基本情報設定>配送方法設定、で取扱い商品種別のクレジットカード決済にチェックをつけます
eccube-delivery-configeccube-delivery-config2

決済のテスト

EC-CUBEでダミー商品とダミー商品を購入するためのテストアカウントを用意して、購入してみます
使うカード情報はJ-Paymentに聞いたダミーのカード番号で行います
(なんでもいいのかも)

うまくいけば、ダミー商品は非公開か削除かします

本番運用開始

J-Paymentへ本番運用する連絡をいれ、設定変更してもらってコントロールパネルへアクセス、設定>決済システムの設定、システムモードをテストモード→本番モードにします
hetemlのアクセス制限を削除します

これでクレジットカード決済が導入されました

途中時間がかかるときは、いったんEC-CUBEの配送設定からクレジットカード決済を外して、アクセス制限を外し、運用するといいと思います



Github organizationアカウントの作り方

集まってごにょごにょしようという、コミュニティを作ったのでGithubで専用アカウントを作ってみました
こういうのはorganizationアカウントというらしいです

詳しくはhelpページを
https://help.github.com/categories/organizations/

organizationアカウントは
https://github.com/organizations/new
にアクセスして作ります

お持ちのgithubアカウントでログインして
github-organization1
名前とEmailと入力、プランを選んで次へ

github-organization2
オーナーとなる人を招待して終わりです

githubへログインしてトップ画面へ行くと、プルダウンでアカウントが選べるようになります
github-organization3

JavaのEnum型の基本

JavaのEnum型の基本を整理

Enumは

enum Number{
  ZERO, ONE, TWO;
}
System.out.println(Number.ONE);
// > ONE
System.out.println(Number.ONE.ordinal());
// 序数を出力 > 1

といった様子

C言語とは違いJavaではクラスらしいので、コンストラクタを用意することができて、初期値がセットできます
小数点を増やしてみました

enum Number {
    POINT("."),ZERO("0"),ONE("1"),TWO("2");
    private String value;
    private Number (String value) {
        this.value = value;
    }
    public String getString() {
        return this.value;
    }
}
System.out.println(Number.ONE);
// > ONE
System.out.println(Number.ONE.ordinal());
// 序数を出力 > 2
System.out.println(Number.ONE.getString());
// > 1

となります

Ingressのメダル獲得条件を整理

Googleの陣取りゲームIngressでは、レベル8になると次のレベルへあがるにはメダルを集めないといけません

これだけメダルがあります
ingress-medals

英語の意味がよくわからなかったので整理してみました

Recharger : リチャージする人
ingress-recharger
Recharge Portals with Exotic Matter.
エキゾチックマターでポータルをリチャージしよう
= リチャージしたXMの値

Builder : 建てる人
ingress-builder
Deploy Resonators.
レゾネーターを設置しよう
= レゾネーターの設置とアップグレードの数

Hacker : ハッカー
ingress-hacker
Hack Portals.
ポータルをハックしよう
= ポータルをハックした数

Mind Controller : 洗脳する人
ingress-mindcontroller
Create Control Fields.
コントロールフィールドをつくろう
= コントロールフィールドを作った数

Liberator : 解放者
ingress-liberator
Capture Portals.
ポータルを占拠しよう
= 中立ポータルへレゾネーターをさすとカウント

Connector : つなげる人
ingress-connector
Link Portals.
ポータルにリンクをはろう
= リンクをはった数

Pioneer : 先駆者
ingress-pioneer
Capture unique Portals.
ユニークなポータルを占拠しよう
= 初めて訪れた中立ポータルにレゾネータをさすとカウント

Explorer : 探検家
ingress-explore
Visit and hack unique Portals.
ユニークなポータルを訪れてハックしよう
= 始めて訪れたポータルをハックした数

Guardian : 守護者
ingress-guardian
Control a Portal for consecutive days.
連続してポータルをコントロールしよう
= 自分がオーナーのポータルを維持した日数

Verified : 証明された
ingress-verified
Passed initial security clearance.
最初のセキュリティ許可を得よう
= これはメダルじゃないみたい

Purifier : 清める人
ingress-purifier
Destroy enemy Resonators.
敵のレゾネーターを破壊しよう
= レゾネーターを破壊した数

Seer : 見る人
ingress-seer
Discover and successfully submit new Portals.
新しいポータルを見つけて提出に成功しよう
= 登録されたらカウント

破壊しまくって、レゾネータをささないと..メダルが遠いです