対象機種
本機能の対象機種は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 の商標です。