対象機種
本機能の対象機種はstera terminal standard(ステラターミナルスタンダード)および、stera terinal mobile(ステラターミナルモバイル)です。
stera terminal unit(ステラターミナルユニット)ではご利用いただけません。
Intentを使用することで、決済アプリケーションとの連携をすることができます。
決済アプリケーションでは、下記の機能を提供しています。
■決済アプリケーション機能
・取引の実行
・過去の決済の再印字の実行
・一括日計の実行
決済アプリケーションとの連携は Android™ のIntentを用いて行います。
決済APIを使用すると、下記の決済機能を使用することができます。
■決済アプリケーション機能詳細
・取引(決済)
売上、取消、返品ができます。
金種はクレジットカード決済、電子マネー決済、QRコード決済から選択できます。
練習モードでの呼び出しもできます。
・再印字
過去の取引情報を再印字することができます。
決済アプリケーション上から該当の取引を選択し、レシートに印字します。
・一括日計
一括日計処理を実施できます。
決済時にはIntent経由で決済情報のパラメータを渡します。
パラメータを設定する際には、putExtraメソッドを使用します。
設定可能なパラメータは下記のとおりです。
■startActivityForResult() 呼び出し時の Intent.putExtra()の設定:
表の詳細については横スクロールさせて確認することができます。
Key  | 
取引モード  | 
値  | 
|---|---|---|
TransactionMode  | 
通常  | 
”1”  | 
  | 
練習  | 
”2”  | 
表の詳細については横スクロールさせて確認することができます。
Key  | 
取引種別  | 
値  | 
|---|---|---|
TransactionType  | 
売上  | 
”1”  | 
  | 
取消  | 
”2”  | 
  | 
返品  | 
”3”  | 
表の詳細については横スクロールさせて確認することができます。
Key  | 
金額  | 
値  | 
|---|---|---|
Amount  | 
金額  | 
1~99999999  | 
Tax  | 
税・その他  | 
0~9999999  | 
表の詳細については横スクロールさせて確認することができます。
Key  | 
金種  | 
値  | 
|---|---|---|
| PaymentType | クレジット・銀聯  | 
”01”  | 
| iD | ”02-01” | |
| 交通系IC | ”02-02” | |
| 楽天Edy | ”02-03” | |
| WAON | ”02-04” | |
| nanaco | ”02-05” | |
| QUICPay plus | ”02-06” | |
| PiTaPa | ”02-07” | |
| QR | ”03” | 
表の詳細については横スクロールさせて確認することができます。
Key  | 
伝票番号  | 
値  | 
|---|---|---|
SlipNumber  | 
1~99999  | 
”00001”~”99999”  | 
決済実行後の結果はonActivityResultメソッドから取得できます。
取得可能なパラメータは下記のとおりです。
■onActivityResult()呼び出し時の Intent.getExtra()での取り出し:
表の詳細については横スクロールさせて確認することができます。
Key  | 
決済種別  | 
値  | 
|---|---|---|
PaymentType  | 
クレジット  | 
”01”  | 
  | 
電子マネー  | 
”02”  | 
  | 
QR  | 
”03”  | 
表の詳細については横スクロールさせて確認することができます。
Key  | 
エラーコード  | 
値  | 
|---|---|---|
ErrorCode  | 
あり  | 
”FFFFFFFF”  | 
  | 
なし  | 
””  | 
表の詳細については横スクロールさせて確認することができます。
Key  | 
伝票番号  | 
値  | 
|---|---|---|
SlipNumber  | 
1  | 
”00001”  | 
  | 
...  | 
...  | 
  | 
99999  | 
”99999”  | 
表の詳細については横スクロールさせて確認することができます。
Key  | 
取引種別  | 
値  | 
|---|---|---|
TransactionType  | 
売上  | 
”1”  | 
  | 
取消  | 
”2”  | 
  | 
返品  | 
”3”  | 
表の詳細については横スクロールさせて確認することができます。
Key  | 
金額  | 
値  | 
|---|---|---|
Amount  | 
金額  | 
”1~99999999”  | 
Tax  | 
税・その他  | 
”0~99999999”  | 
表の詳細については横スクロールさせて確認することができます。
Key  | 
カードブランド  | 
値  | 
|---|---|---|
CreditCardBrand  | 
MS/マニュアル入力  | 
”00”  | 
  | 
VISA  | 
”01”  | 
  | 
Mastercard  | 
”02”  | 
  | 
JCB  | 
”03”  | 
  | 
AmericanExpress  | 
”04”  | 
  | 
Diners  | 
”05”  | 
  | 
銀聯  | 
”06”  | 
表の詳細については横スクロールさせて確認することができます。
Key  | 
会員番号  | 
値  | 
|---|---|---|
CreditCardMaskedPAN  | 
*でマスクされた番号  | 
”123456******3456”  | 
表の詳細については横スクロールさせて確認することができます。
Key  | 
通貨コード  | 
値  | 
|---|---|---|
CurrencyCode  | 
円  | 
”JPY”  | 
表の詳細については横スクロールさせて確認することができます。
Key  | 
会員番号  | 
値  | 
|---|---|---|
| EMoneyNumber | 1234567890123450  | 
”1234567890123456”  | 
表の詳細については横スクロールさせて確認することができます。
Key  | 
QR種別  | 
値  | 
|---|---|---|
QRPayType ※  | 
楽天ペイ  | 
”11”  | 
  | 
LINEPay  | 
”12”  | 
  | 
PayPay  | 
”13”  | 
  | 
d払い  | 
”14”  | 
  | 
auPay  | 
”15”  | 
  | 
メルペイ  | 
”16”  | 
  | 
銀行Pay  | 
”19”  | 
| WeChatPay | ”21” | |
| Alipay | ”22” | |
| 銀聯 | ”23” | |
| BankPay | ”35” | |
| AEONPay | ”37” | |
| アトカラ | ”38” | 
stera terminal standardのみ。stera terminal mobileは"TradeType"項目にコード決済のブランドが設定されます。
表の詳細については横スクロールさせて確認することができます。
Key  | 
電子マネー種別  | 
値  | 
|---|---|---|
EMoneyType  | 
iD  | 
”01”  | 
  | 
交通系IC  | 
”02”  | 
  | 
楽天Edy  | 
”03”  | 
  | 
WAON  | 
”04”  | 
  | 
nanaco  | 
”05”  | 
  | 
QUICPay plus  | 
”06”  | 
  | 
PiTaPa  | 
”07”  | 
決済の一連の流れは下記のように進みます。
1. 作成するアプリケーション上から、決済アプリケーションのIntentを作成します。
Intent作成後、putExtraメソッドでIntentへ渡すパラメータを設定します。
サンプルコードでは下記パラメータを設定しています。
・TransactionMode(取引モード):2(練習モード)
・TransactionType(取引種別):1(売上)
・Amount(金額):100(円)
・Tax(税):10(円)
startActivityForResultメソッドを実行すると、決済アプリケーションへ遷移します。
コードは横スクロールさせて確認することができます。
// 決済アプリアプリケーション用Intentの作成
Intent intentResult = new Intent();
intentResult.setClassName("com.panasonic.smartpayment.android.salesmenu",
        "com.panasonic.smartpayment.android.salesmenu.MainActivity");
// リクエスト用パラメータの設定(例では取引を指定)
intentResult.putExtra("TransactionMode", "2");
intentResult.putExtra("TransactionType", "1");
intentResult.putExtra("Amount", "100");
intentResult.putExtra("Tax", "10");
// 決済アプリケーションへ遷移
startActivityForResult(intentResult, 2);
2.決済アプリケーション上で決済を実行します
決済アプリケーションの画面は下記のようになります。
            
            
            
        
    
    
    
1で設定した取引モード、取引種別、金額が連携されており、決済アプリケーションに従って決済を進めます。
決済アプリケーション上での決済が完了/キャンセルすると、作成中のアプリケーションへ制御が戻ります。
3. 決済アプリケーションからの戻り値を取得する
決済アプリケーションの実行が終了すると、onActivityResultメソッドが実行されます。
このonActivityResultメソッド内に戻り値に応じたハンドリングを実装してください。
下のサンプルコードでは、getStringExtraメソッドで取得した“PaymentType”の値と、resultCodeの値により次に遷移するページを切替えています。
コードは横スクロールさせて確認することができます。
    protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
        super.onActivityResult(requestCode, resultCode, intent);
        Log.d(TAG, "[in] onActivityResult()");
        Log.d(TAG, "requestCode=" + requestCode);
        Log.d(TAG, "resultCode=" + resultCode);
        Log.d(TAG, "PaymentType=" + intent.getStringExtra("PaymentType"));
        final Intent intentResult = new Intent(CancelReturnActivity.this, ResultActivity.class);
        intentResult.putExtra("TransactionType", mTransactionType);
        if (resultCode == MainActivity.SUCCESS) {
            intentResult.putExtra("Result", getString(R.string.judgetransactionOK));
            intentResult.putExtra("ResultCode", resultCode);
        } else if (resultCode == MainActivity.FAIL) {
            Log.d(TAG, "ErrorCodeCancelReturn=" + intent.getStringExtra("ErrorCode"));
            intentResult.putExtra("Result", getString(R.string.judgetransactionNG));
            intentResult.putExtra("ResultCode", resultCode);
        } else if (resultCode == MainActivity.CANCEL) {
            intentResult.putExtra("Result", getString(R.string.judgetransactionCancel));
            intentResult.putExtra("ResultCode", resultCode);
        } else {
            Log.d(TAG, "CancelReturnActivity got incorrect resultCode. resultCode=" + resultCode);
        }
        startActivity(intentResult);
        Log.d(TAG, "[out] onActivityResult()");
        // Finish this Activity
        finishAndRemoveTask();
    }
Android は Google LLC の商標です。