ライブラリを使用して、ebisumartへのAppsインストール処理を開発する方法についての説明です。
Appsのインストールのうち、以下の処理についてライブラリを用いたコードの説明します。
※なお、Appsのインストールの「認証の流れ」の7番にある
「アクセストークンの有効期限が切れたら、リフレッシュトークンを用いて新しいアクセストークン・リフレッシュトークンを取得」については、
上記の1の部分をライブラリを用いて行うと、自動的に行われます。
Appsのインストールにある通り、認証が成功するとcode=認証コードが返却されます。
そして、shopId=ebisumart Noを使用すると、ライブラリを用いて以下のように実装することができます。
private void saveTokens(String shopId, String code) throws IOException {
// 抽象クラスDataAccessClientを実装したクラスを取得します。
// 環境に合わせたDataAccessClientの実装を行っていただく必要があります。
DataAccessClient client = DataAccessClientHolder.get();
// ebisumartへの認証要求時に渡したものと同じリダイレクト先URLです。
String redirectUrl = getRedirectUri(shopId);
// アクセストークン、リフレッシュトークンの取得を行います。
// アクセストークンはDataAccessClientの中にキャッシュされています。
AccessTokenResponse atr = client.requestAccessToken(shopId, code, redirectUrl);
// リフレッシュトークンを保存します。
//アクセストークンの期限が切れ、再取得を行う際に使用します。
DataAccessClientHolder.saveRefreshToken(atr.getShopId(), atr.getRefreshToken());
}
データアクセスAPIでAppsで使用する処理カスタマイズAPIを登録します。
protected void install (String shopId) throws Exception {
// 抽象クラスDataAccessClientを実装したクラスを取得します。
// 環境に合わせたDataAccessClientの実装を行っていただく必要があります。
DataAccessClient client = DataAccessClientHolder.get();
// EbisumartServiceはデータアクセスAPI共通で使用します。
EbisumartService es = new EbisumartService(shopId, client);
// InstallerServiceは処理カスタマイズAPI、管理画面カスタマイズAPIの登録に使用します。
InstallerService is = es.getInstallerService();
// 登録したい処理カスタマイズAPIの情報をCustomizeApiに設定します。
CustomizeApi ca = new CustomizeApi();
ca.setFlowName("*");
ca.setName(CustomizeApiFunction.Userweb_Cart_CustomizeOrderDetailData_After.path());
ca.setUrl(APP_API_HOST + "/CartCustomizeOrderDetailData");
// ebisumartへの登録開始
// データアクセスAPIのトランザクションを開始します。
es.startTransaction();
try {
// 一度、このAppsが登録していた処理カスタマイズAPIをクリア
is.deleteCustomizeApi();
// 処理カスタマイズAPI登録
is.add(ca);
// トランザクションのコミット
es.commitTransaction();
} catch (Exception e) {
// トランザクションのロールバック
es.rollbackTransaction();
} finally {
// トランザクションリソースの開放
es.endTransaction();
}
}