2. 非接触支払いコールバックを実装する
概要
SDK の統合
実装する ContactlessPaymentServiceListener
ContactlessPaymentServiceListener// HCEサービスのリスナーをインスタンス化します。
PaymentServiceListener myPaymentListener = new ContactlessPaymentServiceListener() {
@Override
public void onTransactionStarted() {
/*
* POS端末と最初のAPDUが交換されたときにトリガーされます。
*/
}
@Override
public void onAuthenticationRequired(
PaymentService activatedPaymentService,
CHVerificationMethod chVerificationMethod,
long cvmResetTimeout) {
/*
* エンドユーザーが認証(CDCVM)を行う必要があるときにトリガーされます。
*
* chVerificationMethod を使用して必要な方法を判断します。
* cvmResetTimeout は一部の方法(例えばウォレットPIN)にのみ適用されます。
* これを使用して、検証がどれくらいの間有効かをエンドユーザーに伝えます。
*/
}
@Override
public void onReadyToTap(PaymentService paymentService) {
/*
* 認証が成功した後にトリガーされます。
* cvmResetTimeout が切れる前にエンドユーザーに再タップを促します。
*/
}
@Override
public void onTransactionCompleted(TransactionContext transactionContext) {
/*
* 取引が正常に完了したときにトリガーされます。
* TransactionContext を使用して詳細(金額、日付など)を表示します。
*/
}
@Override
public void onTransactionInterrupted() {
/*
* POS端末へのNFC接続が中断されたときにトリガーされます。
* エンドユーザーに再タップを促します。
* オプションのコールバック
*/
}
@Override
public void onError(
TransactionContext transactionContext,
PaymentServiceErrorCode paymentServiceErrorCode,
String message) {
/*
* 取引を正常に完了できないときにトリガーされます。
*/
}
@Override
public void onFirstTapCompleted() {
/*
* 最初のタップのAPDU処理が完了したことを示します。
* PFPベースの取引でのみサポートされます。
*/
}
@Override
public void onNextTransactionReady(
DeactivationStatus deactivationStatus,
DigitalizedCardStatus digitalizedCardStatus,
DigitalizedCard digitalizedCard) {
/*
* 取引完了後にトリガーされます。
* カードの状態を検証し、次の支払いに備えるために使用します。
*/
}
};HCEサービスからリスナーを返す
コールバックの流れ(一般的)
POS端末の切断を処理する(オプション)
最終更新
役に立ちましたか?